使用工具:perf,FlameGraph
perf
内置于linux内核源码树中的性能剖析工具。
工作原理:对监控事件进行采样。
BrenDan Gregg的个人网站上使用perf工具的案例:
http://brendangregg.com/perf.html
FlameGraph
用于生成svg格式的火焰图,通过浏览器打开直观地展示热点代码路径。
下载链接:https://github.com/brendangregg/FlameGraph
操作流程:
$ perf record -e cycles -g –call-graph dwarf –p pid –o perf.data
ctrl+c结束执行(执行时间越长采样数据也越大,可能导致后面分析存在问题。),在当前目录下会生成进程ID为pid的采样数据perf.data。
执行完成后可以先用perf report命令查看下,确认下有没有错误。
$ perf report -g -i perf.data
$ perf script -i perf.data &> perf.unfold
对perf.data进行解析,执行完成后在当前目录下生成一个名为perf.unfold
的文件。
$ ./FlameGraph-master/stackcollapse-perf.pl perf.unfold &> perf.folded
折叠perf.unfold中的符号,生成文件perf.folded。
$ ./flamegraph.pl perf.folded > perf.svg
生成svg火焰图,svg火焰图可以通过浏览器打开,用于确认热点执行路径。
本文介绍了如何利用内置在Linux内核中的perf工具进行性能剖析,以及结合FlameGraph生成火焰图来直观展示代码热点。通过perf记录采样数据,然后使用FlameGraph进行解析和可视化,帮助开发者定位性能瓶颈。
1076

被折叠的 条评论
为什么被折叠?



