当JProfiler计算方法执行次数及其调用堆栈时,我们称之为“CPU分析”。这些数据以多种方式呈现。根据您试图解决的问题,总有对你非常有帮助的展示方式。默认情况下不记录CPU数据,你必须打开CPU记录来捕获你关注的用例。
方法调用树
追踪所有方法调用及其调用堆栈将消耗大量内存,并且在所有内存耗尽前只能保持很短时间。此外,直观地掌握繁忙的JVM中方法调用的数量并不容易。通常调用次数过于大,以至于难以定位和追踪痕迹是。
另一个方面是,许多性能问题只有在收集的数据被聚合时才会被发现。这样,就可以知道方法调用对于特定时间段内的整个活动的重要性。而单一的追踪无法得知所查看数据的相对重要性。
这就是为什么JProfiler将所有调用栈构建了一个树形,并包含执行时间和调用计数。不从时间顺序方面考虑,只保留调用总数。树中的每个节点代表一个调用堆栈至少被捕获到了一次。父节点展开可以看到所有内部调用信息。
调用树“Call Tree”是“CPU视图”部分中的第一个视图,当你开始CPU分析时,很适合从这里开始观察,因为试图是自顶而下的,并且按照方法的调用顺序,从入口到最详细的最终方法的调用是很容易理解的。JProfiler根据子节点的总时间对它们进行排序,因此你可以先展开树,然后分析树中对性能影响最大的部分。