perfetto
es una herramienta que te permite recopilar información sobre el rendimiento de tus dispositivos Android mediante Android Debug Bridge (ADB). La herramienta perfetto
usa varias fuentes para recopilar registros de rendimiento de tu dispositivo, como los siguientes:
ftrace
para obtener información del kernelatrace
para la anotación del espacio del usuario en servicios y apps.heapprofd
para la información de uso de memoria nativa de servicios y apps
En esta página, se describe cómo llamar a la herramienta perfetto
y configurarla para generar el resultado deseado.
Sintaxis
En esta sección, se describe cómo usar ADB para llamar a la herramienta perfetto
y generar un registro.
Selección de fuentes de datos
perfetto
incluye los dos modos siguientes, que determinan las fuentes de datos que se usan para registrar el seguimiento:
- Modo ligero: solo se puede seleccionar un subconjunto de fuentes de datos (específicamente, atrace y ftrace). Sin embargo, ofrece una interfaz similar a
systrace
. - Modo normal: Obtiene su configuración en un búfer de protocolo y te permite aprovechar mucha más potencia de
perfetto
mediante fuentes de datos diferentes de atrace y ftrace.
En esta sección, se describe la sintaxis que perfetto
requiere para generar un seguimiento con cada uno de los modos descritos arriba.
Opciones generales
En la siguiente tabla, se enumeran las opciones disponibles cuando se usa la herramienta perfetto
en cualquier modo.
Opción | Descripción |
---|---|
--background | -d
|
Perfetto sale inmediatamente de la interfaz de línea de comandos y continúa registrando el seguimiento en segundo plano. |
--out OUT_FILE | -o OUT_FILE
|
Especifica la ruta de acceso deseada al archivo de registro de salida o - para stdout.
perfetto escribe el resultado en el archivo descrito en las marcas anteriores. El formato de salida se compila con el formato definido en AOSP trace.proto .
|
--dropbox TAG
|
Sube tu registro mediante la API de DropBoxManager con la etiqueta que especificas. |
--no-guardrails
|
Inhabilita las protecciones contra el uso excesivo de recursos cuando se habilita la marca --dropbox durante las pruebas. |
--reset-guardrails
|
Restablece el estado persistente de los mecanismos de seguridad y sale (para pruebas). |
--query
|
Consulta el estado del servicio y lo imprime como texto legible. |
--query-raw
|
Similar a --query, pero imprime bytes protocodificados de tracing_service_state.proto. sin procesar. |
--help | -h
|
Imprime el texto de ayuda de la herramienta perfetto . |
Modo ligero
La sintaxis general para usar la herramienta perfetto
en el modo ligero es la siguiente:
adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ] [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]...
En la siguiente tabla, se enumeran las opciones disponibles cuando se usa la herramienta perfetto
en el modo ligero.
Opción | Descripción |
---|---|
--time TIME[s|m|h] | -t TIME[s|m|h]
|
Especifica la duración del registro en segundos, minutos u horas.
Por ejemplo, --time 1m especifica una duración de registro de 1 minuto.
La duración predeterminada es de 10 segundos.
|
--buffer SIZE[mb|gb] | -b SIZE[mb|gb]
|
Especifica el tamaño del búfer de anillo en megabytes (mb) o gigabytes (gb).
El parámetro predeterminado es --buffer 32mb .
|
--size SIZE[mb|gb] | -s SIZE[mb|gb]
|
Especifica el tamaño máximo de archivo en megabytes (mb) o gigabytes (gb). De forma predeterminada, perfetto usa el búfer de anillo solamente en la memoria.
|
A continuación, se incluye una lista de especificadores de eventos
Evento | Descripción |
---|---|
ATRACE_CAT |
Especifica las categorías de acceso para las que deseas registrar un seguimiento.
Por ejemplo, el siguiente comando registra el administrador de ventanas mediante atrace:
adb shell perfetto --out FILE wm Para registrar otras categorías, consulta esta lista de categorías de atrace. |
FTRACE_GROUP/FTRACE_NAME |
Especifica los eventos de seguimiento para los que deseas registrar un seguimiento.
Por ejemplo, el siguiente comando registra los eventos de sched/sched_switch:
adb shell perfetto --out FILE sched/sched_switch |
Modo normal
La sintaxis general para usar la herramienta perfetto
en el modo normal es la siguiente:
adb shell perfetto [ --txt ] --config CONFIG_FILE
En la siguiente tabla, se enumeran las opciones disponibles cuando se usa la herramienta perfetto
en el modo normal.
Opción | Descripción |
---|---|
--config CONFIG_FILE | -c CONFIG_FILE
|
Especifica la ruta de acceso a un archivo de configuración. En el modo normal, es posible que algunas configuraciones estén codificadas en un búfer de protocolo de configuración. Este archivo debe cumplir con el esquema de búfer de protocolo definido en AOSP trace_config.proto .
Debes seleccionar y configurar las fuentes de datos con el miembro |
--txt
|
Indica a perfetto que debe analizar el archivo de configuración como pbtxt. Esta marca es experimental y no te recomendamos que la habilites para la producción. |
Fuentes de datos compatibles
En esta sección, se describen las diferentes fuentes que la herramienta perfetto
usa para generar tu registro.
FTrace
La fuente de datos ftrace permite que perfetto
obtenga eventos del kernel.
Para habilitar esta fuente, configura ftrace_config en DataSourceConfig.
Los eventos que se pueden habilitar incluyen los siguientes:
-
- 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
Eventos del sistema de archivos:
Según el dispositivo, la versión del SO y el kernel, es posible que haya más eventos disponibles. Para obtener más información, consulta los protocolos de configuración.
Estadísticas de procesos
La fuente de datos de estadísticas de procesos te permite obtener contadores sondeados para el sistema y los procesos individuales.
Para habilitar esta fuente, configura process_stats_config y sys_stats_config en DataSourceConfig.
Entre los datos que genera la herramienta profetto
, se incluyen los siguientes:
-
- /proc/meminfo
- /proc/vmstat
- /proc/stat
-
- /proc/<pid>/status
- /proc/<pid>/oom_score_adj
Según el dispositivo, la versión del SO y el kernel, es posible que haya más eventos disponibles. Para obtener más información, consulta los protocolos de configuración de sys_stats y process_stats.
Heapprofd
Heapprofd te permite tomar muestras de las causas del uso de la memoria nativa.
Para habilitar esta fuente, configura heapprofd_config en DataSourceConfig.
Esto produce ProfilePackets, que incluyen los marcos de Java de la pila de llamadas.
Para encontrar información adicional sobre cómo usar la herramienta heapprofd
, consulta perfetto.dev.
Otras fuentes
Según el dispositivo, la versión del SO y el kernel, es posible que haya más fuentes de datos disponibles. Para obtener más información, consulta los protocolos de configuración de fuentes de datos.
Para encontrar información adicional sobre la herramienta perfetto
, consulta perfetto.dev.