Callstacks sind nützlich, um CPU-Hotspots zu identifizieren, also Codeabschnitte, deren Ausführung lange dauert. Mithilfe von Callstacks können Sie nachvollziehen, welcher Teil des Codes ausgeführt wurde und warum er aufgerufen wurde.
Übersicht über Callstack-Beispiele
Wenn Sie den Callstack analysieren möchten, wählen Sie auf dem Tab Startseite des Android Studio Profiler die Aufgabe CPU-Hotspots suchen (Callstack-Analyse) aus. Nachdem die Aufzeichnung analysiert wurde, werden die folgenden Grafiken angezeigt:
Zur Ergänzung der Zeitachse für CPU-Nutzung und Interaktionen werden im Bereich Threads Frames für jeden Aufruf angezeigt, den Ihre App und das System ausführen. Hier sind einige Tipps zur Navigation im Callstack-Beispiel:
- Maximieren Sie den gewünschten Thread und verwenden Sie Tastenkombinationen, um durch die Stackframes zu navigieren. Klicken Sie auf einen Stapelframe, um im Bereich Analyse Details zum Ereignis und zugehörigen Aufrufen zu erhalten.
- Wenn Sie nach bestimmten Arten von Stackframes filtern möchten, klicken Sie auf Frames minimieren und setzen Sie ein Häkchen bei den Frametypen, die Sie ausblenden möchten. Wenn Sie Frames minimieren, werden sie sowohl aus dem Bereich Threads als auch aus dem Bereich Analyse entfernt. Je nach Untersuchung kann es sinnvoll sein, Frames aus der Java Virtual Machine (z. B.
android::AndroidRuntime::start
undart::{...}
) und dem Systemkernel (z. B.[kernel.kallsyms]+{offset}
) zu minimieren. Normalerweise entspricht das dem Minimieren von Frames, die mit[kernel.kallsyms]
,/apex/
und/system/*
zusammenhängen.
Da ein Java-/Kotlin-Programm in der Regel über eine Java Virtual Machine ausgeführt wird, enthält der Callstack, den Android Studio für ein Java-/Kotlin-Programm erfasst, in der Regel nicht nur den Java-/Kotlin-Code, sondern auch den nativen Code, der für die Ausführung des Programms selbst und für die Kommunikation des Programms mit dem System und der Hardware erforderlich ist.
- Wenn Sie zum Quellcode eines Stackframes springen möchten, klicken Sie mit der rechten Maustaste auf den Frame und dann auf Zum Quellcode springen.
- Wenn Sie den mit einem Ereignis verknüpften Stackframe in der Ereignistabelle hervorheben möchten, klicken Sie auf das Ereignis.
Informationen zu den anderen Visualisierungen finden Sie unter System-Trace aufzeichnen und im Diagrammglossar.
Nativen Code über die Befehlszeile testen
Intern verwendet Android Studio simpleperf, um den nativen Code Ihrer App zu analysieren. Wenn Sie zusätzliche Optionen für Simpleperf angeben möchten, z. B. das Sampling bestimmter Geräte-CPUs oder das Festlegen von Sampling-Dauern mit hoher Genauigkeit, können Sie Simpleperf über die Befehlszeile verwenden.