安装
uname -r
由于我之前升级了内核版本(6.2.1),故直接以下命令并不能成功安装perf工具(使用perf命令无法成功)
sudo apt-get install linux-tools-common
perf --version
# 找到自己内核版本的内核源码路径 (也可以网上直接下载)
# [Index of /pub/linux/kernel/](https://mirrors.edge.kernel.org/pub/linux/kernel/)
cd path/linux-6.2.1/tools/perf # 将path替换为自己的路径
make -j4 && make install # 安装perf
cp ./perf /usr/bin
perf --version
使用
# 用gcc编译好对应的可执行文件
gcc -g image_to_gerber.c -o image_to_gerber
# perf启动 生成perf.data
sudo perf record -a -g ./image_to_gerber
# 授权 (不然后面查看svg会显示No stack counts found! 后面的命令一定要加sudo)
sudo chmod -R 777 perf.data
# 下载火焰图生成项目
git clone https://github.com/brendangregg/FlameGraph.git
# 生成out.perf
sudo perf script -i perf.data > out.perf
#生成out.floded
sudo ./FlameGraph/stackcollapse-perf.pl out.perf > out.floded
#生成svg
sudo ./FlameGraph/flamegraph.pl out.floded > ls.svg
结果
分析
火焰图中出现了很多swapper,一开始以为是缺页导致的,后面查询后发现是这是cpu空闲状态的表示