perfetto
è uno strumento che 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
origini per raccogliere dati di rilevamento delle prestazioni dal tuo dispositivo, ad esempio:
ftrace
per informazioni dal kernelatrace
per l'annotazione dello spazio utente in servizi e appheapprofd
per le informazioni native sulla memoria 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
che utilizza per registrare la traccia:
- modalità Luce: puoi 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 parte maggiore della funzionalità di
perfetto
utilizzando origini dati diverse daatrace
eftrace
.
Opzioni generali
Nella tabella seguente sono elencate le opzioni disponibili quando utilizzi perfetto
in una delle due modalità:
Tabella 1. Elenco delle opzioni generali disponibili dello strumento Perfetto.
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 diverso da zero in caso contrario (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 campo Nota: devi specificare il percorso completo del
file di output. In genere i file devono essere scritti nella cartella |
--upload
|
Al completamento, passa la traccia al pacchetto specificato dal messaggio IncidentReportConfig nella configurazione della traccia proto. |
--no-guardrails
|
Disabilita le protezioni contro l'utilizzo eccessivo di risorse quando abiliti il flag --upload durante i test. |
--reset-guardrails
|
Consente di reimpostare lo stato permanente dei guardrail 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 protocodificati 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
Nella tabella seguente sono elencate le opzioni disponibili quando utilizzi perfetto
in
modalità Luce:
Tabella 2. Elenco delle opzioni dello strumento perfetto
disponibili quando viene utilizzata la 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 ring 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 il ring buffer in memoria.
|
--app | -a
|
Nome app Android (atrace) |
Queste opzioni sono seguite da un elenco di identificatori di eventi:
Tabella 3. Elenco di identificatori di evento per la modalità Luce.
Evento | Descrizione |
---|---|
ATRACE_CAT |
Specifica le atrace categorie 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 |
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 utilizzi perfetto
in
modalità normale:
Tabella 4. Elenco delle opzioni dello strumento perfetto
disponibili 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 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 ottenere 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 del 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 per le statistiche di processo consente di ottenere contatori sondaggi sul sistema e sui singoli processi.
Abilitare 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 protocolli di configurazione per sys_stats
e process_stats
.
heapprofd
heapprofd
consente di campionare le cause dell'utilizzo della memoria nativa.
Abilitare questa origine impostando heapprofd_config
in DataSourceConfig. Questa impostazione produce ProfilePackets
,
inclusi i frame Java del tack di chiamate.
Ulteriori informazioni sull'utilizzo di 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 protocolli di configurazione dell'origine dati.
Ulteriori informazioni su perfetto
sono disponibili all'indirizzo perfetto.dev.