通过火焰图定位性能瓶颈

使用火焰图火焰图作为性能分析的可视化技术,只有理解它才能基于其做性能分析。例如,对于一张CPU热点火焰图,通过查看火焰图中是否有较宽的栈顶,即可了解CPU中是否存在耗时较长的函数。

因为火焰图所绘制的内容就是计算机中方法执行的方法栈。而计算机中函数的调用上下文是基于一个叫做栈的数据结构去存储,栈数据结构的特点是元素先进后出,因此栈底就是初始调用函数,依次向上就是一层层的被调用的子函数。当最后一个子函数也就是栈顶执行结束后才会依次从上往下出栈,因此栈顶较宽,就表示该子函数执行时间长,其下方的父函数也会因其一直执行无法即时出栈而导致最终整体耗时较长,具体过程如下图所示:

分析火焰图的方法步骤如下:

判断火焰图对应的类型,找到其中的栈顶方向。

如果火焰图总资源占用高,就继续检查火焰图的栈顶是否有较宽的部分。

如果存在较宽的栈顶,沿着栈顶依次往栈底方向搜索,找到第一个包名为所分析应用自身定义的方法行,然后重点排查该方法是否存在优化空间。


掌握体积转换 :毫升到立方厘米
十大香皂品牌