Perfetto是google推出的性能分析工具,作为 Systrace 的继任者,Perfetto 从 Android 10 开始成为官方推荐的系统追踪工具,并逐步成为整个行业的标准工具。通过Perfetto可以快速解决性能问题
引入了一种创新的用户态到用户态(userspace-to-userspace) 追踪协议,基于直接在共享内存缓冲区上进行 protobuf 序列化。这种设计带来了几个关键优势:

traced 是 Perfetto 的核心服务进程,负责:
通过配置data source,可以让perfetto支持多种数据源的解析,包括内核ftrace的如下信息
同样也可以包括程序的自定义信息
从 Perfetto v16 开始,tracebox 将所有必要的二进制文件打包到一个静态链接的可执行文件中(类似 busybox),方便在不同机器上复制和运行。
https://github.com/tracebox/tracebox
支持 C++ 库解析多种格式的 trace 文件,并通过 SQL 接口进行查询
https://source.chromium.org/chromium/chromium/src/+/main:third_party/perfetto//src/trace_processor/
编译这个可以获取二进制解析perfetto的文件trace_processor_shell
完全本地化的 Web UI https://www.ui.perfetto.dev/ ,特点包括:
Perfetto是一个快速定位性能问题的功能,其包括如下功能:
其实使用工具的办法很统一,如下
采集Trace → 打开UI分析 → SQL深度分析 → 修改代码 → 优化验证
本文简单介绍了perfetto的基本概念,后面我会通过实战的方法逐步深入探讨Perfetto在性能上的调试。欢迎关注