Google Perfetto 命令行工具使用指南
概述
Perfetto 是 Google 开发的一款高性能系统性能分析工具,其命令行工具 perfetto
提供了强大的系统跟踪数据采集能力。本文将详细介绍如何使用该工具进行系统跟踪数据的采集和分析。
工具简介
Perfetto 命令行工具提供了两种配置模式:
- 轻量模式:通过命令行参数直接配置,仅支持 ftrace 和 atrace 数据源,类似于传统的 systrace 工具
- 完整模式:通过配置文件(protobuf 格式)进行详细配置,支持所有数据源和高级功能
通用参数说明
无论使用哪种模式,以下参数都可用:
-d/--background
:后台运行模式,立即退出命令行界面-o/--out
:指定输出文件路径,使用-
表示标准输出--dropbox
:通过 DropBoxManager API 上传跟踪数据(仅限 Android)--no-guardrails
:禁用资源使用限制(仅用于测试)--reset-guardrails
:重置防护状态并退出(用于测试)--query
:查询服务状态并以可读格式输出--query-raw
:查询服务状态并输出原始 protobuf 数据-h/--help
:显示帮助信息
轻量模式使用指南
轻量模式适合快速采集基本系统跟踪数据,语法格式如下:
adb shell perfetto [选项] [事件说明符]...
常用选项
-t/--time
:指定跟踪持续时间(单位:s/m/h),默认 10 秒-b/--buffer
:指定环形缓冲区大小(单位:mb/gb),默认 32mb-s/--size
:指定最大文件大小(单位:mb/gb),默认仅使用内存缓冲区
事件说明符
支持两种类型的事件说明:
-
ATrace 类别:指定要记录的 atrace 类别
- 示例:
wm
(记录窗口管理器事件) - 可用类别取决于 Android 版本
- 示例:
-
Ftrace 事件:格式为
组名/事件名
- 示例:
sched/sched_switch
(记录进程调度切换事件)
- 示例:
使用示例
# 记录 30 秒的窗口管理器和调度事件
adb shell perfetto --time 30s --out /data/misc/perfetto-traces/trace wm sched/sched_switch
完整模式使用指南
完整模式通过配置文件提供更强大的功能,语法格式如下:
adb shell perfetto [--txt] --config 配置文件
参数说明
-c/--config
:指定配置文件路径--txt
:使用文本格式的配置文件(实验性功能)
配置文件格式
配置文件采用 protobuf 格式,主要定义在 trace_config.proto
中。通过配置文件可以:
- 精确控制数据采集的各个方面
- 启用高级数据源
- 配置复杂的触发条件
- 设置多级缓冲策略
使用示例
# 使用二进制格式的配置文件
adb shell perfetto --config /data/misc/perfetto-config.pb --out /data/misc/perfetto-traces/trace
# 使用文本格式的配置文件(实验性)
adb shell perfetto --txt --config /data/misc/perfetto-config.txt --out /data/misc/perfetto-traces/trace
最佳实践
- 开发环境:使用轻量模式快速获取基本性能数据
- 生产环境:使用完整模式进行详细性能分析
- 长时间跟踪:考虑使用
--background
参数 - 大文件处理:适当增加缓冲区大小避免数据丢失
- Android 设备:注意 DropBox 上传功能的使用限制
总结
Perfetto 命令行工具提供了从简单到复杂的多种系统跟踪数据采集方式。通过合理选择模式和参数配置,开发者可以获取所需的系统性能数据,为性能优化提供有力支持。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考