Debido a que los perfiles de ProfilingManager usan el formato estándar de Perfetto y se pueden consultar con PerfettoSQL, puedes vincular un agente de programación de IA con la habilidad de IA de Perfetto para automatizar el análisis de causa raíz directamente en tu espacio de trabajo, en lugar de navegar manualmente por los cronogramas en la IU de Perfetto o escribir consultas personalizadas en la biblioteca estándar de Perfetto:
- Carga el perfil: El agente abre el perfil recopilado con el
trace_processorde Perfetto. - Ejecuta consultas de diagnóstico: Guiado por la habilidad de IA de Perfetto, el agente consulta módulos de biblioteca estándar (como
android.frames.timelinepara tirones oandroid.memory.heap_graph.dominator_treepara fugas de memoria) y define mejor sus consultas de forma iterativa. - Correlacionar con el código fuente: El agente asigna porciones de seguimiento personalizadas, pilas de llamadas muestreadas o nombres de clases de retención en el perfil directamente a tus archivos de origen de Kotlin o Java, y propone una solución.
Configura la habilidad de IA de Perfetto
La habilidad de IA de Perfetto de código abierto enseña a los agentes de programación a ejecutar trace_processor, escribir PerfettoSQL y seguir flujos de trabajo guiados para el análisis de la memoria y la CPU de Android. Cada instalación incluye un wrapper de trace_processor, por lo que no necesitas instalar trace_processor por separado:
Instala con IA: Ejecuta la siguiente instrucción en cualquier agente de programación potenciado por IA:
Following instructions from https://perfetto.dev/docs/getting-started/using-ai set up the Perfetto AI skill to be usable by any agentInstalación manual: Sigue las instrucciones de configuración que se indican en Usa la IA con Perfetto para tu agente (como Claude Code, Codex, Cursor, Antigravity o OpenCode).
Ejemplos de flujos de trabajo
Coloca uno o más perfiles capturados en tu espacio de trabajo y pídele a tu agente de IA que los investigue. Puedes analizar un solo perfil para diagnosticar un problema individual o pasar varios perfiles para comparar patrones y regresiones de forma masiva.
Analiza los volcados de montón de Java y los errores de OOM
Cuando proporcionas un volcado de montón de Java capturado directamente con
PROFILING_TYPE_JAVA_HEAP_DUMP o automáticamente a través del
activador TRIGGER_TYPE_OOM, un agente de IA que usa la habilidad de IA de Perfetto puede
ayudarte a identificar lo siguiente:
- Fugas de memoria: Son objetos, como instancias destruidas de
ActivityoFragment, que siguen siendo accesibles desde las raíces de GC cuando deberían haberse reclamado. - Objetos muy duplicados: Son clases con un recuento de instancias inesperadamente alto que, en conjunto, consumen una gran parte del montón.
- Ineficiencias de la memoria: Cachés de gran tamaño, estructuras de datos redundantes o objetos dominadores únicos que retienen una cantidad desproporcionada de memoria.
Para investigar un volcado de montón de OutOfMemoryError y correlacionarlo con el código fuente de tu app, ejecuta una instrucción como la siguiente:
Analyze the Perfetto OOM heap dump at </path/to/profile>, which corresponds to
the codebase located at </path/to/codebase> using the Perfetto AI skill and find
the root cause of the OutOfMemoryError.
Para ver un ejemplo completo del informe que genera esta instrucción, incluida la ruta de retención del árbol de dominadores, la causa raíz del código fuente y la corrección propuesta, consulta Automatiza la investigación de OOM con un agente de IA en Caso de éxito: Depura una falla de OOM.
Analiza los registros del sistema y los errores de ANR
Cuando proporcionas un registro del sistema capturado directamente con
PROFILING_TYPE_SYSTEM_TRACE o automáticamente a través del
activador TRIGGER_TYPE_ANR, un agente de IA que usa la habilidad de IA de Perfetto puede
ayudarte a identificar lo siguiente:
- Operaciones de bloqueo del subproceso principal: Son porciones de seguimiento de larga duración o llamadas síncronas que impiden que el subproceso de IU procese eventos de entrada o dibuje fotogramas antes del umbral de ANR.
- Cuellos de botella en el estado del subproceso: Son intervalos en los que el subproceso principal se detiene en los estados
Sleeping(como el bloqueo de E/S de red o los tiempos de espera deThread.sleep),Blocked(contención de bloqueo) oRunnable(retrasos en la programación de la CPU). - Picos de CPU en el subproceso principal: Son cálculos costosos o bucles ajustados que se ejecutan directamente en el subproceso de IU en lugar de un subproceso en segundo plano.
Para investigar un registro del sistema de ANR y correlacionarlo con el código fuente de tu app, ejecuta una instrucción como la siguiente:
Analyze the Perfetto system trace at </path/to/trace.perfetto-trace>, which
corresponds to an ANR trace, and find the root cause of the ANR using the
Perfetto AI skill. The codebase is located at </path/to/codebase>.
Para ver un ejemplo completo del informe que genera esta instrucción, incluido el desglose de segmentos del subproceso principal, la reconstrucción del intervalo de thread_state y la asignación de código fuente, consulta Automatiza la investigación de ANR con un agente de IA en Caso de éxito: Depura un error de ANR.