jvisualvm不会从CPU分析中排除某些方法

时间:2011-08-25 11:55:05

标签: java profiling jvisualvm

我正在尝试使用jvisualvm配置应用程序。该应用程序由一个循环组成,其中从数据库加载数据,然后对数据执行一些复杂的计算。处理完一组数据后,将加载并计算下一组数据。

当我启动我的应用程序并附加jvisualvm时,我在CPU分析页面上设置了一个过滤器(“从类中进行Sart分析”和“不分析类”),因为我对与数据库相关的任何内容都不感兴趣访问和其他输入/输出相关的东西。

过滤器工作 - 几乎。我的问题是,即使sun。*输入到“Do not profile classes”过滤器中,分析器报告的大部分时间都花在sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()上。这是sun中唯一的方法。*出现在我的分析结果中。

有没有人见过这个,知道如何摆脱它?问题是,所有其他方法仅在“自我时间”列中显示少量(<1%),大多数显示为0%。

使用的jvisualvm版本是1.3.2。

提前致谢, 阿克塞尔

2 个答案:

答案 0 :(得分:1)

听起来大部分时间都是从数据库中等待。如果你想描述剩下的东西,你可以

  • 存根数据库,以便快速返回(从而使代码的其余部分占用大部分时间),或者
  • 使用更好的分析器,例如YourKit或JProfiler(付费,绝对支持您想要的)或TPTP(免费,但我不确定它有多强大)

答案 1 :(得分:0)

取消选中CPU配置文件页面上的“配置新的Runnables”。 要通过“自我时间”回答您的其他问题,您需要获取CPU snapshot个自定义数据。快照包含总方法时间信息。