Étant donné que les profils ProfilingManager utilisent le format Perfetto standard et peuvent être interrogés avec PerfettoSQL, vous pouvez associer un agent de codage IA à la compétence IA Perfetto pour automatiser l'analyse des causes principales directement dans votre espace de travail au lieu de parcourir manuellement les chronologies dans l'UI Perfetto ou d'écrire des requêtes personnalisées sur la bibliothèque standard Perfetto :
- Charger le profil : l'agent ouvre le profil collecté à l'aide de la commande
trace_processorde Perfetto. - Exécuter des requêtes de diagnostic : guidé par la compétence IA Perfetto, l'agent interroge les modules de la bibliothèque standard (comme
android.frames.timelinepour les à-coups ouandroid.memory.heap_graph.dominator_treepour les fuites de mémoire) et affine ses requêtes de manière itérative. - Corrélation avec le code source : l'agent mappe les segments de trace personnalisés, les piles d'appels échantillonnées ou les noms de classes de conservation du profil directement à vos fichiers sources Kotlin ou Java, et propose un correctif.
Configurer la compétence IA Perfetto
La compétence IA Perfetto Open Source apprend aux agents de codage à exécuter trace_processor, à écrire du code PerfettoSQL et à suivre des workflows guidés pour l'analyse de la mémoire et du processeur Android. Chaque installation regroupe un wrapper trace_processor. Vous n'avez donc pas besoin d'installer trace_processor séparément :
Installer avec l'IA : exécutez le prompt suivant dans n'importe quel agent de codage IA :
Following instructions from https://perfetto.dev/docs/getting-started/using-ai set up the Perfetto AI skill to be usable by any agentInstallation manuelle : suivez les instructions de configuration de la page Utiliser l'IA avec Perfetto pour votre agent (par exemple, Claude Code, Codex, Cursor, Antigravity ou OpenCode).
Exemples de workflows
Placez un ou plusieurs profils capturés dans votre espace de travail et demandez à votre agent IA de les examiner. Vous pouvez analyser un seul profil pour diagnostiquer un problème individuel ou transmettre plusieurs profils pour comparer les modèles et les régressions de manière groupée.
Analyser les empreintes de la mémoire Java et les erreurs de mémoire insuffisante
Lorsque vous fournissez une empreinte de la mémoire Java capturée directement avec PROFILING_TYPE_JAVA_HEAP_DUMP ou automatiquement via le déclencheur TRIGGER_TYPE_OOM, un agent IA utilisant la compétence IA Perfetto peut vous aider à identifier :
- Fuites de mémoire : objets, tels que des instances
ActivityouFragmentdétruites, qui restent accessibles à partir des racines de récupération de mémoire alors qu'ils auraient dû être récupérés. - Objets fortement dupliqués : classes avec un nombre d'instances anormalement élevé qui consomment collectivement une grande partie du tas de mémoire.
- Inefficacités de la mémoire : caches surdimensionnés, structures de données redondantes ou objets dominateurs uniques conservant une quantité disproportionnée de mémoire.
Pour examiner un dump de tas de mémoire OutOfMemoryError et le mettre en corrélation avec le code source de votre application, exécutez une requête semblable à celle-ci :
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.
Pour voir un exemple complet du rapport généré par ce prompt, y compris le chemin de rétention de l'arbre de domination, la cause principale du code source et la correction proposée, consultez Automatiser l'investigation OOM avec un agent IA dans Étude de cas : déboguer un plantage OOM.
Analyser les traces système et les erreurs ANR
Lorsque vous fournissez une trace système capturée directement avec PROFILING_TYPE_SYSTEM_TRACE ou automatiquement via le déclencheur TRIGGER_TYPE_ANR, un agent IA utilisant la compétence IA Perfetto peut vous aider à identifier :
- Opérations bloquantes du thread principal : tranches de trace de longue durée ou appels synchrones qui empêchent le thread UI de traiter les événements d'entrée ou de dessiner des frames avant le seuil d'ANR.
- Goulots d'étranglement de l'état du thread : intervalles pendant lesquels le thread principal est bloqué dans les états
Sleeping(par exemple, blocage des E/S réseau ou des délais avant expirationThread.sleep),Blocked(conflit de verrouillage) ouRunnable(retards de planification du processeur). - Pics d'utilisation du processeur sur le thread principal : calculs coûteux ou boucles serrées s'exécutant directement sur le thread UI au lieu d'un thread d'arrière-plan.
Pour examiner une trace système d'ANR et la mettre en corrélation avec le code source de votre application, exécutez une requête semblable à celle-ci :
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>.
Pour voir un exemple complet du rapport généré par ce prompt, y compris la répartition des segments du thread principal, la reconstruction de l'intervalle thread_state et le mappage du code source, consultez Automatiser l'investigation des ANR avec un agent IA dans Étude de cas : Déboguer une ANR.