【学习笔记:Perfetto】

这篇文章介绍了Perfetto,一个用于Android系统性能分析的工具,它支持CPU、内存等多方面数据追踪。作者详细讲述了在Android9上使用命令行工具记录追踪会话的过程,包括安装adb、脚本执行及解决下载问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Perfetto 简介

Perfetto 是一个用于 Android、Linux 和 Chrome OS 上的系统跟踪器,可以帮助开发人员分析应用程序和系统的性能问题。它提供了丰富的跟踪数据源,包括 CPU、内存、网络和 I/O 等,可以帮助开发人员深入了解系统的内部运行状况。
Perfetto 的设计目标是高效、轻量级和可扩展的。它使用了一些先进的技术,如采样器、缓冲区复用和在线分析,以最小化对系统性能的影响。同时,Perfetto 还支持多种数据输出格式,如 JSON、SQLite 和 Chrome Trace Event 格式,方便开发人员进行后续分析和可视化。
Perfetto 工具主要通过 adb shell 命令行界面进行使用,在命令行中配置和启动跟踪会话,并从设备中获取跟踪数据。此外,Perfetto 还提供了一个 Web UI 工具,可以帮助用户可视化分析跟踪数据。
总体来说,Perfetto 是一个非常强大和实用的工具,适用于各种性能分析场景,如应用程序优化、系统调试和故障排除等。

官方教程

网址:
https://perfetto.dev/docs/quickstart/android-tracing?_gl=11a9i6wm_gaNzYxMTUxMDgyLjE2OTcxOTE3MjI._ga_BD89KT2P3C*MTY5NzYyMjYxNy4xMy4xLjE2OTc2MjI3MzguMC4wLjA.#perfetto-cmdline

我是用来跟踪Android 系统,所以着重看“Record traces on Android” 这一部分。
我用的是 Android 9,所有首先要启动 tracing services:
在这里插入图片描述

然后开始 Recording a trace, 官方提供了两种方式:命令行工具和UI 工具,我选择了命令行工具中的脚本。
在这里插入图片描述

使用命令行工具,首先要安装adb 工具,这个一般都有。然后使用helper 脚本, 这种方式比较简单。在Windows 系统:
在这里插入图片描述

第一行是把record_android_trace 脚本拉到本地,第二行是用python 执行脚本。
我执行完第二行,没有反应,发现是我安装的python 就叫python,不叫python3,替换掉后,脚本开始执行了。但是报了以下错误:
请添加图片描述

根据提示是下载tracebox 时超时,我也没有魔法上网工具,就想着在网上找个资源下载下来,没想到在浏览器中直接打开这个url 就下载完成了,不知道为什么通过脚本不行。
在这里插入图片描述

从脚本上看,下载报错首先是因为我用的是android 9 平台,其次是args.sideload_path 为空,才会去走get_perfetto_prebuilt 进行下载。现在已经下载好tracebox,就把它放到当前目录,并加到sideload_path 参数中就好了:
在这里插入图片描述

脚本抓完包后,会自动在网页中打开,非常方便:
在这里插入图片描述
至此,抓包成功。

<think>我们正在讨论Perfetto工具,这是一个用于Android系统性能分析的工具。根据引用[1]和引用[2],我们可以为用户提供一个快速入门教程。 用户要求“perfetto工具快速入门教程”,我们将按照以下步骤组织回答: 1. 介绍Perfetto工具及其用途。 2. 快速入门步骤,包括启动跟踪服务、记录跟踪的几种方式(UI方式、命令行方式)。 3. 简单示例,让用户能够快速上手。 注意:由于引用中提到了Android 10及更高版本,我们主要针对这些版本进行说明。 根据引用[1]: Perfetto作为Android平台新一代的性能分析工具,提供了从简单到高级的多种使用方式。建议新手从UI方式开始。 根据引用[2]: 1.1 启动跟踪服务:在设备上启用跟踪服务(通常已经默认开启,但需要确认)。 1.2 记录跟踪:包括通过Perfetto UI、命令行(cmdline)以及System Tracing应用。 我们按照这些引用来构建回答。 另外,引用[3]虽然提到的是OpenHarmony的帧率分析工具,但与我们主题无关,因此忽略。 我们将按照以下结构: - Perfetto简介 - 快速入门步骤 1. 准备工作(启用开发者选项和USB调试) 2. 通过Perfetto UI记录跟踪(推荐新手) 3. 通过命令行记录跟踪(针对高级用户) - 示例:一个简单的跟踪配置 - 查看和分析结果 注意:由于用户要求快速入门,我们尽量简洁明了。 同时,按照系统指令,我们需要在回答中自然添加引用标识,并在最后生成相关问题。 开始回答:</think>### Perfetto 工具快速入门教程 Perfetto 是 Android 平台新一代系统级性能分析工具,支持跟踪 CPU、内存、GPU 等核心指标。以下是针对 **Android 10 及以上设备**的快速上手步骤: --- #### 1. **准备工作** - 在设备上启用开发者选项和 USB 调试: `设置 → 关于手机 → 连点版本号 7 次 → 返回 → 开发者选项 → 启用 USB 调试` - 通过 USB 连接 Android 设备到电脑,并授权调试权限[^2]。 --- #### 2. **通过 Perfetto UI 记录跟踪(推荐新手)** **步骤**: 1. 打开浏览器访问 [Perfetto UI](https://ui.perfetto.dev)。 2. 点击 **Record new trace** → 选择设备 → 配置跟踪参数(如 CPU、内存、进程)。 ```bash # 示例:启用 CPU 调度和内存统计 buffers: { size_kb: 10240 } data_sources: { config { name: "linux.process_stats" } config { name: "linux.sys_stats" } } ``` 3. 点击 **Start Recording** 开始抓取数据(默认 10 秒)。 4. 操作待分析的 App 或场景。 5. 返回网页点击 **Stop**,自动生成可视化报告[^1][^2]。 --- #### 3. **通过命令行记录跟踪(高级)** **步骤**: 1. 打开终端,使用 `adb shell` 进入设备: ```bash adb shell ``` 2. 执行跟踪命令(示例:抓取 5 秒的 CPU 和内存数据): ```bash perfetto --txt -c - -o /data/misc/perfetto-traces/trace.perfetto-trace << EOF duration_ms: 5000 buffers: { size_kb: 10240 } data_sources: { config { name: "linux.process_stats" } config { name: "linux.sys_stats" } } EOF ``` 3. 导出跟踪文件到电脑: ```bash adb pull /data/misc/perfetto-traces/trace.perfetto-trace ``` 4. 在 [Perfetto UI](https://ui.perfetto.dev) 中上传 `trace.perfetto-trace` 分析[^2]。 --- #### 4. **关键功能解析** - **数据源选择**: - `ftrace`:内核事件(CPU 调度、中断)。 - `process_stats`:进程内存/线程统计。 - `heapprofd`:实时内存堆分析[^2]。 - **轻量模式**: 添加 `--light` 参数减少性能开销(适用于生产环境)[^2]。 --- #### 5. **分析结果示例** 在 Perfetto UI 中: - 查看 **CPU 频率曲线** → 定位降频问题。 - 搜索 **RenderThread** → 分析界面渲染卡顿。 - 点击 **内存计数器** → 追踪泄漏进程[^1][^3]。 > ⚠️ 注意:若跟踪失败,检查设备是否开启 `perfetto` 服务: > ```bash > adb shell setprop persist.traced.enable 1 > ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值