简介
hiperf 是 OpenHarmony 为开发人员提供的用于调试的命令行工具,用于抓取特定程序或者系统的性能数据,类似内核的 perf 工具,该工具支持在 Windows/Linux/Mac 等操作系统上运行。
架构
目录
/developtools/hiperf
├── demo # demo 程序
│ ├── cpp # C++ demo 程序,示范了如何调用API和模拟的采样场景
│ └── js # JS demo 程序,示范了如何调用API
├── include # 工程的头文件
│ └── nonlinux # 交叉编译的头文件(非linux平台)
├── interfaces # 接口忘记
│ ├── innerkits # C++ API 接口
│ └── kits # JS API 接口
├── proto # report 命令导出到proto的数据结构定义
├── script # Host 脚本,包括 HTML
│ └── test # 脚本的单元测试
├── src # 源代码文件夹
└── test # 源代码的单元测试
约束
运行环境条件约束如下
编译构建
基础配置
- 确保组件名在于产品形态配置的 json 中产品形态配置加入 “developtools:hiperf”:{} 即可
编译命令
编译输出
也可以在编译完成后
运行 developtools/hiperf/script/package.sh 打包到out文件夹中
host/
└── developtools
├── hiperf
│ ├── bin # 所有的二进制文件
│ │ ├── linux # linux 平台
│ │ │ └── x86_64
│ │ │ ├── hiperf_host # PC运行的执行程序,支持Report和Dump命令
│ │ │ └── libhiperf_report.so # PC运行的LIB文件,供python脚本使用
│ │ ├── ohos
│ │ │ └── arm # arm 平台
│ │ │ └── hiperf # 板端执行程序
│ │ └── windows # windows 平台
│ │ └── x86_64
│ │ ├── hiperf_host.exe # PC运行的执行程序
│ │ └── libhiperf_report.dll # PC运行的LIB文件
│ │
│ │ # 下面都是python文件,在PC侧执行
│ ├── command_script.py # hiperf 命令行的包装脚本,产生采样数据
│ ├── hiperf_utils.py # 脚本自己的工具类
│ ├── loadlib_test.py # lib 测试脚本
│ ├── make_diff.py # 产生Diff数据的脚本
│ ├── make_report.py # 从采样数据产生报告的脚本
│ ├── recv_binary_cache.py # 收集符号表的脚本
│ └── report.html # HTML 展示页面的模板
└── hiperf.tar.gz # 上述文件的打包文件
带调试符号的版本
- 在对应的平台out里面找 exe.unstripped 和 lib.unstripped,例如:
- out\ohos-arm-release\clang_x64\exe.unstripped\clang_x64\developtools\hiperf
使用说明
测试代码
我们在 hiperf_example_cmd.cpp 里面提供了一些测试代码,
用来验证一些采样功能,比如线程调度,内存申请,CPU 负荷等等。
代码位于
hiperf\demo\cpp\hiperf_example_cmd