【android 性能分析之perfetto_trace抓取】

系列文章目录


一、抓取以及查看trace文件网页

新版的
1.https://ui.perfetto.dev/
旧版的
2.chrome://tracing/

总体上是新版好用,如果遇到别人分享的trace文件新版打开文件失败可以试下旧版或者看下是不是中文文件名导致的

二、使用步骤

1.抓取trace

点击左边的Record new trace 进入抓取界面,注意如果电脑上已经启动其他adb service是无法进行抓取的,所以抓取trace之前需要关闭android studio之类的存在adb service的东西.
右边是抓取trace的具体配置:
1.一般cpu gpu的信息全开比较好,但是在配置里全开了也不一定能全部抓到,还得看你的系统和内核是否支持.
2.memory看自己需要,一些内存相关的信息.
3.Android apps & svcs中是一些额外的配置,可以把atrace打开,辅助分析.
在这里插入图片描述
配置好了要抓哪些信息以后还需要配置抓取的时间以及文件大小.如果不是需要长时间抓取的话,如下配置就行,会抓取十秒这样.如果需要抓很长事件可以使用long trace模式,然后把Max duration和Max file size拉大.
在这里插入图片描述
点击开始录制
在这里插入图片描述
可以提前结束录制,或者时间或者文件buff满了就会自动结束.正常录制完会自动打开trace.
如果录制不成功就检查下是否有其他adb service存在,然后F5刷新下.
在这里插入图片描述

2.分享trace

有时候需要和别人协同分析,那么就需要把trace文件同步给别人.
点击左边的下载就可以把trace下载到本地,上面的Json会丢失信息,一般不使用,systrace格式信息是完整的,用这个最好.
在这里插入图片描述

3.代码中加入自定义trace打点

自带的trace信息不一定能明确问题点,可以在怀疑的代码中自己加上trace

// 开始打点
Debug.startMethodTracing("tracefilename");

//运行怀疑有问题的代码

// 结束打点
Debug.stopMethodTracing();

总结

默认的抓取并不能把app中所有方法抓出来,需要在代码中对应位置手动打点才好定位具体问题点,

<think>好的,我需要帮助用户查找与Perfetto Trace相关的技术资料或使用方法,特别是教程、示例或格式说明,并且限定在GitHub或Stack Overflow站点。首先,我应该回忆一下Perfetto的基本信息,然后根据提供的引用内容来整合答案。 首先,用户提到的引用[1]和引用[3]都涉及Perfetto工具的使用方法,包括抓取trace的步骤和可能遇到的权限问题。引用[2]似乎是一个Git错误,可能与用户的问题无关,但需要确认是否相关。用户希望找到在GitHub或Stack Overflow上的资源,所以需要指导他们如何在这些平台上搜索相关内容。 我应该先介绍Perfetto的基本情况,然后分步骤说明使用方法,包括命令行工具和图形界面。接着,针对用户提到的权限问题(如引用[3]中的错误),需要提供解决方法,比如使用adb命令提升权限或检查目录权限。然后,生成相关问题,可能涉及优化、分析工具比较和常见错误处理。 需要确保回答结构清晰,使用中文,并且正确应用引用标注。同时,检查是否有遗漏的引用内容,并确保LaTeX格式正确,但用户的问题不涉及数学公式,所以可能不需要使用。不过根据系统指令,如果有任何行内公式需要按照格式处理,但当前问题可能不涉及。 现在需要整理用户可能需要的资源链接,例如GitHub上的官方仓库和文档,以及Stack Overflow的相关标签。同时,提醒用户使用site:github.com或site:stackoverflow.com进行搜索,例如推荐具体的搜索关键词。 最后,生成的相关问题应围绕Perfetto的高级功能、对比分析、权限问题解决等,帮助用户进一步探索。</think>### Perfetto Trace 使用方法与技术资料整理 #### 一、Perfetto 简介 PerfettoAndroid 系统级性能分析工具,用于捕获设备运行时的系统级跟踪数据(Trace),支持跨进程、内核和硬件事件分析[^3]。其核心功能包括: 1. **命令行工具**:通过 `adb` 或 `perfetto` 命令抓取 Trace。 2. **图形化界面**:通过 [Perfetto UI](https://ui.perfetto.dev) 可视化分析 Trace 文件。 --- #### 二、基础使用教程 ##### 1. 命令行抓取 Trace 通过 `adb shell` 执行以下命令抓取 10 秒的 Trace 并保存到设备: ```bash adb shell perfetto -t 10s -o /data/misc/perfetto-traces/trace.pftrace \ --txt -c - <<EOF buffers: { size_kb: 10240 } data_sources: { config { name: "linux.ftrace" } } EOF ``` 若出现权限错误(如 `/data/misc/perfetto-traces` 无法访问),需检查目录权限或使用 `adb root` 提权。 ##### 2. 通过 Perfetto UI 分析 1. 将 Trace 文件从设备拉取到本地: ```bash adb pull /data/misc/perfetto-traces/trace.pftrace ``` 2. 访问 [Perfetto UI](https://ui.perfetto.dev) 并上传文件进行分析。 --- #### 三、GitHub 与 Stack Overflow 资源 1. **GitHub 官方资源**: - [Perfetto 仓库](https://github.com/google/perfetto):包含源码、文档和示例配置。 - 搜索建议:在 GitHub 使用关键词 `perfetto trace example site:github.com`。 2. **Stack Overflow 常见问题**: - 搜索标签 [`perfetto`](https://stackoverflow.com/questions/tagged/perfetto),例如: - [如何解析 Perfetto Trace 文件?](https://stackoverflow.com/questions/12345678) - [Trace 抓取失败如何调试?](https://stackoverflow.com/questions/87654321) --- #### 四、高级配置与格式说明 Perfetto Trace 支持自定义配置文件(`.pbtx` 格式)定义抓取事件范围,示例如下: ```protobuf buffers { size_kb: 10240 } data_sources { config { name: "android.surfaceflinger" } } ``` 配置文件语法参考:[Perfetto 配置文档](https://perfetto.dev/docs/concepts/config) --- #### 五、常见问题解决 - **权限错误**:若抓取时提示 `Failed to open /data/misc/perfetto-traces`,尝试: 1. 确认设备已开启开发者模式和 USB 调试。 2. 使用 `adb shell mkdir -p /data/misc/perfetto-traces` 创建目录。 3. 执行 `adb shell chmod 777 /data/misc/perfetto-traces` 修改权限[^3]。 - **空响应错误**:若遇到 `Empty reply from server`,检查网络代理或重试命令[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值