8

我有一个很长的操作,我想在 JProfiler(或其他建议)中进行分析,但是该方法非常递归,因此 CPU View 中的树视图并没有太大帮助。它向我显示了这样的 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,但如果另一个版本可以做到这一点,则可能会升级。

谢谢!

4

1 回答 1

2

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

您可以按内部时间(可能是您要查找的时间)、平均时间和调用次数进行排序,然后从进行这些昂贵调用的位置开始跟踪调用堆栈。在视图的顶部,还有一个用于更改“热点类型”的下拉菜单,因此您可以查看 JDBC 查询、调用的 URL 和许多其他选项所消耗的时间。

于 2011-08-12T06:33:55.937 回答