火焰图(Flame Graph)是一种用于性能分析的可视化工具,它主要用于展示程序运行过程中的函数调用层次结构以及各个调用栈占用的时间比例,从而帮助开发者快速识别性能瓶颈。
一、火焰图介绍
火焰图提供了一种直观的方法来理解 CPU 时间消耗,无需专业的性能分析知识,且可以灵活地与现有监控系统集成。它是一种强大的工具,可以帮助开发者从全局视角分析程序性能,定位热点函数,并进行针对性的优化。通过火焰图,开发者可以更直观地理解程序的运行状况,从而提升性能和用户体验。
火焰图通过 SVG 格式的矢量图展示,它将函数调用栈的深度用纵向(Y轴)表示,每个函数占据一层,横向(X轴)表示函数执行消耗的时间,宽度越宽表示函数被调用的次数越多或执行时间越长。
1、火焰图分类
根据性能分析的目标来划分,火焰图可以分为下面这几种。
on-CPU 火焰图:表示 CPU 的繁忙情况,用在 CPU 使用率比较高的场景中。
off-CPU 火焰图:表示 CPU 等待 I/O、锁等各种资源的阻塞情况。