使用 AI 分析个人资料

由于 ProfilingManager 配置文件使用标准 Perfetto 格式,并且可以使用 PerfettoSQL 进行查询,因此您可以将 AI 编码代理与 Perfetto AI 技能搭配使用,直接在工作区中自动执行根本原因分析,而无需在 Perfetto 界面中手动浏览时间轴,也无需针对 Perfetto 标准库编写自定义查询:

  1. 加载配置文件:代理使用 Perfetto 的 trace_processor 打开收集的配置文件。
  2. 执行诊断查询:在 Perfetto AI 技能的指导下,智能体查询标准库模块(例如,针对卡顿的 android.frames.timeline 或针对内存泄漏的 android.memory.heap_graph.dominator_tree),并以迭代方式优化其查询。
  3. 与源代码关联:智能体将配置文件中的自定义跟踪记录切片、采样调用堆栈或保留类名称直接映射到 Kotlin 或 Java 源文件,并提出修复建议。

设置 Perfetto AI 技能

开源 Perfetto AI 技能可指导编码智能体如何运行 trace_processor、编写 PerfettoSQL,以及遵循引导式工作流进行 Android 内存和 CPU 分析。每个安装都捆绑了一个 trace_processor 封装容器,因此您无需单独安装 trace_processor:

  • 使用 AI 安装:在任何 AI 编程智能体中运行以下提示:

    Following instructions from https://perfetto.dev/docs/getting-started/using-ai set up the Perfetto AI skill to be usable by any agent
    
  • 手动安装:按照将 AI 与 Perfetto 搭配使用中的设置说明,为您的代理(例如 Claude Code、Codex、Cursor、Antigravity 或 OpenCode)进行设置。

工作流示例

将一个或多个捕获的配置文件放入工作区,并提示 AI 智能体进行调查。您可以分析单个配置文件来诊断单个问题,也可以传递多个配置文件来批量比较模式和回归。

分析 Java 堆转储和 OOM

当您提供直接使用 PROFILING_TYPE_JAVA_HEAP_DUMP 捕获或通过 TRIGGER_TYPE_OOM 触发器自动捕获的 Java 堆转储时,使用 Perfetto AI 技能的 AI 智能体可以帮助您识别:

  • 内存泄漏:本应被回收但仍可从 GC 根访问的对象,例如已销毁的 Activity 或 Fragment 实例。
  • 大量重复的对象:实例数量异常高且共同占用大量堆空间的类。
  • 内存效率低下:缓存过大、数据结构冗余或单个支配对象保留了不成比例的内存。

如需调查 OutOfMemoryError 堆转储并将其与应用的源代码相关联,请运行如下提示:

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.

如需查看此提示生成的报告的已完成示例(包括支配树保留路径、源代码根本原因和建议的修复方法),请参阅案例研究:调试 OOM 崩溃中的使用 AI 智能体自动执行 OOM 调查。

分析系统跟踪记录和 ANR

当您提供直接使用 PROFILING_TYPE_SYSTEM_TRACE 捕获的系统跟踪记录,或通过 TRIGGER_TYPE_ANR 触发器自动捕获的系统跟踪记录时,使用 Perfetto AI 技能的 AI 智能体可以帮助您识别:

  • 阻塞主线程的操作:长时间运行的跟踪切片或同步调用,导致界面线程无法在 ANR 阈值之前处理输入事件或绘制帧。
  • 线程状态瓶颈:主线程卡在 Sleeping(例如阻塞网络 I/O 或 Thread.sleep 超时)、Blocked(锁争用)或 Runnable(CPU 调度延迟)状态的时间间隔。
  • 主线程 CPU 峰值:直接在界面线程(而非后台线程)上执行的开销高昂的计算或紧密循环。

如需调查 ANR 系统跟踪记录并将其与应用的源代码相关联,请运行如下提示:

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

如需查看此提示生成的报告的已完成示例(包括主线程切片细分、thread_state 间隔重构和源代码映射),请参阅案例研究:调试 ANR 中的使用 AI 智能体自动调查 ANR。