Profile 工具系列之四:simpleperf

关于 simpleperf

  • simpleperf 是 google 随 NDK 一起发布的一款 profile 工具,从 NDK r13 开始
  • 官方文档请参考 google 在 NDK 里放的 README

HelloWorld 步骤

  • 把 simpleperf 可执行程序 push 到手机上。 simpleperf 在 NDK-r13b 的 simpleperf/android/ 里。根据被测程序和手机的CPU选择对应版本:
adb push simpleperf /data/local/tmp/
adb shell chmod 777 /data/local/tmp/simpleperf
  • 启动被测程序,ps 出它的进程 ID
  • 用 simpleperf 进行 profile:
adb shell /data/local/tmp/simpleperf record -p 3972 --duration 30
  • 得到错误提示,说只读分区无法写入 perf.data:
simpleperf E 04-19 15:09:29  4109  4109 record_file_writer.cpp:47] failed to open record file 'perf.data': Read-only file system
  • 用 -o 参数指定输出文件解决问题:
adb shell /data/local/tmp/simpleperf record -p 3972 --duration 30 -o /sdcard/perf.data
  • 得到警告如下:
simpleperf W 04-19 15:17:47  4299  4299 environment.cpp:504] Access to kernel symbol addresses is restricted.
If possible, please do `echo 0 >/proc/sys/kernel/kptr_restrict` to fix this.
  • 暂且不去理会这个警告,30 秒过后采集结束,得到如下输出:
simpleperf I 04-19 15:18:19  4299  4299 cmd_record.cpp:346] Samples recorded: 125706. Samples lost: 0.
  • 看起来一切正常,把结果 report 一下看看:
adb shell /data/local/tmp/simpleperf report -i /sd
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值