Simpleperf: 一款能在Android 做 Native Profiling 的工具

简介

在调试 C/C++ 算法时,我通常喜欢在 Mac 或者 PC 上做 Profiling(性能剖析),因为很多成熟的 IED 自带 Profiler,例如 CLion Profiler。但 C/C++ 算法集成至 app 后,为了拿到更为精确的 Profiling 数据,就需要对 app 进行 native 层的 profiling。

Simpleperf 刚好满足了这样的需求。本文将会通过一个例子来说明如何使用Simpleperf,主要目的是想推荐这款好用的工具给大家,例子也尽量简单,更多深入的使用方式,有兴趣的看官可以自己探索一下。

举个例子

Step 1. 下载 Simpleperf

Android NDK 中自带 Simpleperf,所以下载 Android NDK 即可。例如在我的机器上,它在 ~/NDK/android-ndk-r21b/simpleperf。这个文件夹下,包含了多个脚本,此外在 bin 目录下包含不同平台不同架构的 simplerperf 可执行程序。

Step 2. 下载Demo,并安装

SimpleperfExampleWithNative 是用于测试的安卓工程,下载它,编译它,安装它。

Step 3. 运行 Simpleperf 脚本

首先,运行 app_profiler.py ,该脚本会启动 simpleperf,并记录一段时间内(默认10s)的性能数据,并将其输出到文件(默认为 perf.data)

cd path/to/simpleperf/
python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative

该脚本有很多选项可以设置,例如输出文件名,监控时长等,详细设置说明可以通过 python app_profiler.py -h 获取

接着,运行report_html.py 生成 profiling 数据报告。该脚本以 app_profiler.py 的输出的性能数据作为输入,并生成 html 文件。

python report_html.py --add_disassembly

该脚本有很多选项可以设置,例如输出文件名等,详细设置说明可以通过 python report_html.py -h 获取。

就这么简单,两步搞定,你就能得到一个漂亮的 html 性能报告,截图如下:
在这里插入图片描述

总结

本文粗略地介绍了 simpleperf 的使用方式,通过脚本来监控数据和生成报表。本质上这些脚本都是在调用 bin 目录下 simpleperf 可执行程序进行工作的,这种傻瓜式的操作方式能够满足我的需求,所以就没有深入研究它们了。

参考资料

Examples of using simpleperf to profile Android applications

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值