Campiona l'asta di chiamate

Gli stack di chiamate sono utili per identificare gli hotspot della CPU, ovvero le sezioni di codice che richiedono molto tempo per essere eseguite. Gli stack di chiamate ti aiutano a capire quale parte del codice è stata eseguita e perché è stata richiamata.

Panoramica del campione di callstack

Per campionare lo stack di chiamate, seleziona l'attività Trova hotspot CPU (campionamento stack di chiamate) dalla scheda Home di Android Studio Profiler. Dopo l'analisi della registrazione, vedrai le seguenti immagini:

Per integrare le sequenze temporali Utilizzo CPU e Interazioni, la sezione Thread mostra i frame per ogni chiamata effettuata dall'app e dal sistema. Ecco alcuni suggerimenti per navigare nel campione dello stack di chiamate:

  • Espandi il thread di interesse e utilizza le scorciatoie da tastiera per navigare tra i frame dello stack. Fai clic su un frame dello stack per visualizzare i dettagli dell'evento e delle chiamate correlate nel riquadro Analisi.
  • Per filtrare in base a determinati tipi di frame dello stack, fai clic su Comprimi frame e seleziona i tipi di frame che vuoi nascondere. Se comprimi i frame, questi vengono rimossi sia dalle sezioni Thread che Analisi. A seconda dell'indagine, potresti voler comprimere i frame della macchina virtuale Java (ad esempio android::AndroidRuntime::start e art::{...}) e del kernel di sistema (ad esempio [kernel.kallsyms]+{offset}). Di solito, ciò corrisponde alla compressione dei frame correlati a [kernel.kallsyms], /apex/ e /system/*.

Poiché un programma Java/Kotlin viene in genere eseguito tramite una macchina virtuale Java, quando Android Studio raccoglie lo stack di chiamate per un programma Java/Kotlin, lo stack di chiamate in genere include non solo il codice Java/Kotlin, ma anche il codice nativo necessario per eseguire il programma stesso e per consentire al programma di comunicare con il sistema e l'hardware.

  • Per passare al codice sorgente associato a un frame dello stack, fai clic con il tasto destro del mouse sul frame e poi fai clic su Vai all'origine.
  • Per evidenziare il frame dello stack associato a un evento nella tabella degli eventi, fai clic sull'evento.

Per informazioni sugli altri grafici, vedi Registrare una traccia di sistema e il glossario dei grafici.

Esempio di codice nativo che utilizza la riga di comando

Internamente, Android Studio utilizza simpleperf per tracciare il codice nativo della tua app. Se vuoi specificare opzioni aggiuntive per Simpleperf, ad esempio campionare CPU di dispositivi specifici o specificare durate di campionamento con un'elevata precisione, puoi utilizzare simpleperf dalla riga di comando.