Android 性能分析工具——Perfetto 介绍

Android 性能分析工具——Perfetto 介绍


Perfetto 是 Android 10 中引入的全新平台级跟踪工具。这是适用于 Android、Linux 和 Chrome 的更加通用和复杂的开源跟踪项目。与 Systrace 不同,它提供数据源超集,可让你以 protobuf 编码的二进制流形式记录任意长度的跟踪记录。你可以在 Perfetto 界面中打开这些跟踪记录。

相对的,Systrace 是平台提供的旧版命令行工具,可记录短时间内的设备活动,并保存在压缩的文本文件中。该工具会生成一份报告,其中汇总了 Android 内核中的数据,例如 CPU 调度程序、磁盘活动和应用线程。

示例1:

Perfetto 跟踪记录视图示例,其中显示了与某个应用之间大约 20 秒的交互情况。

在这里插入图片描述

示例2:

Systrace HTML 报告示例,其中显示了与某个应用之间 5 秒的交互情况。

在这里插入图片描述

这两份报告都提供了 Android 设备在给定时间段内的系统进程的总体情况。该报告还检查了捕获到的跟踪信息,以突出显示发现的问题(例如界面卡顿或耗电量高)。

Perfetto 和 Systrace

Perfetto 可以认为是 Systrace 的升级版,它们之间可以相互切换使用。

  1. 在 Perfetto 界面中打开 Perfetto 文件和 Systrace 文件。在 Perfetto 界面中使用旧版 Systrace 查看器打开 Systrace 文件(使用 Open with legacy UI 链接)。
  2. 使用 traceconv 工具将 Perfetto 跟踪记录转换为旧版 Systrace 文本格式

注意:Systrace 和 Perfetto 不会收集有关应用进程中代码执行情况的详细信息。如需详细了解应用正在执行哪些方法及其占用了多少 CPU 资源,请使用 Android Studio 中的 CPU 性能剖析器(CPU profiler)。

运行 perfetto 命令行工具来捕获跟踪记录

使用 perfetto 工具,我们可以通过 Android 调试桥 (ADB) 在 Android 设备上收集性能信息。perfetto 从您的设备上收集性能跟踪数据时会使用多种来源,例如:

  • 使用 ftrace 收集内核信息
  • 使用 atrace 收集服务和应用中的用户空间注释
  • 使用 heapprofd 收集服务和应用的本地内存使用情况信息
数据选择

perfetto 包含以下两种模式,可确定用于记录跟踪数据的数据源:

  • 轻量模式:只能选择一部分数据源,具体来说就是 atrace 和 ftrace。但此模式可提供类似于 systrace 的接口。
  • 普通模式:从协议缓冲区获取其配置,并且可以让您使用 atrace 和 ftrace 之外的数据源,从而更加充分地利用 perfetto 的功能。
常规选项

下表列出了在 perfetto 的两种模式下都可使用的选项。

在这里插入图片描述

轻量模式

在轻量模式下使用 perfetto 的一般语法如下:

 adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ]
             [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]...

在这里插入图片描述

普通模式

在普通模式下使用 perfetto 的一般语法如下:

 adb shell perfetto [ --txt ] --config CONFIG_FILE

在这里插入图片描述

使用系统工具获取跟踪记录

在Android 10的手机上,开发者模式新增加了一个“系统跟踪”的功能,我们首先将开发者模式下的“系统跟踪”打开:

在这里插入图片描述
在这里插入图片描述

从“类别”选项中选择我们关注的信息类别:

在这里插入图片描述

设置完之后,下拉快捷选项多了个棒棒糖形状的图标:

在这里插入图片描述

这个时候杀掉我们需要调试的应用,然后点击开启棒棒糖,接着打开应用,等待应用完全打开之后,再点击一次棒棒糖,结束录制。

我们保存录制后得到后缀名为“.perfetto-trace”的文件。

最好,我们就可以在Perfetto 界面中打开这些跟踪记录,进行性能分析了。

注:很多国产手机,没有“系统跟踪”选项,可以使用 ADB 命令来获取日志。


**PS:更多精彩内容,请查看 --> 《Android 性能优化》
**PS:更多精彩内容,请查看 --> 《Android 性能优化》
**PS:更多精彩内容,请查看 --> 《Android 性能优化》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卜大爷

觉得不错的可以给我加油哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值