下载工具
在开始之前,确保你的Linux系统已经安装了perf工具。大多数现代的Linux发行版都提供了预编译的perf包,可以直接通过系统的包管理器安装。如果你需要更高级的功能,或者你的系统没有预编译的perf可用,你也可以选择从Linux内核源代码编译perf工具
https://github.com/brendangregg/FlameGraph
使用
1 编译选项 -g
自己准备的代码,需要编译的时候带上 -g
gcc main.c -g -o test
2 生成火焰图
2.1 record
- 先进入FlameGraph目录
如果你自己的程序已经在运行了,ps,然后记住PID
sudo perf record -F 9999 -p PID -g -- sleep 30
-F 采样频率
也可以用pref工具直接启动程序
sudo perf record -F 9999 -g /mnt/pc/my/mem_pool/bin/test
会生成 perf.data 文件
2.2 script
sudo perf script -i perf.data> out.perf
2.3 生成火焰图
./stackcollapse-perf.pl < out.perf | ./flamegraph.pl > out.svg
out.svg就是火焰图
浏览器打开