**火焰图**选项卡提供了一个反向调用图,该图聚合了相同的调用栈。也就是说,共享相同调用者序列的相同方法或函数会被收集并表示为火焰图中的一个较长的条形图(而不是像调用图中显示的那样显示为多个较短的条形图)。这使得更容易查看哪些方法或函数消耗了最多时间。但是,这也意味着横轴不表示时间线;相反,它指示每个方法或函数执行所需时间的相对量。
为了帮助说明这个概念,请考虑图 1 中的调用图。请注意,方法 D 对 B 进行了多次调用(B1、B2和 B3),并且其中一些对 B 的调用会调用 C(C1和 C3)。
因为 B1、B2和 B3共享相同的调用者序列(A → D → B),所以它们会被聚合,如图 2 所示。类似地,C1和 C3会被聚合,因为它们共享相同的调用者序列(A → D → B → C);请注意,C2未包含在内,因为它具有不同的调用者序列(A → D → C)。
聚合的调用用于创建火焰图,如图 3 所示。请注意,对于火焰图中的任何给定调用,消耗最多 CPU 时间的被调用者会首先显示。