使用火焰图分析程序瓶颈
火焰图开源仓库:
gitclone到本地
然后使用下面的脚本很快速的生成一张火焰图(我还给输出文件名加了一个时间戳防止覆盖之前的图):
EXE=./xxx #可执行文件
perf record -e cpu-clock -g mpirun -n 10 $EXE ./data/test/test.data verbose=1
perf script -i perf.data &> perf.unfold
./FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded
timestamp=$(date +"%Y%m%d-%H%M%S")
./FlameGraph/flamegraph.pl perf.folded > perf-$timestamp.svg
生成的火焰图svg使用浏览器就可以打开
越长的表示运行时间越久,越可能是程序运行的瓶颈,可以双击一直查看调用栈,直到最上层
License:
CC BY 4.0