perfetto
è uno strumento che ti consente di raccogliere informazioni sulle prestazioni dai dispositivi Android tramite Android Debug Bridge (ADB). Richiama lo strumento perfetto
utilizzando il comando adb shell perfetto ...
.
perfetto
utilizza varie
fonti per raccogliere dati sulle prestazioni del dispositivo, ad esempio:
ftrace
per le informazioni provenienti dal kernelatrace
per l'annotazione dello spazio utente in servizi e appheapprofd
per le informazioni sull'utilizzo della memoria nativa di servizi e app
In questa pagina viene descritto come chiamare perfetto
e configurarlo per generare l'output desiderato. Per ulteriori informazioni, consulta la 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 modalità seguenti che determinano le origini dati utilizzate per registrare la traccia:
- modalità Luce: consente di selezionare solo un sottoinsieme di origini dati, in particolare
atrace
eftrace
. Tuttavia, questa modalità offre un'interfaccia simile asystrace
. - modalità normale: ottiene la configurazione in un buffer di protocollo e ti consente di sfruttare una maggiore quantità di funzionalità di
perfetto
utilizzando origini dati diverse daatrace
eftrace
.
Opzioni generali
La seguente tabella elenca le opzioni disponibili quando utilizzi perfetto
in una delle
modalità:
Opzione | Descrizione |
---|---|
--background |
|
perfetto esce immediatamente dall'interfaccia a riga di comando e continua a registrare la traccia in background. |
--background-wait | -D
|
Come --background , ma attende (fino a 30 secondi) l'avvio di tutte
le origini dati prima di uscire. Il codice di uscita è pari a zero se viene ricevuta una conferma riuscita e un valore diverso da zero negli altri casi (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 |
|
Specifica il percorso desiderato del file di traccia di output o del Nota: devi specificare il percorso completo del
file di output. In genere, i file devono essere scritti nella cartella |
--upload
|
Al termine, passa la traccia al pacchetto specificato dal messaggio IncidentReportConfig nella configurazione della traccia proto. |
--no-guardrails
|
Disabilita le protezioni dall'utilizzo eccessivo di risorse quando abiliti il flag --upload durante i test. |
--reset-guardrails
|
Reimposta lo stato persistente dei sistemi di protezione e delle uscite per i test. |
--rsave-for-bugreport
|
Se è in esecuzione una traccia con bugreport_score > 0,
la traccia viene salvata in un file. Al termine, 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 non elaborati con codifica proto 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 seguente tabella elenca le opzioni disponibili quando utilizzi perfetto
in
modalità Luce:
Opzione | Descrizione |
---|---|
--time 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] |
|
Specifica le dimensioni del buffer circolare in megabyte (mb) o gigabyte (gb).
Il parametro predefinito è --buffer 32mb .
|
--size SIZE[mb|gb] |
|
Specifica le dimensioni massime dei file in megabyte (mb) o gigabyte (gb). Per impostazione predefinita, perfetto utilizza solo ring-buffer in memoria.
|
--app | -a
|
Nome app Android (atrace) |
Queste opzioni sono seguite da un elenco di identificatori di evento:
Evento | Descrizione |
---|---|
ATRACE_CAT |
Specifica le categorie atrace per cui vuoi registrare una traccia.
Ad esempio, il seguente comando traccia Gestione finestre utilizzando atrace :
adb shell perfetto --out FILE wm
Per registrare altre categorie, consulta questo
elenco
di |
FTRACE_GROUP/FTRACE_NAME |
Specifica gli eventi ftrace per i quali vuoi 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 seguente tabella elenca le opzioni disponibili quando si utilizza perfetto
in
modalità normale:
Opzione | Descrizione |
---|---|
--config CONFIG_FILE | -c CONFIG_FILE
|
Specifica il percorso di un file di configurazione. In modalità normale, alcune configurazioni potrebbero essere codificate in un buffer di protocollo di configurazione. Questo file deve essere conforme allo schema di buffer di protocollo definito in AOSP trace_config.proto .
Seleziona e configura le origini dati utilizzando il
membro |
--txt
|
Indica a perfetto di analizzare il file di configurazione come pbtxt . Questo flag è destinato solo ai test locali e non è consigliabile abilitarlo 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 recuperare gli eventi dal kernel.
Abilita questa origine impostando ftrace_config
in DataSourceConfig.
Gli eventi che possono essere attivati includono:
Pianificazione delle 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 di file system:
A seconda del dispositivo, della versione del sistema operativo o del kernel, potrebbero essere disponibili altri eventi. Per saperne di più, consulta la sezione relativa ai prototipi di configurazione.
Statistiche sui processi
L'origine dati delle statistiche di processo consente di ottenere contatori di polling sul sistema e sui singoli processi.
Abilita questa origine impostando process_stats_config
e sys_stats_config
in DataSourceConfig.
I dati generati da perfetto
includono:
-
/proc/meminfo
/proc/vmstat
/proc/stat
-
/proc/\<pid\>/status
/proc/\<pid\>/oom_score_adj
A seconda del dispositivo, della versione del sistema operativo e del kernel, potrebbero essere disponibili altri eventi. Per saperne di più, consulta i prototipi di configurazione per sys_stats
e process_stats
.
heapprofd
heapprofd
consente di campionare le cause dell'utilizzo della memoria nativa.
Abilita questa origine impostando heapprofd_config
in DataSourceConfig. Questa impostazione produce ProfilePackets
,
inclusi i frame Java del callback.
Ulteriori informazioni su come utilizzare heapprofd
sono disponibili all'indirizzo
perfetto.dev
.
Altre sorgenti
A seconda del dispositivo, della versione del sistema operativo e del kernel, potrebbero essere disponibili altre origini dati. Per saperne di più, consulta i prototipi di configurazione dell'origine dati.
Ulteriori informazioni su perfetto
sono disponibili all’indirizzo perfetto.dev.