OpenHarmony性能分析之hiperf火焰图制作详解
1. 环境搭建 1.1 下载脚本1.2 连接设备 (Oriole)1.3 安装python3 2. 采样 3. 收集符号表 4. 生成report报告 5. 打开火焰图展示
1. 环境搭建
1.1 下载developtools_hiperf脚本
https://gitee.com/openharmony/developtools_hiperf/tree/master/script
1.2 连接设备 (Oriole)
1.3 安装python3
2. 采样
在软件脚本目录developtools_hiperf-master\script 运行下面命令
对settings应用进行采集python .\command_script.py -app com.ohos.settings
command_script.py 里面默认采样率为每秒1000次,采样周期为10s
大家可以根据自己业务需求对脚本进行定制
使用-lp 可以采集系统进程名
python .\command_script.py -lp 系统进程名
具体hiperf使用,可以参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/hiperf-V5
3. 收集符号表
3.1 使用命令导出版本lib.unstripped和exe.unstripped符号表
python .\recv_binary_cache.py -l \wsl.localhost\Ubuntu-20.04\home\mattli\wrokcode\02.OpenHarmony-sig-5.0\out\oriole\lib.unstripped \wsl.localhost\Ubuntu-20.04\home\mattli\wrokcode\02.OpenHarmony-sig-5.0\out\oriole\exe.unstripped
3.2 使用社区下载脚本直接运行缺少bin文件夹,需要自己编译适配bin文件夹。
3.3 编译生成bin文件夹里面文件
编译命令
./build.sh --product-name oriole --gn-args allow_sanitize_debug=true --ccache --build-target developtools/hiperf:hiperf_target_all
编译生成文件目录
\wsl.localhost\Ubuntu-20.04\home\mattli\wrokcode\02.OpenHarmony-sig-5.0\out\oriole\mingw_x86_64\developtools\hiperf
3.4 把编译生成文件放到脚本文件bin\windows\x86_64目录下面(没有需要自己创建)
3.5 重新使用命令收集符号表正常
备注:脚本缺少bin文件夹见附件。
4. 生成report报告
执行命令:python make_report.py
5. 打开火焰图展示
双击hiperf_report.html
点击Chart Statistics查看指令统计分布情况,抓hitrace一直在滑动,所以RSRenderThread 指令占比最高。
点击Sample Table查看函数调用占比
点击Flame Graph查看各个线程火焰图
更多推荐
所有评论(0)