java - jprofiler 或其他 : how do I roll up recursive method calls?

标签 java recursion profiling rollup jprofiler

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

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

您看,recursiveMethod 确实根本不需要任何时间。相反,它占用时间的是 otherMethods,并且是我想要分析的那些。我的理想 View 将显示 recursiveMethod 的时间接近 0%,而 otherMethods 合并接近 100%。

那么在 JProfiler 中有什么方法可以向上滚动这个 View ,以便我可以更清楚地查看我的 CPU 时间花在了哪里?有没有人对另一个可以执行此操作的分析器有建议?

注意:我使用的是 JProfiler 6,但如果另一个版本可以做到这一点,我可能会升级。

谢谢!

最佳答案

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

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

关于java - jprofiler 或其他 : how do I roll up recursive method calls?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6958656/

相关文章:

python - python中的递归排序

javascript - Treeview 中的递归复选框选择 | Telerik MVC

java - 从本地触发远程服务器上的快照

java - 圆上的三个随机点

java - 将 Maven 与 Sourceforge.net 结合使用

使用递归的 C 程序需要优化和修复

macos - DTrace `pid` 提供程序不会触发某些 `return` 探测

ruby-on-rails - rails 2.3.8, ruby 1.8.6 : Getting a visual call tree/graph of what methods call what?

java - GridBagLayout 未正确排列按钮

java - 从另一台计算机获取信息