1. 安装
sudo apt install linux-tools-common
如果没安装成功可尝试制定特定内核版本的工具,例如sudo apt install linux-tools-6.5.0-27-generic。
2. 使用perf
Step1:编译得到可执行程序,假设是a.out。
Step2:执行类似如下指令,sudo perf record -F 1000 --call-graph dwarf ./a.out。其中1000是采样频率, 如果太高可能会丢数据来不及捕获 ,如果太低统计数据的精细度不够。
Step3:执行sudo perf report -n即可查看耗时详情:

3. 结合perf和FlameGraph生成火焰🔥图
Step1:先下载FlameGraph源码,git clone https://github.com/brendangregg/FlameGraph.git。无需安装,后续步骤都是制定源码中文件的路径。
Step2:在章节2中可执行程序a.out的同路径下执行sudo perf script | ../FlameGraph/stackcollapse-perf.pl > out.perf 。如果路径不对会有错误提示failed to open perf.data: No such file or directory (try 'perf record' first)。
Step3:执行sudo ../FlameGraph/flamegraph.pl out.perf > perf.svg。
Step4:打开perf.svg文件,open perf.svg。




















