Glossar/Wenn etwas schiefgeht

Prozess analysieren

Auch: App analysieren, Prozessanalyse, Sample

Kurze Antwort

„Prozess analysieren“ ist ein Werkzeug der Aktivitätsanzeige, das ein paar Sekunden lang aufzeichnet, was ein ausgewählter Prozess tut, und einen Textbericht erstellt, wo seine Threads ihre Zeit verbringen. Entwickler:innen nutzen diese Berichte, um herauszufinden, warum eine App langsam, ausgelastet oder hängen geblieben ist.

Laut Apple erstellt „Prozess analysieren“ einen Bericht über einen ausgewählten Prozess über einen Zeitraum von 3 Sekunden. Der Bericht listet jeden Thread und die Funktionen, die er ausgeführt hat, mit Zählern, wie oft jede davon auftauchte.

Du musst den Bericht nicht selbst lesen. Am nützlichsten ist er, wenn eine App hängt oder viel CPU verbraucht und du den Entwickler:innen etwas Konkretes schicken willst.

So analysierst du einen Prozess in der Aktivitätsanzeige

Wähle den Prozess aus, klicke oben im Fenster auf die Taste „Mehr“ (die drei Punkte) und wähle „Prozess analysieren“. Du kannst auch auf den Prozess doppelklicken und im geöffneten Fenster auf „Analysieren“ klicken.

Wenn der Bericht erscheint, kannst du ihn als Textdatei sichern und einem Fehlerbericht oder einer Supportanfrage beifügen.

So analysierst du einen Prozess im Terminal

Führe sample <PID> 5 aus, um einen Prozess 5 Sekunden lang zu analysieren. Statt der PID kannst du auch einen Teil des Prozessnamens angeben. Der Bericht wird ausgegeben und in einer Datei gesichert, deren Pfad am Ende angezeigt wird.

So liest du einen Analysebericht

Der Bericht beginnt mit einem Kopfteil: Prozessname und PID, Pfad, übergeordneter Prozess, Codetyp und macOS-Version. Der wichtige Teil folgt danach unter „Call graph“.

Der Call graph listet jeden Thread. Der Haupt-Thread, der Klicks und Tastendrücke verarbeitet, heißt com.apple.main-thread. Unter jedem Thread sind die Funktionen eingerückt, sodass du siehst, welche Funktion welche aufgerufen hat. Die Zahl am Zeilenanfang gibt an, wie oft die Funktion bei einer Messung auf dem Stack lag.

  • Folge den Zeilen mit den größten Zahlen bis zur tiefsten Einrückung. Dort hat der Thread die meiste Zeit verbracht.
  • Sind die tiefsten Zeilen im Haupt-Thread Warteaufrufe wie mach_msg, __psynch_cvwait oder __semwait_signal, war der Thread blockiert und wartete auf etwas anderes.
  • Sind die tiefsten Zeilen eigene Funktionen der App mit hohen Zahlen, war der Thread mit Arbeit beschäftigt.
  • Der Abschnitt „Sort by top of stack“ gegen Ende listet die Funktionen, die am häufigsten liefen, eine schnelle Zusammenfassung derselben Daten.
  • Die Liste „Binary Images“ am Ende nennt die Frameworks und Bibliotheken, die im Prozess geladen sind.

So sicherst du eine Analyse im Terminal in eine Datei

Der Befehl sample gibt dir mehr Kontrolle als die Aktivitätsanzeige. Standardmäßig misst er 10 Sekunden, und du kannst die Dauer ändern.

  1. Öffne das Terminal unter „Programme“ > „Dienstprogramme“.
  2. Finde die Prozess-ID mit pgrep -lx Safari und ersetze Safari durch den Prozessnamen.
  3. Führe sample <PID> 10 -file ~/Desktop/sample.txt aus, während das Problem auftritt.
  4. Öffne die Datei auf deinem Schreibtisch oder füge sie einem Fehlerbericht bei.

Wann eine Analyse hilft und wann nicht

Eine Analyse ist eine Momentaufnahme eines einzelnen Prozesses. Nutze sie, wenn du schon weißt, welche App das Problem ist.

  • Hilfreich: Eine App ist eingefroren, ein Prozess hält „% CPU“ hoch, oder eine App ist bei einer bestimmten Aufgabe langsam, die du wiederholen kannst.
  • Weniger hilfreich: Der ganze Mac ist langsam, und du weißt nicht, warum. Ein Spindump, der alle Prozesse erfasst, passt dazu besser.
  • Nicht hilfreich: Das Problem ist schon vorbei. Eine Analyse zeigt nur, was während ihrer Laufzeit passiert ist.

So schickst du eine Analyse an Entwickler:innen

Eine Analyse allein ist nützlich, aber eine kurze Notiz dazu macht es viel leichter, etwas damit anzufangen.

  1. Erstelle die Analyse, während die App eingefroren oder beschäftigt ist, nicht nachdem sie sich erholt hat.
  2. Sichere den Bericht als Textdatei, statt nur einen Teil zu kopieren. Entwickler:innen brauchen den ganzen Call graph und die Liste „Binary Images“.
  3. Notiere, was du getan hast, als das Problem begann, etwa welche Datei du geöffnet oder auf welche Taste du geklickt hast.
  4. Gib die Version der App und deine macOS-Version an. Beide stehen auch im Kopf des Berichts, neben „Version“ und „OS Version“.
  5. Schicke sie über die Supportseite oder den Bugtracker der App, oder bei einer App von Apple über den Feedback-Assistenten an Apple.

Häufige Fragen

Was macht „Prozess analysieren“ in der Aktivitätsanzeige?

Es zeichnet etwa 3 Sekunden lang auf, was ein Prozess tut, und zeigt einen Bericht seiner Threads und des Codes, den sie ausgeführt haben. Entwickler:innen nutzen es, um Hänger und hohe CPU-Auslastung zu untersuchen.

Ist es sicher, einen Prozess zu analysieren?

Ja. Die Analyse beobachtet den Prozess nur. Sie verändert oder stoppt ihn nicht.

Wann sollte ich einen Prozess analysieren?

Analysiere, während das Problem auftritt, etwa wenn eine App eingefroren ist oder viel CPU verbraucht. Eine Analyse nach der Erholung zeigt die Ursache nicht.

Wie lange dauert „Prozess analysieren“?

In der Aktivitätsanzeige zeichnet es etwa 3 Sekunden auf. Der Befehl sample im Terminal zeichnet standardmäßig 10 Sekunden auf, oder so viele Sekunden, wie du angibst.

Enthält ein Analysebericht persönliche Daten?

Er enthält den Prozessnamen, Dateipfade und geladene Bibliotheken, und Pfade können deinen Benutzernamen enthalten. Lies ihn, bevor du ihn irgendwo öffentlich postest.

Warum zeigt die Analyse Fragezeichen statt Funktionsnamen?

Für diese Teile der App waren keine Symbolnamen verfügbar. Die Entwickler:innen können die Adressen trotzdem ihrem Code zuordnen, schicke den Bericht also so, wie er ist.

Verwandte Begriffe

Suchst du etwas Besseres als die Aktivitätsanzeige? Sieh dir die besten Alternativen zur Aktivitätsanzeige für den Mac an, oder stöbere durch alle Begriffe im Glossar.