Semplice

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 Simpleperf invece di utilizzare direttamente Simpleperf.

Se preferisci utilizzare la riga di comando, Simpleperf è uno strumento versatile per la profilazione delle CPU a riga di comando, incluso nell'NDK per Mac, Linux e Windows.

Per la documentazione completa, inizia con il file README di Simpleperf.

Suggerimenti e ricette per Simpleperf

Se hai appena iniziato a utilizzare Simpleperf, ecco alcuni comandi che potrebbero esserti particolarmente utili. Per ulteriori comandi e opzioni, consulta la pagina relativa al riferimento sul comando e sulle opzioni di Simpleperf.

Individuare le librerie condivise che richiedono più tempo per essere eseguite

Puoi eseguire questo comando per vedere quali file .so occupano la percentuale maggiore di tempo di esecuzione (in base al numero di cicli della CPU). Si tratta di un buon primo comando da eseguire all'avvio della sessione di analisi delle prestazioni.

$ simpleperf report --sort dso

Trovare le funzioni che richiedono più tempo per essere eseguite

Dopo aver identificato la libreria condivisa che richiede la maggior parte del tempo di esecuzione, puoi eseguire questo comando per vedere la percentuale di tempo trascorso nell'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 per vedere la percentuale di tempo trascorso in ogni thread.

$ simpleperf report --sort tid,comm

Trovare la percentuale di tempo trascorso nei moduli oggetto

Dopo aver trovato i thread in cui viene dedicata la maggior parte del tempo di esecuzione, puoi utilizzare questo comando per isolare i moduli oggetto che richiedono il tempo di esecuzione più lungo su questi thread.

$ simpleperf report --tids threadID --sort dso

Scopri la correlazione tra le chiamate di funzione

Un grafico delle chiamate fornisce una rappresentazione visiva di un'analisi dello stack registrata da Simpleperf durante la sessione di profilazione.

Puoi utilizzare il comando report -g per stampare un grafico delle chiamate e vedere quali funzioni vengono richiamate da altre funzioni. Questo è utile per determinare se una funzione è lenta da sola o se è perché una o più delle funzioni richiamate sono lente.

$ simpleperf report -g

Puoi anche utilizzare lo script Python report.py -g per avviare uno strumento interattivo che mostri le funzioni. Puoi fare clic su ciascuna funzione per vedere quanto tempo viene trascorso nelle relative funzioni secondarie.

Profilazione delle app create con Unity

Se esegui la profilazione di un'app creata con Unity, assicurati di crearla con i simboli di debug seguendo questi passaggi:

  1. Apri il tuo progetto Android nell'editor Unity.
  2. Nella finestra Impostazioni build della piattaforma Android, assicurati che sia selezionata l'opzione Sviluppo build.
  3. Fai clic su Impostazioni del player e imposta la proprietà Livello di visibilità su Disattivata.