接口偶发慢但找不到原因?CPU 不高但响应延迟大?火焰图是性能分析的终极武器,一眼定位热点代码。
一、火焰图基础
1.1 什么是火焰图
火焰图(Flame Graph):
将 CPU 采样数据可视化为"火焰"形状的 SVG 图
┌────────────────────────────────────────────────┐
│ main() │ ← 栈底(宽=CPU时间多)
│ ┌──────────┐ ┌────────────────┐ │
│ │ handle() │ │ process() │ │
│ │ ┌──────┐ │ │ ┌────────────┐ │ │
│ │ │ db() │ │ │ │ serialize()│ │ │ ← 栈顶(窄=CPU时间少)
│ │ └──────┘ │ │ └────────────┘ │ │
│ └──────────┘ └────────────────┘ │
└────────────────────────────────────────────────┘
横轴:CPU 占用时间比例(越宽越热)
纵轴:调用栈深度(从下到上)
颜色:随机(不影响分析)
看图口诀:
找最宽的"平台" → CPU 占用最多的方法 → 优化目标
找最深的"柱子" → 调用链最长的路径 → 可能有问题
2026/7/2大约 7 分钟