perfetto

perfetto è uno strumento che consente di raccogliere informazioni sul rendimento I dispositivi Android tramite Android Debug Bridge (ADB). Richiama il perfetto usando il comando adb shell perfetto .... perfetto usa varie per raccogliere dati relativi alle prestazioni del dispositivo, ad esempio:

  • ftrace per informazioni dal kernel
  • atrace per l'annotazione dello spazio utente in servizi e app
  • heapprofd per le informazioni sull'utilizzo della memoria nativa per servizi e app

In questa pagina viene descritto come chiamare perfetto e configurarlo per generare l'output desiderato. Per ulteriori informazioni, consulta Documentazione di perfetto.

Sintassi

Questa sezione descrive come utilizzare ADB per chiamare perfetto per diverse modalità e generare una traccia.

Selezione dell'origine dati

perfetto include le due seguenti modalità che determinano le origini dati che utilizza per registrare la traccia:

  • modalità Luce: puoi selezionare solo un sottoinsieme di origini dati, in particolare atrace e ftrace. Tuttavia, questa modalità offre un'interfaccia simile systrace
  • modalità normale: ottiene la configurazione in un buffer di protocollo e consente di Sfrutta al meglio le funzionalità di perfetto utilizzando origini dati diverse di atrace e ftrace.

Opzioni generali

La tabella seguente elenca le opzioni disponibili quando si utilizza perfetto in modalità:

Tabella 1. Elenco generale disponibile opzioni dello strumento perfetto.

Opzione Descrizione
--background |
-d
perfetto esce immediatamente dall'interfaccia a riga di comando e continua registrando la traccia in background.
--background-wait | -D Ad esempio --background, ma attende (fino a 30 secondi) per tutti delle origini dati prima di uscire. Esci il codice è zero se la conferma è ricevute e diverse da zero (errore o timeout).
--alert-id ID dell'avviso che ha attivato questa traccia.
--config-id ID della configurazione di attivazione.
--config-uid UID dell'app che ha registrato la configurazione.
--subscription-id ID della sottoscrizione che ha attivato questa traccia.
--out OUT_FILE |
-o OUT_FILE

Specifica il percorso desiderato del file di traccia di output o - per stdout. perfetto scrive l'output nel file descritto in i flag precedenti. Il formato di output viene compilato con il formato definito in AOSP trace.proto:

Nota: devi specificare il percorso completo del di output. In genere i file devono essere scritti /data/misc/perfetto-traces cartella.

--upload Al completamento, passa la traccia al pacchetto specificato IncidentReportConfig messaggio nella configurazione della traccia di protocollo.
--no-guardrails Disabilita le protezioni contro l'uso eccessivo delle risorse quando si abilita il --upload flag durante il test.
--reset-guardrails Reimposta lo stato persistente di guardrail e uscite per i test.
--rsave-for-bugreport Se una traccia con bugreport_score > 0 è in esecuzione, la traccia viene salvata in un file. Al termine dell'operazione, restituisce il percorso.
--query Esegue una query sullo stato del servizio e lo stampa come testo leggibile.
--query-raw Simile a --query, ma stampa byte con codifica proto-codificata non elaborati di tracing_service_state.proto.
--help | -h Stampa il testo della guida per lo strumento perfetto.

Modalità Luce

La sintassi generale per l'utilizzo di perfetto in modalità Luce è la seguente:

 adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ]
             [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]...
             --out FILE

La tabella seguente elenca le opzioni disponibili quando si utilizza perfetto in modalità Luce:

Tabella 2. Elenco di perfetto disponibili delle opzioni dello strumento quando si utilizza la modalità Luce.

Opzione Descrizione
--time TIME[s|m|h] |
-t TIME[s|m|h]
Specifica la durata della traccia in secondi, minuti o ore. Ad esempio, --time 1m specifica una durata della traccia di 1 minuto. La durata predefinita è 10 secondi.
--buffer SIZE[mb|gb] |
-b SIZE[mb|gb]
Specifica la dimensione del buffer della suoneria in megabyte (mb) o gigabyte (gb). Il parametro predefinito è --buffer 32mb.
--size SIZE[mb|gb] |
-s SIZE[mb|gb]
Specifica la dimensione massima del file in megabyte (mb) o gigabyte (gb). Di predefinita, perfetto usa solo il buffer ad anello in memoria.
--app | -a Nome app per Android (atrace)

