In Android GPU Inspector (AGI) können Sie ein Systemprofil in der Benutzeroberfläche des Systemprofilers ansehen und analysieren. Nachdem Sie ein System profiliert und die Trace-Datei in AGI geöffnet haben, werden die Profildaten im Systemprofiler in einer Zeitachse mit maximierbaren Elementen angezeigt, die zusätzliche Details enthalten.
Die Hauptelemente der Systemprofiler-Benutzeroberfläche sind:
Symbolleiste
Textfeld für Trackfilter: Filtert die Tracks, die im Bereich Track angezeigt werden.
Infobutton (i): Hier werden Metadaten zu Spuren und Geräten angezeigt.
Schaltfläche „Hilfe“ (?): Hier werden Tastenkombinationen angezeigt.
Zeitachse: Gibt den Zeitraum der Trace-Ereignisse an.
Bereich Track: Hier werden die Profiling-Daten in Bezug auf die Zeitachse angezeigt.
Bereich „Details“: Ein maximierbarer Bereich, in dem Details zu einem ausgewählten Element angezeigt werden.
Datenprofil erstellen
In einer Tracedatei werden die Profiling-Daten in Ereignissen mit Zeitstempel gespeichert, die als Trace-Ereignisse bezeichnet werden. Trace-Ereignisse bestehen aus verschiedenen Arten von Slices und Zählern. CPU-Trace-Ereignisse enthalten beispielsweise Scheduling-Abschnitte, während GPU-Trace-Ereignisse GPU-Leistungszähler und Thread-Abschnitte enthalten.
In der System Profiler-Benutzeroberfläche enthält der Bereich „Track“ Trace-Ereignisse, die in Zeilen (Tracks) angezeigt werden, die auf der Zeitachse basieren. Tracks desselben Typs werden in Trackgruppen angezeigt.
GPU-Tracks
Auf den GPU-Tracks werden GPU-Profiling-Informationen angezeigt. Das sind die wichtigsten GPU-Tracks:
GPU Queue Tracks (GPU-Warteschlangen-Tracks): GPU-Aktivität der Anwendung.
GPU-Zähler-Tracks: Hardwarezähler der GPU, die in regelmäßigen Abständen erfasst werden.
Vulkan Events Track: Ereignisse im Zusammenhang mit der Vulkan API.
SurfaceFlinger-Tracks: SurfaceFlinger-Ereignisse, die angeben, wie sich Grafikpuffer durch das System bewegen.
GPU-Warteschlangentracks
Eine GPU kann einen oder mehrere GPU-Warteschlangen haben, je nachdem, wie viele Hardwarewarteschlangen während des Traces ausgeführt wurden. GPU Queue-Tracks enthalten Aktivitätsabschnitte, die den Zeitraum und den Typ der GPU-Arbeit darstellen, die von Ihrer App verwendet wurde.
Ein Aktivitätssegment enthält Metadaten, die Sie aufrufen können, z. B. den Vulkan-Befehlspuffer, den Renderpass und den Framebuffer, die die Arbeit initiiert haben. Die Vulkan-Handles für diese Objekte werden im Bereich Details so angezeigt:
VkCommandBuffer
VkRenderPass
VkFrameBuffer
Sie können diesen Objekten nutzerfreundliche Namen geben, damit Sie sie in einem Trace zusammen mit ihren Handles leicht identifizieren können. Verwenden Sie dazu die Funktion vkSetDebugUtilsObjectNameEXT
aus der Erweiterung VK_EXT_debug_utils
oder die Funktion vkDebugMarkerSetObjectNameEXT
aus der Erweiterung VK_EXT_debug_marker
. Beide Erweiterungen werden von AGI implementiert und sind für Ihre Anwendung während des Tracings verfügbar.
GPU-Zähler-Tracks
GPU-Zähler zeichnen den Wert von GPU-Leistungszählern auf, die in regelmäßigen Abständen erfasst werden. Die Diagramme zeigen Schwankungen bei der Leistung der Hardwarekomponenten Ihrer GPUs zwischen den Stichproben. Mithilfe dieser Informationen können Sie Engpässe bei der GPU-Nutzung erkennen.
Die verfügbaren Zähler sind hardwarespezifisch. Wenn Sie den Mauszeiger auf den Namen eines Tracks bewegen, wird eine kurze Beschreibung des jeweiligen Zählers angezeigt. Weitere Informationen finden Sie unter GPU-Leistungszähler.
Vulkan-Ereignis-Track
Auf dem Vulkan-Ereignistrack werden Vulkan API-Ereignisse angezeigt, die während des Traces aufgezeichnet wurden. Bei den Track-Ereignistypen handelt es sich hauptsächlich um Ereignisse zum Einreichen von Warteschlangen (vkQueueSubmit
-Aufrufe). Wenn Sie auf ein Ereignis zum Einreichen einer Warteschlange klicken, werden in AGI die GPU-Aktivitätsabschnitte hervorgehoben, die mit dem Aufruf verknüpft sind. Anhand dieser Daten können Sie die asynchrone Arbeit untersuchen, die durch Vulkan-API-Aufrufe in die Warteschlange gestellt wird, sowie die Latenz zwischen CPU und GPU.
SurfaceFlinger-Tracks
SurfaceFlinger verfolgt den Lebenszyklus von Grafikpuffern (den Swapchain-Renderzielen einer App), während sie durch das System laufen, bis sie angezeigt werden. Die Ereignisse werden nach Puffer aggregiert, um den Aufwand und die Latenz für das Abrufen und Posten von Puffern leichter nachvollziehbar zu machen.
Mit Profildaten interagieren
In diesem Abschnitt wird beschrieben, wie Sie in der System Profiler-Benutzeroberfläche mit Profilerstellungsdaten interagieren.
Anpinnen
Sie können Tracks und Trackgruppen mit der entsprechenden Schaltfläche anpinnen.
Minimieren und maximieren
Einige Tracks und alle Trackgruppen können minimiert werden. Bei einigen Trackgruppen wird im minimierten Zustand eine Zusammenfassung angezeigt. Wenn die CPU-Trackgruppe minimiert ist, wird beispielsweise die gesamte CPU-Nutzung in einem Diagramm angezeigt.
Zoom
AGI fasst Profiling-Daten basierend auf der Zoomstufe zusammen. Wenn Sie eine Trace-Datei zum ersten Mal öffnen, wird im System Profiler-UI das gesamte Profil auf der maximalen Zoomstufe angezeigt. Sie können das Profil untersuchen, indem Sie Bereiche von Interesse suchen und sich dann die Details ansehen.
Beim Heran- und Herauszoomen werden für die verschiedenen Arten von Tracks unterschiedliche Profiling-Daten angezeigt. In CPU-Tracks werden beispielsweise zuerst Zeitabschnitte für jeden Thread angezeigt. Beim Zoomen wird dann auf Daten zur CPU-Kernauslastung umgeschaltet.
Details ansehen
Wenn Sie Elemente im Bereich „Tracks“ auswählen, können Sie detaillierte Metadaten im Detailbereich anzeigen lassen. Wenn ein Element ausgewählt werden kann, ändert sich der Cursor, wenn Sie den Mauszeiger darauf bewegen, in einen Zeiger. Dann können Sie das Element auswählen.
Zeitraum auswählen
Sie können einen Zeitraum auswählen, um Trace-Ereignisse aus verschiedenen Tracks zu vergleichen. Aktiviere dazu den Timing-Modus und ziehe dann, um einen Bereich auszuwählen. Alles außerhalb des Bereichs wird abgedunkelt und die Dauer des Bereichs wird angezeigt.
Sie können auch den Zeitraum eines ausgewählten Segmentes auswählen, indem Sie M
drücken. Anschließend können Sie durch zusätzliche Tracks scrollen, um Ereignisse aus demselben Zeitraum zu finden.
Tastenkombinationen für die Navigation
Sie können Elemente im Bereich „Track“ mit den WASD
-Tasten oder durch Scrollen und Schwenken aufrufen. Der Systemprofiler verwendet dieselben Tastenkombinationen für Tastatur und Maus wie Systrace.
Folgende Tastenkombinationen sind verfügbar:
W
undS
oderCtrl++
undCtrl+-
zum Zoomen.- Mit den Pfeilen
A
undD
oderleft
undright
wird die Ansicht nach links und rechts geschwenkt. - Mit den Pfeilen
Q
undE
oderup
unddown
können Sie durch die Tracks scrollen. - Wenn Sie
shift
gedrückt halten, wird die Bewegungsgeschwindigkeit der Navigation erhöht. Ctrl
+ Scrollen zoomt das ausgewählte Element.F
– Zoom auf ein ausgewähltes ElementZ
+0
setzt den Zoom zurück und zoomt vollständig heraus.- Mit
V
wird die VSync-Hervorhebung ein- oder ausgeschaltet, sofern sie im Trace verfügbar ist. M
markiert die aktuelle Auswahl, indem der zugehörige Zeitraum ausgewählt wird.H
oder?
zeigt die Übersicht mit Tastatur- und Mauskombinationen an.
Navigationsmodus
Die Symbolleiste enthält Schaltflächen, mit denen Sie zwischen Navigationsmodi wechseln können. Dadurch wird die Aktion ausgewählt, die ausgeführt wird, wenn Sie Elemente im Bereich „Tracks“ ziehen. Sie können auch die folgenden Navigationsmodi auswählen, indem Sie die Tasten 1
, 2
, 3
und 4
drücken:
- Auswahl: Ziehen Sie, um Elemente auszuwählen.
- Schwenken: Ziehen Sie, um die Tracks zu schwenken und zu scrollen. Das ist der Standardmodus.
- Zoomen: Ziehen Sie vertikal, um Elemente zu zoomen.
- Zeitangabe: Ziehen Sie, um einen Zeitraum auszuwählen.
Sie können auch Navigationsmodi mit diesen Modifikatortasten verwenden:
Shift+
ziehen, um Elemente auszuwählen.Space+
ziehen, um zu schwenken und zu scrollen.Ctrl+
Scrollen, um zu zoomen.Ctrl+
Ziehen Sie, um einen Zeitraum auszuwählen.