知识卡片

火焰图看宽度

普通读书笔记卡 · 1488.a

内容

火焰图的宽度代表采样占比,纵向表示调用栈深度。优化应优先处理宽而稳定的栈,而不是被单个醒目的函数名吸引;宽度才接近成本。

参考来源

- 位置:《Go语言底层原理剖析》第21章《调试利器:特征分析与事件追踪》21.2节《火焰图分析》 - 结论依据:原文明确"火焰图每一层中的函数都是平级的,下层函数是其对应的上层函数的子函数""函数调用栈越长,火焰就越高""框越长、颜色越深,代表当前函数占用CPU时间越久",并用比特币工作量证明的例子说明可通过自上而下查看最宽的框定位真正的瓶颈函数,因此可以推出"火焰图宽度代表采样占比(成本)、高度代表调用栈深度"的结论。 - 原始内容:以CPU火焰图为例说明如下:◎最上方的root框代表整个程序的开始,其他的框都代表一个函数。◎火焰图每一层中的函数都是平级的,下层函数是其对应的上层函数的子函数。◎函数调用栈越长,火焰就越高。◎框越长、颜色越深,代表当前函数占用CPU时间越久。◎可以单击任何框,查看该函数更详细的信息。