jprofiler或其他:如何汇总递归方法调用?

时间:2011-08-05 15:19:39

标签: java recursion profiling rollup jprofiler

我有一个很长的操作,我想在JProfiler(或其他建议)中进行分析,但该方法是非常递归的,因此CPU视图中的树视图没有多大帮助。它向我展示了这样的CPU时间:

beginOperation 100%
|- recursiveMethod 99%
| | - recursiveMethod 98%
| | | - recursiveMethod 97%
| | | | - ...more recursion
| | |- otherMethods 1%
| | - otherMethod 1%
| - otherMethods 1%

你知道,recursiveMethod根本不需要任何时间。相反,它是占用时间的otherMethods,是我想要描述的那些。我理想的观点会显示recursiveMethod的时间接近0%,otherMethods合并为接近100%。

那么在JProfiler中有没有办法滚动这个视图,以便我可以更清楚地查看我的CPU时间花费在哪里?有没有人建议另一个可以做到这一点的探查器?

注意:我使用的是JProfiler 6,但如果其他版本可以执行此操作,则可能会升级。

谢谢!

1 个答案:

答案 0 :(得分:2)

JProfiler有一个“热点”视图,可用于收集这些类型的性能指标。要进入此视图,请转到左侧导航中的“CPU Views”,“Hot Spots”应该是应用程序窗口底部左侧的第二个按钮。 (这些说明基于JProfiler 5,但我相信在版本6上也是如此)。

您可以按继承时间(可能是您要查找的内容),平均时间和调用进行排序,然后按照调用堆栈的方式进行这些昂贵的调用。在视图的顶部,还有一个下拉列表可以更改“热点类型”,因此您可以查看JDBC查询,调用的URL和许多其他选项所消耗的时间。