1. 火焰图svg文件生成方法
- 1.1 linux 系统上面需要有perf 工具
在linux 系统 执行 perf record命令。可以根据实际情况配置可选项,-C是指定cpu id。 -e是指定event为 cpu-clock。-g是启用调用图形记录。
[root@localhost ~]# perf record -C 0 -e cpu-clock -g sleep 10
- 1.2 生成perf trace记录
[root@localhost ~]# perf script -i perf.data > perf.folded
- 1.3 使用FlameGraph处理perf trace数据
需在github下载 https://github.com/brendangregg/FlameGraph.git
[root@localhost FlameGraph]# ./stackcollapse-perf.pl perf.folded > perf.unfold
[root@localhost FlameGraph]# ./flamegraph.pl perf.unfold > perf.svg
2. 火焰图svg分析方法
- 2.1 使用浏览器打开perf svg文件 基本读图原则
Y 轴(垂直方向)
表示调用栈的深度
从下到上:调用者 → 被调用者
栈底是程序入口点
栈顶是最终执行的函数
X 轴(水平方向)
表示采样时间的占比
宽度越宽 = 该函数占用 CPU 时间越多
左右位置没有时间顺序意义
同级函数按字母序排列
颜色
通常只是为了区分不同函数
某些工具中红色可能表示热点函数
本文版权归原作者zhaofujian所有,采用 CC BY-NC-ND 4.0 协议进行许可,转载请注明出处。