Queste opzioni sono seguite da un elenco di indicatori di evento:

Tabella 3. Elenco di identificatori di eventi per modalità Luce.

Evento Descrizione
ATRACE_CAT Specifica le categorie di atrace per cui vuoi registrare una traccia. Ad esempio, il seguente comando traccia Windows Manager utilizzando atrace:
    adb shell perfetto --out FILE wm
    

Per registrare altre categorie, consulta questo elenco di atrace categorie.

FTRACE_GROUP/FTRACE_NAME Specifica gli eventi ftrace per i quali registrare una traccia. Ad esempio, il seguente comando traccia gli eventi sched/sched_switch:
      adb shell perfetto --out FILE sched/sched_switch
      

Modalità normale

La sintassi generale per l'utilizzo di perfetto in modalità normale è la seguente:

 adb shell perfetto [ --txt ] --config CONFIG_FILE --out FILE

La tabella seguente elenca le opzioni disponibili quando si utilizza perfetto in modalità normale:

Tabella 4. Elenco di perfetto disponibili delle opzioni dello strumento quando si utilizza la modalità normale.

Opzione Descrizione
--config CONFIG_FILE | -c CONFIG_FILE Specifica il percorso di un file di configurazione. In modalità normale, alcune configurazioni possono essere codificate in un buffer del protocollo di configurazione. Questo file devono essere conformi allo schema di buffer di protocollo definito in AOSP trace_config.proto:

Seleziona e configura le origini dati utilizzando DataSourceConfig membro della TraceConfig, come definiti in AOSP data_source_config.proto.

--txt Indica a perfetto di analizzare il file di configurazione come pbtxt. Questo è destinato solo ai test locali e non è consigliabile abilitarla per la produzione.

Origini dati supportate

Questa sezione descrive le diverse origini utilizzate da perfetto per generare la traccia.

Ftrace

L'origine dati ftrace consente a perfetto di ricevere eventi dal kernel.

Attiva questa origine impostando ftrace_config in DataSourceConfig.

Gli eventi che possono essere attivati includono:

  • Pianificazione dell'attività:

    • sched/sched_switch
    • sched/sched_wakeup
    • sched/sched_wakeup_new
    • sched/sched_process_exec
    • sched/sched_process_exit
    • sched/sched_process_fork
    • sched/sched_process_free
    • sched/sched_process_hang
    • sched/sched_process_wait
  • Eventi file system:

  • atrace eventi

A seconda del dispositivo, della versione del sistema operativo o del kernel, potrebbero essere necessari disponibili. Per saperne di più, consulta la pagina relativa ai protos di configurazione.

Statistiche sui processi

L'origine dati statistiche di processo consente di ottenere contatori con polling su sistemi e processi individuali.

Attiva questa origine impostando process_stats_config e sys_stats_config in DataSourceConfig.

I dati generati da perfetto includono:

A seconda del dispositivo, della versione del sistema operativo e del kernel, potrebbero essere disponibili. Per scoprire di più, consulta i proto di configurazione per sys_stats e process_stats.

heapprofd

heapprofd ti consente di analizzare le cause dell'utilizzo della memoria nativa.

Attiva questa origine impostando heapprofd_config in DataSourceConfig. Questa impostazione produce ProfilePackets, inclusi i frame Java di calltack.

Puoi trovare ulteriori informazioni su come utilizzare heapprofd all'indirizzo perfetto.dev

Altre sorgenti

A seconda del dispositivo, della versione del sistema operativo e del kernel, potrebbero essere disponibili più origini dati disponibili. Per saperne di più, consulta protocolli di configurazione dell'origine dati.

Ulteriori informazioni su perfetto sono disponibili all'indirizzo perfetto.dev.