Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

perfetto

perfetto es una herramienta que te permite recopilar información sobre el rendimiento de tus dispositivos Android a través de 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 kernel.
  • atrace 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 - for 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
          
FTRACE_GROUP/* Registra todos los eventos del grupo (p. ej., sched/*). Especifica el grupo de eventos de ftrace para el que deseas registrar un seguimiento. Por ejemplo, el siguiente comando registra los eventos de sched/*:

          adb shell perfetto --out FILE 'sched/*'
          

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 usando el miembro DataSourceConfig de TraceConfig, como se define en AOSP data_source_config.proto.

--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:

  • Actividad de programación:

    • 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:

  • Eventos de ATrace

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:

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.