背景
Simpleperf可记录整个系统运行过程,性能损坏小,as的profiler损坏比较大。 搞了一个下午一直失败,原来是app是release状态,无法抓信息。我晕。切记app必须debug状态,不要信任何博客文档说root的手机可以无视,我的就是root的,信了他们的邪!
如何使用
进入ndk目录 例如/Users/os/Library/Android/sdk/ndk/23.1.7779620/simpleperf
Python3环境 进入后执行
//目录/Users/os/Library/Android/sdk/ndk/23.1.7779620/simpleperf
python3 app_profiler.py -p com.debug
默认10s结束,执行完成后需要拉取数据,有2种方式
1,html方式查看结果
//目录/Users/os/Library/Android/sdk/ndk/23.1.7779620/simpleperf
python3 report_html.py
完成之后在目录下有一个report.html
使用浏览器打开即可。
2,转换svg方式
录制完成之后,执行这个命令拿到结果。
//目录/Users/os/Library/Android/sdk/ndk/23.1.7779620/simpleperf
python3 report_sample.py --symfs binary_cache >out.perf
下载这个工具
git clone https://github.com/brendangregg/FlameGraph.git
把上面的out.perf
文件复制到graph工具目录下,不复制也行,你知道怎么用就行。
需要perl环境,mac默认有
//目录FlameGraph
perl stackcollapse-perf.pl out.perf >out.folded
perl flamegraph.pl out.folded >a.svg
完成后在工具目录下会有a.svg,浏览器打开即可。
