使用hotspot/cpuperf进行CPU占用分析
Perf
perf是Linux下的一款性能分析工具,能够进行函数级与指令级的热点查找。它由一个叫Performance counters的内核子系统实现,基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析,可用于性能瓶颈的查找与热点代码的定位。
Hotspot
hotspot是KDAB发布的一个新的分析perf.data的工具,是perf的图形界面。除了比命令行的perf report更直观外,其最大看点就是集成了火焰图,也就是FlameGraph。
安装与配置(Ubuntu20.04)
hotspot
sudo apt update sudo apt install hotspot
cpu perf
sudo apt update sudo apt install linux-tools-generic linux-cloud-tools-generic
使用hotspot抓包并查看
启动
- sudo hotspot
-
注意:需要root权限,抓取的perf.data会保存至启动目录下 如果启动不了提示缺少系统工具,按照说明安装自己内核版本对应的linux-tools-generic/linux-cloud-tools-generic即可
启动程序并抓包
- 在hotspot中选择File->Record data
- 选择需要分析的程序 如果程序已经启动,选Attach To Application,然后利用程序名或PID选择程序 如果需要指定程序启动,选Launch Application 正常路包速度会比较慢,比较常用的降频方法是在Advance中加入 “-F 99 -a -g” 参考:https://blog..net/juS3Ve/article/details/78651436
- 点击Start Recording录制一段时间的数据包,按Stop Recording结束
查看录制结果
- 使用View Results查看函数时间运行占比等信息(需要编译程序时开启debug symbol)
参考
-
https://www.5axxw.com/wiki/content/3noidg https://blog..net/melody157398/article/details/125176078