背景
近来有一些同学反馈性能分析,现在大部分都是其实已经开始使用perfetto了,连sdk上都已经找不到哦systrace相关工具,让马哥可以分享一些这个相关内容,其实以前企业里面那时候大部分都是使用老版本systrace的,相比新版本的perfetto确实功能上要差一些,今天就带大家来探索一下相关的perfetto抓取方法
手机上离线抓取方式:
离线perfetto抓取方式
抓取命令:
adb shell perfetto -o /data/misc/perfetto-traces/trace_file.perfetto-trace -t 10s sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory
抓取后导出相关trace到chrome上打开:
adb pull /data/misc/perfetto-traces/trace_file.perfetto-trace
网站打开trace:
打开链接:
https://ui.perfetto.dev/
针对可能不支持perfetto版本可以,离线抓取atrace方式
开始抓取
adb shell "atrace -c -t 10 sched freq idle am wm gfx view binder_driver hal dalvik camera input res gfx view wm am ss video camera hal res sync idle binder_driver binder_lock ss --async_start"
停止抓取并把trace导出到sdcard
adb shell atrace --async_stop -z -c -o /sdcard/atrace_normal.atrace
然后atrace手机上pull出来既可以
adb pull /sdcard/atrace_normal.atrace
直接观看atrace:
打开链接:
https://ui.perfetto.dev/
手机连线电脑抓取perfetto(强烈推荐):
这里没有采用chrome浏览器直接抓取方式,而是使用了的源码的中自带的record_android_trace工具
具体的record_android_trace路径是在aosp源码的如下目录
aosp/external/perfetto/tools
具体抓取命令:
test@test:~/aosp/external/perfetto/tools$ ./record_android_trace -o $(date +%Y%m%d_%H%M%S)_trace_file.perfetto-trace -t 5s -b 32mb sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory gfx view wm am ss video camera hal res sync idle binder_driver binder_lock ss
Running perfetto --background --txt -o /data/misc/perfetto-traces/2023-10-01_13-06-0d9a0e.pftrace -t 5s -b 32mb sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory gfx view wm am ss video camera hal res sync idle binder_driver binder_lock ss
以上抓取后直接自己会打开相关的chrome的浏览器
更多干货视频内容可以关注公众号或者b站up主(千里马学框架)