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 kernelatrace
per l'annotazione dello spazio utente in servizi e appheapprofd
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
eftrace
. Tuttavia, questa modalità offre un'interfaccia similesystrace
- modalità normale: ottiene la configurazione in un buffer di protocollo e consente di
Sfrutta al meglio le funzionalità di
perfetto
utilizzando origini dati diverse diatrace
eftrace
.
Opzioni generali
La tabella seguente elenca le opzioni disponibili quando si utilizza perfetto
in
modalità:
Opzione | Descrizione |
---|---|
--background |
|
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 |
|
Specifica il percorso desiderato del file di traccia di output o Nota: devi specificare il percorso completo del
di output. In genere i file devono essere scritti
|
--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:
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 la dimensione del buffer della suoneria in megabyte (mb) o gigabyte (gb).
Il parametro predefinito è --buffer 32mb .
|
--size 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:
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 |
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:
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
|
--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:
-
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:
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:
-
/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. 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.