火焰图(Flame Graphs)

2021-05-01  本文已影响0人  wayyyy

火焰图(Flame Graph)是由 Linux 性能优化大师 Brendan Gregg 发明的,和所有其他的 profiling 方法不同的是,火焰图以一个全局的视野来看待时间分布,它从底部往顶部,列出所有可能导致性能瓶颈的调用栈。

image.png

火焰图整个图形看起来就像一个跳动的火焰,这就是它名字的由来:

火焰图类型

常见的火焰图类型有 On-CPU,Off-CPU,还有 Memory,Hot/Cold,Differential 。

火焰图类型 横轴含义 纵轴含义 解决问题 采样方式
On-CPU CPU 占用时间 调用栈 找出CPU占用高的问题函数,分析代码热路径 固定频率采样CPU调用栈
火焰图分析技巧

多练习:进行性能优化有意识的使用火焰图的方式进行性能调优(如果时间充裕)

如何绘制火焰图

Github上有 Brendan D. Gregg 的 Flame Graph 工程实现了一套生成火焰图的脚本.我们可以直接克隆下来直接用。

# git clone https://github.com/brendangregg/FlameGraph.git

生成火焰图,一般遵循一下流程:


参考资料
1、https://zhuanlan.zhihu.com/p/147875569
2、https://cloud.tencent.com/developer/article/1656810

上一篇 下一篇

猜你喜欢

热点阅读