Android Studio include un front-end grafico per Simpleperf, documentato in Esaminare l'attività della CPU con CPU Profiler. La maggior parte degli utenti preferirà utilizzare l'app invece di usare direttamente Simpleperf.
Se preferisci usare la riga di comando, Simpleperf è una riga di comando versatile Strumento di profilazione della CPU incluso nell'NDK per Mac, Linux e Windows.
Per la documentazione completa, inizia con il file README di Simpleperf.
Suggerimenti e ricette di SimplePerf
Se hai appena iniziato a usare Simpleperf, ecco alcuni comandi che potresti trovare particolarmente utile. Per altri comandi e opzioni, vedi Riferimento per comandi e opzioni Simpleperf.
Individuare le librerie condivise che richiedono più tempo per l'esecuzione
Puoi eseguire questo comando per vedere quali file .so
occupano la percentuale maggiore di esecuzione
(in base al numero di cicli della CPU). È un buon primo comando da eseguire all'avvio
la sessione di analisi del rendimento.
$ simpleperf report --sort dso
Trovare le funzioni che richiedono più tempo per essere eseguite
Dopo aver identificato la libreria condivisa che impiega la maggior parte del tempo di esecuzione, puoi
per vedere la percentuale di tempo dedicata all'esecuzione delle funzioni del file .so
.
$ simpleperf report --dsos library.so --sort symbol
Trovare la percentuale di tempo trascorso nei thread
Il tempo di esecuzione in un file .so
può essere suddiviso in più thread. Puoi eseguire questo comando
vedere la percentuale di tempo trascorso in ogni thread.
$ simpleperf report --sort tid,comm
Trova la percentuale di tempo trascorso nei moduli oggetto
Dopo aver individuato i thread in cui viene spesa la maggior parte del tempo di esecuzione, puoi utilizzare questo comando per isolano i moduli dell'oggetto che richiedono il tempo di esecuzione più lungo in quei thread.
$ simpleperf report --tids threadID --sort dso
Scoprire la correlazione tra le chiamate di funzione
Un grafico delle chiamate fornisce una rappresentazione visiva di un'analisi dello stack che Simpleperf registra durante sessione di profilazione.
Puoi utilizzare il comando report -g
per stampare un grafico della chiamata e vedere cosa
vengono richiamate da altre funzioni. Questo è utile per determinare se una funzione è lenta
o se è dovuto al fatto che una o più funzioni che chiama sono lente.
$ simpleperf report -g
Puoi anche utilizzare lo script Python report.py -g
per avviare uno strumento interattivo che visualizzi
funzioni. Puoi fare clic su ciascuna funzione per vedere quanto tempo viene trascorso nelle relative funzioni secondarie.
Profilazione delle app create con Unity
Se intendi profilare un'app creata con Unity, assicurati di creare l'app con per eseguire il debug dei simboli seguendo questa procedura:
- Apri il tuo progetto Android nell'editor Unity.
- Nella finestra Impostazioni build per la piattaforma Android, assicurati che L'opzione Build di sviluppo sia selezionata.
- Fai clic su Impostazioni player e imposta la proprietà Livello di separazione su. Disattivato.