在软件测试运行过程中,如果发现了一些性能问题,但是却无从下手的情况,可以通过perf+FlameGraph生成程序运行期间的火焰图,来定位耗时比较高的函数。使用命令如下
perf抓取数据
sudo perf record -F 10000 -a -g -- sleep 60
#用perf script工具对perf.data进行解析
sudo perf script -i perf.data &> perf.unfold
#将perf.unfold中的符号进行折叠:
sudo ./stackcollapse-perf.pl perf.unfold &> perf.folded
#4、最后生成svg图:
sudo ./flamegraph.pl perf.folded > perf.svg
写成一条命令
perf record -F 100000 -a -g -- sleep 10 && perf script -i perf.data &> perf.unfold && ./stackcollapse-perf.pl perf.unfold &> perf.folded && ./flamegraph.pl perf.folded > perf.svg
最后生成perf.svg,可以通过浏览器打开,如下是virtual_slave的CPU火焰图