Woordenlijst/Als er iets misgaat
Maak momentopname van proces
Ook: momentopname van een app, sample van een proces
Kort antwoord
Maak momentopname van proces is een hulpmiddel in Activiteitenweergave dat een paar seconden vastlegt wat een geselecteerd proces doet, en daarvan een tekstrapport maakt over waar zijn threads hun tijd aan besteden. Ontwikkelaars gebruiken die rapporten om te vinden waarom een app traag of druk is, of vastloopt.
Apple omschrijft Maak momentopname van proces als het maken van een rapport over een geselecteerd proces over een periode van 3 seconden. Het rapport toont elke thread en de functies die hij uitvoerde, met aantallen die laten zien hoe vaak elke functie voorkwam.
Je hoeft het rapport niet zelf te lezen. Het is vooral nuttig als een app vastzit of veel CPU gebruikt en je de ontwikkelaar iets concreets wilt sturen.
Zo maak je een momentopname van een proces in Activiteitenweergave
Selecteer het proces, klik op de knop Meer (de drie puntjes) boven in het venster en kies ‘Maak momentopname van proces’. Je kunt ook dubbelklikken op het proces en in het venster dat opent op Momentopname klikken.
Als het rapport verschijnt, kun je het bewaren als tekstbestand en toevoegen aan een bugmelding of een ondersteuningsverzoek.
Zo maak je een momentopname van een proces vanuit Terminal
Voer sample <PID> 5 uit om 5 seconden lang een momentopname van een proces te maken. Je kunt ook een deel van de procesnaam gebruiken in plaats van de PID. Het rapport wordt getoond en in een bestand bewaard, en als het klaar is, zie je het pad.
Zo lees je een momentopnamerapport
Het rapport begint met een kop: de procesnaam en PID, het pad, het bovenliggende proces, het codetype en de macOS-versie. Het deel dat ertoe doet, komt daarna, onder Call graph.
De call graph toont elke thread. De hoofdthread, die klikken en toetsaanslagen verwerkt, heet com.apple.main-thread. Onder elke thread springen de functies in om te laten zien welke functie welke aanriep. Het getal aan het begin van een regel is hoe vaak die functie op de stack stond toen er een meting werd gedaan.
- Volg de regels met de grootste getallen omlaag tot de diepste inspringing. Daar besteedde de thread de meeste tijd.
- Zijn de diepste regels op de hoofdthread wachtaanroepen zoals
mach_msg,__psynch_cvwaitof__semwait_signal, dan stond de thread stil omdat hij op iets anders wachtte. - Zijn de diepste regels de eigen functies van de app met grote getallen, dan was de thread druk aan het werk.
- Het gedeelte ‘Sort by top of stack’ tegen het einde toont de functies die het vaakst actief waren: een snelle samenvatting van dezelfde gegevens.
- De lijst Binary Images aan het einde noemt de frameworks en bibliotheken die in het proces zijn geladen.
Zo bewaar je een momentopname in een bestand vanuit Terminal
De opdracht sample geeft je meer controle dan Activiteitenweergave. Standaard duurt het 10 seconden, en dat kun je aanpassen.
- Open Terminal via Apps > Hulpprogramma’s.
- Zoek de proces-ID op met
pgrep -lx Safarien vervang Safari door de naam van het proces. - Voer
sample <PID> 10 -file ~/Desktop/sample.txtuit terwijl het probleem zich voordoet. - Open het bestand op je bureaublad, of voeg het toe aan een bugmelding.
Wanneer een momentopname helpt en wanneer niet
Een momentopname legt één proces vast. Gebruik hem als je al weet welke app het probleem is.
- Nuttig: een app zit vast, één proces houdt een hoog % CPU vast, of een app is traag bij een bepaalde taak die je kunt herhalen.
- Minder nuttig: de hele Mac is traag en je weet niet waarom. Een spindump, die elk proces vastlegt, past daar beter bij.
- Niet nuttig: het probleem is al voorbij. Een momentopname laat alleen zien wat er gebeurde terwijl hij liep.
Zo stuur je een momentopname naar een ontwikkelaar
Een momentopname op zich is nuttig, maar met een korte toelichting kan de ontwikkelaar er veel makkelijker iets mee.
- Maak de momentopname terwijl de app vastzit of druk bezig is, niet nadat hij zich heeft hersteld.
- Bewaar het rapport als tekstbestand in plaats van er een stuk uit te kopiëren. Ontwikkelaars hebben de hele call graph en de lijst Binary Images nodig.
- Schrijf op wat je aan het doen was toen het probleem begon, zoals het bestand dat je opende of de knop waarop je klikte.
- Vermeld de versie van de app en je macOS-versie. Die staan ook in de kop van het rapport, naast Version en OS Version.
- Stuur het via de ondersteuningspagina of bugtracker van de app, of via Feedback-assistent naar Apple als de app van Apple is.
Vragen die mensen stellen
Wat doet Maak momentopname van proces in Activiteitenweergave?
Het legt ongeveer 3 seconden vast wat een proces doet en toont een rapport van zijn threads en de code die ze uitvoerden. Ontwikkelaars gebruiken het om vastlopers en hoog CPU-gebruik te onderzoeken.
Is het veilig om een momentopname van een proces te maken?
Ja. Een momentopname kijkt alleen mee met het proces. Het verandert of stopt het niet.
Wanneer maak ik een momentopname van een proces?
Maak de momentopname terwijl het probleem zich voordoet, bijvoorbeeld als een app vastzit of veel CPU gebruikt. Een momentopname van nadat de app hersteld is, laat de oorzaak niet zien.
Hoe lang duurt Maak momentopname van proces?
In Activiteitenweergave legt het ongeveer 3 seconden vast. De opdracht sample in Terminal legt standaard 10 seconden vast, of het aantal seconden dat je opgeeft.
Bevat een momentopnamerapport persoonlijke gegevens?
Het bevat de procesnaam, bestandspaden en geladen bibliotheken, en paden kunnen je gebruikersnaam bevatten. Lees het na voordat je het ergens openbaar plaatst.
Waarom toont de momentopname vraagtekens in plaats van functienamen?
Voor die delen van de app waren geen symboolnamen beschikbaar. De ontwikkelaar kan de adressen toch aan zijn code koppelen, dus stuur het rapport zoals het is.
Gerelateerd
Op zoek naar iets beters dan Activiteitenweergave? Bekijk de beste alternatieven voor Activiteitenweergave op de Mac, of blader door alle begrippen in de woordenlijst.