9

我刚刚安装了 Java 1.6_07,所以我可以尝试使用 VisualVM 进行分析。它告诉我我的应用程序花费了 60% 的时间sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run

我如何知道它在那段时间做了什么?它有多少时间在等待调用它或做其他事情?什么叫它,它叫什么?我似乎找不到任何方法可以像 Quantify 或 Perl 分析器那样深入到更深层次。

4

4 回答 4

5

我没有使用 VisualVM 的经验——但是 JRockit 的分析器确实提供了这些信息;您可以考虑改用它。

更新:可以在此处找到带有 java 分析器列表的问题,供有足够代表的用户查看已删除的问题。

于 2008-10-09T12:25:23.657 回答
3

您的应用程序是否使用基于 TCP 的 RMI?如果不是,这是否可能是由检测 VM 引起的 heisenbug?我假设 VisualVM 必须使用 RMI 调用来弄清楚 JVM 中发生了什么......

于 2008-09-12T14:25:16.217 回答
1

我已经开始使用新的 VisualVM 1.2 了。它允许分析 CPU 并使用调用图向下钻取。试试看。

于 2009-10-26T10:44:53.867 回答
1

使用 1.3.2 也看到这是我遇到的报告挂断。在 1.3.2 中,如果您执行线程转储并查找此调用,您可以看到它在该线程的调用链中的位置。不确定 Yuval F 是指这个还是别的什么。查找调用链以查看它正在调用什么等等,向下查看它正在调用什么等等。

于 2011-05-17T21:18:33.807 回答