性能分析----Perf+火焰(FlameGraph)图
作者:互联网
一、准备工作:
1、perf 工具一般linux自带,没自带需自行安装
2、FlameGraph工具可以在git上面下载,下载后解压就可以使用,路径: https://github.com/brendangregg/FlameGraph.git
下载后需要把stackcollapse-perf.pl、 flamegraph.pl的权限修改成可执行文件
二、数据分析
1、使用perf 抓取数据,一般命令格式
perf record -F 99 -p 20301 -g sleep 30
perf record ---- 表示记录,会记录调用栈等信息
-F 99 ---- 设置每秒钟采样99次
-p 20301 -- 20301为PID号
g
表示记录调用栈,sleep 30
则是持续30秒
执行完后在当前目录生成perf.data
2、把perf生成的数据(perf.data)转成svg图
perf script | FlameGraph/stackcollapse-perf.pl | FlameGraph/flamegraph.pl > process.svg
3、使用浏览器打开 .svg文件
火焰图中的每一个方框是一个函数,方框的长度,代表了它的执行时间,所以越宽的函数,执行越久。火焰图的楼层每高一层,就是更深一级的函数被调用,最顶层的函数,是叶子函数。
从上图可看出,线程print_message_funtion中printSum/printf这个函数执行的次数比较多,占用的CPU时间比较久,比较消耗性能。可以结合代码分析原因
标签:函数,30,perf,----,FlameGraph,pl,Perf 来源: https://blog.csdn.net/qq_16204285/article/details/120727780