Hämta stickprov från process
Andra namn: sample process, stickprov av en app, processstickprov
Kort svar
Hämta stickprov från process är ett verktyg i Aktivitetskontroll som registrerar vad en markerad process gör under några sekunder och skapar en textrapport över var dess trådar tillbringar tiden. Utvecklare använder rapporterna för att ta reda på varför en app är långsam, upptagen eller har hängt sig.
Apple beskriver Hämta stickprov från process som att det skapar en rapport om en markerad process under 3 sekunder. Rapporten listar varje tråd och de funktioner den körde, med antal som visar hur ofta varje funktion förekom.
Du behöver inte läsa rapporten själv. Den är mest användbar när en app har fastnat eller använder mycket processorkraft och du vill skicka något konkret till utvecklaren.
På den här sidan
Så tar du ett stickprov från en process i Aktivitetskontroll
Markera processen, klicka på knappen Mer (de tre punkterna) högst upp i fönstret och välj Hämta stickprov från process. Du kan också dubbelklicka på processen och klicka på Stickprov i fönstret som öppnas.
När rapporten visas kan du spara den som en textfil och bifoga den i en felrapport eller en supportförfrågan.
Så tar du ett stickprov från en process i Terminal
Kör sample <PID> 5 för att ta ett stickprov från en process i 5 sekunder. Du kan använda en del av processnamnet i stället för PID. Rapporten skrivs ut och sparas i en fil, och sökvägen visas när den är klar.
Så läser du en stickprovsrapport
Rapporten börjar med ett sidhuvud: processnamn och PID, sökväg, överordnad process, kodtyp och macOS-version. Det som spelar roll kommer sedan, under Call graph.
Anropsgrafen listar varje tråd. Huvudtråden, den som hanterar klick och tangenttryckningar, heter com.apple.main-thread. Under varje tråd är funktionerna indragna för att visa vilken funktion som anropade vilken. Talet i början av en rad anger hur många gånger funktionen fanns på stacken när ett stickprov togs.
- Följ raderna med de största talen ned till den djupaste indragningen. Det är där tråden tillbringade mest tid.
- Om de djupaste raderna på huvudtråden är vänteanrop som
mach_msg,__psynch_cvwaiteller__semwait_signalvar tråden blockerad och väntade på något annat. - Om de djupaste raderna är appens egna funktioner med höga tal var tråden upptagen med att arbeta.
- Avsnittet ”Sort by top of stack” nära slutet listar de funktioner som kördes oftast, vilket är en snabb sammanfattning av samma data.
- Listan Binary Images i slutet namnger de ramverk och bibliotek som är inlästa i processen.
Så sparar du ett stickprov till en fil från Terminal
Kommandot sample ger dig mer kontroll än Aktivitetskontroll. Standardlängden är 10 sekunder, och du kan ändra den.
- Öppna Terminal från Program > Verktygsprogram.
- Hitta process-ID:t med
pgrep -lx Safarioch byt ut Safari mot processnamnet. - Kör
sample <PID> 10 -file ~/Desktop/sample.txtmedan problemet pågår. - Öppna filen på skrivbordet, eller bifoga den i en felrapport.
När ett stickprov hjälper och när det inte gör det
Ett stickprov är en ögonblicksbild av en process. Använd det när du redan vet vilken app som är problemet.
- Hjälper: en app har frusit, en process ligger kvar på hög % processor, eller en app är långsam med en viss uppgift som du kan upprepa.
- Hjälper mindre: hela datorn är långsam och du vet inte varför. En spindump, som omfattar alla processer, passar bättre.
- Hjälper inte: problemet har redan gått över. Ett stickprov visar bara vad som hände medan det pågick.
Så skickar du ett stickprov till en utvecklare
Ett stickprov är användbart i sig, men en kort anteckning gör det mycket lättare att agera på.
- Ta stickprovet medan appen har frusit eller är upptagen, inte efter att den har återhämtat sig.
- Spara rapporten som en textfil i stället för att kopiera en del av den. Utvecklare behöver hela anropsgrafen och listan Binary Images.
- Skriv ned vad du gjorde när problemet började, till exempel vilken fil du öppnade eller vilken knapp du klickade på.
- Ange appens version och din macOS-version. Båda finns också i rapportens sidhuvud, vid Version och OS Version.
- Skicka den via appens supportsida eller felrapporteringssystem, eller till Apple via Feedbackassistent om appen kommer från Apple.
Frågor som folk ställer
Vad gör Hämta stickprov från process i Aktivitetskontroll?
Det registrerar vad en process gör i ungefär 3 sekunder och visar en rapport över dess trådar och koden de körde. Utvecklare använder det för att felsöka låsningar och hög processoranvändning.
Är det säkert att ta ett stickprov från en process?
Ja. Ett stickprov iakttar bara processen. Det ändrar eller stoppar den inte.
När ska jag ta ett stickprov från en process?
Ta stickprovet medan problemet pågår, till exempel när en app har hängt sig eller använder mycket processorkraft. Ett stickprov som tas efter att appen har återhämtat sig visar inte orsaken.
Hur lång tid tar Hämta stickprov från process?
I Aktivitetskontroll registreras ungefär 3 sekunder. Kommandot sample i Terminal registrerar 10 sekunder som standard, eller det antal sekunder du anger.
Innehåller en stickprovsrapport personlig information?
Den innehåller processnamnet, sökvägar och inlästa bibliotek, och sökvägarna kan innehålla ditt användarnamn. Läs igenom den innan du publicerar den någonstans offentligt.
Varför visar stickprovet frågetecken i stället för funktionsnamn?
Symbolnamnen fanns inte tillgängliga för de delarna av appen. Utvecklaren kan ändå matcha adresserna mot sin kod, så skicka rapporten som den är.
Relaterat
Letar du efter något bättre än Aktivitetskontroll? Läs om de bästa alternativen till Aktivitetskontroll för Mac, eller bläddra bland alla begrepp i ordlistan.