simpleperf 的使用

simpleperf 的使用

stat命令获取一段时间内已分析进程中发生的事件数摘要。 最常使用的选项为:

./simpleperf stat -p 进程号 --duration 检测进程的持续时间(秒)


Performance counter statistics:

    1,741,676,073  cpu-cycles            # 0.029027 GHz                     (100%)
      598,139,456  instructions          # 2.911823 cycles per instruction  (100%)
       65,680,148  branch-instructions   # 1.095 M/sec                      (100%)
       17,426,914  branch-misses         # 26.533001% miss rate             (100%)
  1253.144963(ms)  task-clock            # 0.020885 cpus used               (100%)
            1,952  context-switches      # 32.532 /sec                      (100%)
            2,870  page-faults           # 47.831 /sec                      (100%)

Total test time: 60.002509 seconds.

record命令记录一段时间内已分析进程的样本,这是simpleperf的主命令。最常使用的选项为:

./simpleperf record -p 进程号 -o 输出文件(默认perf.data) --duration 监测进程的持续时间(秒)

simpleperf record -p 5536 -o /sdcard/perf.data --duration 40
simpleperf W 08-20 19:06:27  5960  5960 dso.cpp:264] failed to read min virtual address of /dev/ashmem/dalvik-jit-code-cache (deleted): File not found
simpleperf W 08-20 19:06:27  5960  5960 dso.cpp:360] failed to read symbols from /dev/ashmem/dalvik-jit-code-cache (deleted): File not found
simpleperf I 08-20 19:06:28  5960  5960 cmd_record.cpp:390] Samples recorded: 6691. Samples lost: 0


cat /proc/sys/kernel/kptr_restrict

echo 0 > /proc/sys/kernel/kptr_restrict

report命令读取perf.data文件(由simpleperf record创建),并显示报告,表明花费时间的地方。最常使用的选项为:

./simpleperf report --dsos 选定动态共享对象(so库)  -f 记录文件(默认perf.data) --sort 用于排序和打印报告的键 -n


simpleperf report -i /sdcard/perf2.data -n --sort dso


	Cmdline: /system/xbin/simpleperf record -p 3424 -o perf2.data
	Samples: 106422 of event 'cpu-cycles'
	Event count: 16018784570
	
	Overhead  Sample  Shared Object
	82.61%    87508   /data/app/com.test.myplayer-2/lib/arm/libavcodec.so-58.so
	7.95%     8998    [wlan]
	4.98%     5408    /system/lib/libc.so
	0.69%     765     /system/lib/libcutils.so
	0.67%     702     /data/app/com.test.myplayer-2/lib/arm/libavutil.so-56.so
	0.44%     529     /system/lib/libmedia.so
	0.43%     330     /system/vendor/lib/egl/libGLESv2_adreno.so
	0.33%     298     /system/lib/libhwui.so
	0.32%     315     /data/app/com.test.myplayer-2/lib/arm/libswresample.so-3.so
	0.32%     316     /data/app/com.test.myplayer-2/lib/arm/libavformat.so-58.so
	0.23%     247     /system/lib/libutils.so
	0.19%     230     /system/lib/libwilhelm.so
	0.17%     165     /system/lib/libart.so
	0.17%     181     /data/app/com.test.myplayer-2/lib/arm/libnative-lib.so
	0.07%     65      /system/framework/arm/boot-framework.oat
	0.06%     50      /system/vendor/lib/libgsl.so
	0.06%     48      /system/lib/libbinder.so
	0.06%     59      /system/lib/liblog.so
	0.04%     40      /system/lib/libandroid_runtime.so
	0.03%     26      /system/lib/libskia.so
	0.02%     19      /system/vendor/lib/egl/libEGL_adreno.so
	0.02%     22      [vectors]
	0.02%     18      /system/lib/libc++.so
	0.02%     16      /system/framework/arm/boot.oat
	0.02%     12      /system/vendor/lib/egl/eglsubAndroid.so
	0.01%     13      /system/lib/libm.so
	0.01%     9       /system/lib/libgui.so
	0.01%     8       /system/lib/libEGL.so
	0.01%     7       /system/lib/libmemalloc.so
	0.01%     6       /system/lib/libui.so
	0.00%     4       /system/vendor/lib/libadreno_utils.so
	0.00%     2       /system/lib/hw/gralloc.msm8909.so
	0.00%     2       /system/lib/libGLESv1_CM.so
	0.00%     1       /system/lib/libnativeloader.so
	0.00%     1       /system/lib/libminikin.so
	0.00%     1       /system/lib/libandroidfw.so
	0.00%     1       /system/lib/libicuuc.so


可以看到大部分是在 执行 libavcodec.so-58.so

将perf.data从设备上拷贝下来,传输到Linux开发机上,执行命令:

./bin/linux/x86_64/simpleperf report --dsos *.so  --sort comm,pid,tid,symbol
  • 这里主要目的是 拿到symbol解析查看哪个函数耗时,然后进行优化
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值