使用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抓包并查看

启动

  1. sudo hotspot
    注意:需要root权限,抓取的perf.data会保存至启动目录下 如果启动不了提示缺少系统工具,按照说明安装自己内核版本对应的linux-tools-generic/linux-cloud-tools-generic即可

启动程序并抓包

  1. 在hotspot中选择File->Record data
  2. 选择需要分析的程序 如果程序已经启动,选Attach To Application,然后利用程序名或PID选择程序 如果需要指定程序启动,选Launch Application 正常路包速度会比较慢,比较常用的降频方法是在Advance中加入 “-F 99 -a -g” 参考:https://blog..net/juS3Ve/article/details/78651436
  3. 点击Start Recording录制一段时间的数据包,按Stop Recording结束

查看录制结果

  1. 使用View Results查看函数时间运行占比等信息(需要编译程序时开启debug symbol)

参考

    https://www.5axxw.com/wiki/content/3noidg https://blog..net/melody157398/article/details/125176078
经验分享 程序员 微信小程序 职场和发展