Mit Android GPU Inspector (AGI) können Sie Systemprofiling durchführen, das eine Vielzahl von Tracing-Optionen und GPU-Leistungsmessungen für Ihre Android-App umfasst. Im Vergleich zu den Android Studio-Profiling-Tools vereint AGI viele dieser Funktionen in einem Tool und bietet dann eine detailliertere GPU-Abdeckung und ‑Analyse. Die verfügbaren Daten zur Systemprofilerstellung umfassen Folgendes:
- App-Tracedaten, einschließlich ATrace-Markierungen
- CPU- und Prozessplanungsdaten
- Informationen zur GPU-Leistung, z. B. Zähler-, Aktivitäts- und Lebenszyklusdaten
- Trace-Daten für Vulkan-API-Aufrufe
- Statistiken zur Arbeitsspeichernutzung
- Statistiken zur Akkunutzung
System Profiler ist die AGI-Komponente, die die Benutzeroberfläche und die Instrumentierung für das Systemprofiling über mehrere App-Frames hinweg verwaltet. Es basiert auf dem Perfetto-Tracing-System. Informationen zur AGI-Komponente zum Profilieren einzelner App-Frames finden Sie in der Übersicht zum Frame-Profiler.
Erste Schritte
In der AGI-Kurzanleitung wird beschrieben, wie Sie AGI einrichten, ein Systemprofil erfassen und die resultierende Tracedatei öffnen. Im nächsten Abschnitt werden die Konfigurationsoptionen genauer beschrieben.
Profilerstellungsoptionen
In diesem Abschnitt werden die wichtigsten Optionen beschrieben, die beim Profilieren einer App verfügbar sind.
Anwendungseinstellungen
In den Anwendungseinstellungen wird die Android-App angegeben, die während des Systemprofilings ausgeführt und getracet werden soll. Die Auswahl einer Android-App für das Tracing während der Systemprofilerstellung ist optional, wird aber empfohlen, da die resultierende Trace-Datei sonst keine ATrace-Marker und GPU-Aktivitäten für eine Anwendung enthält.
Trace-Optionen
Mit den Trace-Optionen werden die zu erfassenden Profiling-Daten angegeben. Über die Schaltfläche Konfigurieren werden die verfügbaren Datenquellen angezeigt.
Um die Leistung Ihres Android-Geräts beim Profiling des Systems möglichst wenig zu beeinträchtigen, empfehlen wir, weniger Datenquellen auszuwählen, wenn Sie die Dauer des Traces auf mehr als eine Minute festlegen. Bei Traces, die weniger als eine Minute dauern, können Sie jedoch alle Datenquellen auswählen, ohne dass dies große Auswirkungen hat.
CPU-Optionen
Mit der Option CPU können CPU- und Prozessplanungsdaten über ftrace erfasst werden. So können Sie sehen, welcher Prozess und Thread auf jedem CPU-Kern ausgeführt wird. Sie können auch diese Optionen aktivieren:
- Frequenz und Leerlaufzustände: Erfasst Ereignisse für Änderungen der CPU-Kernfrequenz und des Leerlaufzustands. So können Sie sehen, wie die CPU je nach Last hoch- oder herunterskaliert wird.
- Planung von Chains / Latenz: Erfasst zusätzliche Daten zum Threadstatus in Bezug auf Verzögerungen bei der Threadplanung und Unterbrechungen.
- Thread-Slices: Erfasst ATrace-Marker in den Prozessansichten.
GPU-Optionen
Mit den GPU-Optionen können Sie die GPU-Nutzung Ihrer App analysieren, z. B. Daten zur GPU-Frequenz und zur Speichernutzung erfassen. Damit diese Daten erfasst werden können, müssen Sie in den Anwendung-Einstellungen eine Anwendung für das Tracing angeben. Folgende Optionen sind verfügbar:
Zähler: Erfasst GPU-Zähler-Samples. Diese Daten werden verwendet, um die Auslastung der GPU zu ermitteln und Engpässe zu finden. Wir empfehlen daher, diese Einstellungen zu konfigurieren.
Die Zähler sind hardwarespezifisch. Die Mindesthäufigkeit für die Erfassung von Stichproben (Abrufrate) kann beispielsweise je nach Zählertyp variieren. Informationen zu unterstützten Zählern finden Sie unter GPU-Leistungszähler.
Frame-Lebenszyklus: Traces von SurfaceFlinger-Ereignissen, mit denen ermittelt werden kann, wie sich Frame-Puffer durch Ihre Anwendung, den Compositor und den Fenstermanager bewegen. Mithilfe dieser Ereignisse können Sie ausgelassene App-Frames finden und Quellen für Latenz in Ihrer Rendering-Pipeline identifizieren.
Renderstage-Slices: Erfassen Daten, mit denen sich ermitteln lässt, wie Ihre Anwendung die GPU nutzt.
Vulkan-Optionen
Mit den Vulkan-Optionen können Sie das Tracing von Vulkan-API-Aufrufen aktivieren, die dann nach Funktionstyp aktiviert werden können. Anhand dieser Daten können Sie den CPU-Overhead von Vulkan-API-Aufrufen ermitteln. Im Trace wird die Dauer jedes Funktionsaufrufs aufgezeichnet. Diese wird in den Thread-Slices Ihrer App angezeigt, wenn Sie die Daten im Vulkan-Ereignistrack analysieren.
Sonstige Optionen
Die zusätzlichen Optionen für die Systemprofilerstellung umfassen:
Arbeitsspeicher: Erfassen Sie wichtige Statistiken zur Arbeitsspeichernutzung, sowohl global als auch für jeden Prozess.
Akku: Erfasst Akkustatistiken. So erhalten Sie eine grobe Schätzung des Stromverbrauchs Ihrer Anwendung.
Tracing in eine Datei auf dem Gerät erzwingen: Trace-Daten werden in der Regel über USB gestreamt, während der Trace erfasst wird. Dies erfordert den geringsten Overhead und ermöglicht lange Traces. Wenn Sie jedoch Probleme oder verlorene Profiling-Daten aufgrund von USB-Latenz haben, können Sie diese Option auswählen, um die Tracedatei auf dem Gerät zu speichern. AGI lädt sie dann nach Abschluss des Tracings herunter. Dazu ist ausreichend Speicherplatz im internen Speicher Ihres Geräts erforderlich, um die Tracedatei zu speichern.
Erweiterter Modus
Über den Link In den erweiterten Modus wechseln wird der erweiterte Konfigurationsmodus gestartet. In diesem Modus können Sie die Perfetto-Trace-Konfiguration, in der Ihre Profiling-Optionen gespeichert sind, manuell bearbeiten.
Ergebnisse ansehen und analysieren
Wenn Sie eine Trace-Datei mit Systemprofiling-Daten öffnen, werden die Daten in der Systemprofiler-Benutzeroberfläche von AGI zur Analyse angezeigt. Informationen zum Ansehen der Daten finden Sie unter Systemprofil ansehen.
In diesen Themen wird beschrieben, wie Sie Systemprofiling-Daten mit AGI analysieren:
- Frame-Verarbeitungszeiten analysieren
- Speichereffizienz analysieren
- Arbeitsspeicherbandbreite für Texturen analysieren
- Arbeitsspeicherbandbreitennutzung von Vertex analysieren
- Thread-Planung analysieren