In Android GPU Inspector (AGI), puoi visualizzare e analizzare un profilo di sistema nell'interfaccia utente di System Profiler. Dopo aver profilato un sistema e aperto il file di traccia in AGI, System Profiler visualizza i dati di profilazione in una sequenza temporale con elementi espandibili che mostrano dettagli aggiuntivi.
Gli elementi principali dell'interfaccia utente di System Profiler includono:
Barra strumenti
Casella di testo del filtro delle tracce: filtra le tracce visualizzate nel riquadro delle tracce.
Pulsante Informazioni (i): mostra i metadati della traccia e del dispositivo.
Pulsante Guida (?): mostra le scorciatoie da tastiera e con il mouse.
Sequenza temporale: indica l'intervallo di tempo degli eventi di traccia.
Riquadro delle tracce: mostra i dati di profilazione in relazione alla sequenza temporale.
Riquadro dei dettagli: un riquadro espandibile che mostra i dettagli di un elemento selezionato.
Dati di profilazione
In un file di traccia, i dati di profilazione vengono archiviati in eventi con timestamp chiamati eventi di traccia. Gli eventi di traccia sono costituiti da vari tipi di sezioni e contatori. Ad esempio, gli eventi di traccia della CPU includono sezioni di pianificazione, mentre gli eventi di traccia della GPU includono contatori delle prestazioni della GPU e sezioni dei thread.
Nell'interfaccia utente di System Profiler, il riquadro delle tracce contiene eventi di traccia visualizzati in righe chiamate tracce, basate sulla sequenza temporale. Le tracce dello stesso tipo vengono visualizzate nei gruppi di tracce.
Tracce della GPU
Le tracce della GPU mostrano le informazioni di profilazione della GPU. Questi sono i principali tipi di tracce della GPU:
Tracce della coda della GPU: attività della GPU dell'applicazione.
Tracce dei contatori della GPU: contatori hardware della GPU campionati a intervalli periodici.
Traccia degli eventi Vulkan: eventi correlati all'API Vulkan.
Tracce di SurfaceFlinger: eventi di SurfaceFlinger, che indicano come i buffer grafici si spostano nel sistema.
Tracce della coda della GPU
Una GPU può avere una o più tracce della coda della GPU in base al numero di code hardware eseguite durante la traccia. Le tracce della coda della GPU contengono sezioni di attività che rappresentano il periodo e il tipo di lavoro della GPU utilizzato dall'app.
Una sezione di attività contiene metadati che puoi visualizzare, come il buffer dei comandi Vulkan, il passaggio di rendering e il buffer dei frame che hanno avviato il lavoro. Gli handle Vulkan di questi oggetti vengono visualizzati nel riquadro dei dettagli come segue:
VkCommandBufferVkRenderPassVkFrameBuffer
Puoi assegnare nomi descrittivi a questi oggetti, in modo da identificarli facilmente
in una traccia insieme ai relativi handle, utilizzando la
vkSetDebugUtilsObjectNameEXT
funzione dell'estensione VK_EXT_debug_utils o la
vkDebugMarkerSetObjectNameEXT
funzione dell'estensione VK_EXT_debug_marker. Entrambe le estensioni sono implementate da AGI e sono disponibili per la tua applicazione durante la traccia.
Tracce dei contatori della GPU
Le tracce dei contatori della GPU rappresentano graficamente il valore dei contatori delle prestazioni della GPU campionati a intervalli periodici. I grafici mostrano le variazioni delle prestazioni dei componenti hardware sottostanti delle GPU tra i campioni. Puoi utilizzare queste informazioni per identificare i colli di bottiglia nell'utilizzo della GPU.
I contatori disponibili sono specifici dell'hardware. Puoi visualizzare brevi descrizioni di ogni contatore passando il mouse sopra il nome della traccia. Per i dettagli, consulta Contatori delle prestazioni della GPU.
Traccia degli eventi Vulkan
La traccia degli eventi Vulkan mostra gli eventi dell'API Vulkan registrati durante la traccia. I tipi di eventi di traccia sono principalmente eventi di invio della coda (chiamate vkQueueSubmit). Se fai clic su un evento di invio della coda, AGI evidenzia le sezioni di attività della GPU associate alla chiamata. Puoi utilizzare questi dati per esaminare il lavoro asincrono messo in coda dalle chiamate API Vulkan e la latenza tra la CPU e la GPU.
Tracce di SurfaceFlinger
SurfaceFlinger tracks display il ciclo di vita dei buffer grafici (le destinazioni di rendering della catena di scambio di un'app) man mano che avanzano nel sistema fino alla visualizzazione. Gli eventi vengono aggregati per buffer per semplificare il monitoraggio dell'overhead e della latenza necessari per acquisire e pubblicare i buffer.
Interagire con i dati di profilazione
Questa sezione descrive come interagire con i dati di profilazione nell' interfaccia utente di System Profiler.
Fissa
Puoi fissare tracce e gruppi di tracce utilizzando il pulsante di fissaggio.
Compressione ed espansione
Alcune tracce e tutti i gruppi di tracce sono comprimibili. Alcuni gruppi di tracce mostrano un riepilogo quando sono compressi. Ad esempio, quando è compresso, il gruppo di tracce della CPU mostra l'utilizzo complessivo della CPU in un grafico.
Zoom
AGI aggrega i dati di profilazione in base al livello di zoom. Quando apri per la prima volta un file di traccia, l'interfaccia utente di System Profiler mostra l'intero profilo al livello di zoom massimo. Puoi esaminare il profilo individuando le aree di interesse e visualizzando i dettagli.
Quando aumenti e diminuisci lo zoom su diversi tipi di tracce, vengono visualizzati diversi tipi di dati di profilazione. Ad esempio, le tracce della CPU inizialmente mostrano le sezioni temporali di ogni thread, per poi passare alla visualizzazione dei dati di utilizzo dei core della CPU quando aumenti lo zoom.
Visualizza dettagli
Puoi visualizzare i metadati dettagliati nel riquadro dei dettagli selezionando gli elementi nel riquadro delle tracce. Se un elemento è selezionabile, quando passi il mouse sopra di esso il cursore si trasforma in un puntatore e puoi scegliere l'elemento.
Seleziona un intervallo di tempo
Puoi selezionare un intervallo di tempo, che ti consente di confrontare gli eventi di traccia di tracce diverse. Per farlo, attiva la modalità Timing e trascina per selezionare un intervallo. Tutto ciò che si trova al di fuori dell'intervallo è oscurato e viene visualizzata la durata dell'intervallo.
Puoi anche selezionare l'intervallo di tempo di una sezione selezionata premendo M. Puoi quindi scorrere le tracce aggiuntive per identificare gli eventi dello stesso periodo di tempo.
Scorciatoie di navigazione
Puoi spostarti tra gli elementi nel riquadro delle tracce con i tasti WASD o scorrendo ed eseguendo la panoramica. System Profiler utilizza le stesse scorciatoie da tastiera e con il mouse
di Systrace.
Le scorciatoie disponibili includono:
WeSoCtrl++eCtrl+-per aumentare lo zoom.AeDo le freccelefterightper spostare la visualizzazione verso sinistra e verso destra.QeEo le frecceupedownper scorrere le tracce.- Tieni premuto
shiftper aumentare la velocità di spostamento della navigazione. Ctrl+scorrimento per aumentare lo zoom sull'elemento selezionato.Fper aumentare lo zoom su un elemento selezionato.Z+0per reimpostare e diminuire completamente lo zoom.Vper attivare/disattivare l'evidenziazione di VSync, se disponibile nella traccia.Mper contrassegnare la selezione attuale selezionando l'intervallo di tempo.Ho?per visualizzare il foglio di riferimento delle scorciatoie da tastiera e con il mouse.
Modalità di navigazione
La barra degli strumenti contiene pulsanti che consentono di passare da una modalità di navigazione all'altra, selezionando l'azione eseguita quando trascini gli elementi nel riquadro delle tracce. Puoi anche selezionare le seguenti modalità di navigazione premendo i tasti 1, 2, 3 e 4:
- Selezione: trascina per selezionare gli elementi in una casella.
- Panoramica: trascina per eseguire la panoramica e scorrere le tracce. Si tratta della modalità predefinita.
- Zoom: trascina in verticale per aumentare lo zoom sugli elementi.
- Timing: trascina per selezionare un intervallo di tempo.
Puoi anche utilizzare le modalità di navigazione con questi tasti modificatori:
Shift+trascina per selezionare gli elementi in una casella.Space+trascina per eseguire la panoramica e scorrere.Ctrl+scorrimento per aumentare lo zoom.Ctrl+trascina per selezionare un intervallo di tempo.