Profiling-Daten abrufen und analysieren

Auf dieser Seite wird beschrieben, wie Sie Traces abrufen und in der Perfetto-Benutzeroberfläche visualisieren.

Traces abrufen

Nachdem ein Profil aufgezeichnet wurde, werden die Daten auf Ihrem Gerät gespeichert. Bevor Sie diese Traces analysieren können, müssen Sie sie abrufen.

Die Standorte für die Routen werden von ProfilingResult.getResultFilePath() bereitgestellt. Informationen zum Abrufen des Trace-Standorts finden Sie unter Profil erfassen. Sobald Sie den Speicherort des Traces kennen, können Sie ihn auf einen Server hochladen.

Lokale Tests: Traces mit ADB abrufen

Die Verwendung von adb zum Abrufen von Traces ist hilfreich, um die Leistung zu prüfen und lokal Fehler zu beheben.

Die anonymisierten Routen werden in den Dateien Ihres Geräts gespeichert. Ein typischer Pfad für ein gespeichertes Profil ist:

/data/user/0/<app>/files/profiling/profile<tag><datetime>.perfetto-trace

Dabei gilt:

  • <app> ist der Name der App.
  • <datetime> ist das Datum und die Uhrzeit, zu der der Trace aufgezeichnet wurde.
  • <tag> ist das vom Nutzer bereitgestellte Tag, das mit setTag konfiguriert wurde.

Wenn nicht geschwärzte Traces aktiviert und gespeichert sind, verwenden Sie den folgenden adb-Befehl, um sie vom Gerät abzurufen:

adb pull /data/misc/perfetto-traces/profiling/<trace-name>.perfetto-trace-unredacted

Traces visualisieren

Nachdem Sie den Trace auf Ihren Computer heruntergeladen haben, können Sie ihn in der Perfetto-Benutzeroberfläche ansehen.

Beispiel für einen entfernten Trace
Abbildung 1: Beispiel für einen anonymisierten Trace.

In einem anonymisierten Trace werden im Bereich OtherProcesses alle CPU-Aktivitäten aus anderen Prozessen zusammengefasst. Durch das Kombinieren von Prozessen bleiben die Aktivitäten dieser anderen Prozesse privat.

Anhand dieser kombinierten CPU-Aktivität können Sie jedoch weiterhin prüfen, ob das System während der Aufzeichnung überlastet war. Wenn Sie die Systemaktivität prüfen, können Sie herausfinden, ob Ihre App aufgrund eines internen Problems oder aufgrund einer allgemeinen Verlangsamung des Systems langsam war.

Das folgende Bild zeigt die wichtigsten Teile des Traces und beschreibt sie kurz:

Abschnitte eines anonymisierten Traces
Abbildung 2: Abschnitte eines anonymisierten Traces.
  1. CPU-Liste: Hier werden alle auf Ihrem Gerät verfügbaren Prozessoren angezeigt.
  2. CPU-Aufgaben: Zeigt an, welche Threads auf den einzelnen CPUs ausgeführt wurden.
  3. Ansicht „Andere Prozesse“: Zeigt die von anderen Prozessen verbrauchten CPU-Ressourcen an.
  4. Prozessansicht: Hier wird der Prozess Ihrer App angezeigt.
  5. Thread-Ansicht: Hier werden die Threads angezeigt, die in Ihrem Prozess ausgeführt werden, sowie ihre Thread-Status („Runnable“ (R), „Running“ (R), „Sleeping“ (S), „Uninterruptible Sleep“ (D)), die direkt den Linux-Prozessstatus entsprechen.
  6. Trace-Slices: In diesem Abschnitt werden Trace-Anmerkungen angezeigt, die von App-Entwicklern oder dem Framework hinzugefügt wurden. Diese Annotationen umfassen Berechnungen zwischen Trace.beginSection und Trace.endSection.

Weitere Informationen zur Perfetto-Benutzeroberfläche und zur Trace-Visualisierung finden Sie in der Perfetto-Dokumentation.