4

我正在尝试使用 VisualVM 在具有 64 位 VM 的 Mac 上进行分析,但没有成功。

它似乎只以很长的间隔更新(我认为它根本不会配置文件,直到我离开键盘十分钟,然后回来发现一个更新。我相信应该每 2 秒运行一次)。

大多数情况下,它只是与“尚无可用的分析信息”消息一起出现。它工作的一次,总共发现了 4 个方法调用。在那个时间范围内会发生数百万。

应用程序退出时的快照显示了一些系统线程,但没有我的代码。

我没有更改任何默认设置。我已经检查过它不排除我的代码。

VisualVM 是否可以在 Mac 上运行以分析 64 位 JVM?

我已经尝试过最新 JDK 的 jvisualvm 和 java.net 的稍晚版本。

java 版本“1.6.0_22”Java(TM) SE 运行时环境(内部版本 1.6.0_22-b04-307-10M3261)Java HotSpot(TM) 64 位服务器 VM(内部版本 17.1-b03-307,混合模式)

系统版本:Mac OS X 10.6.4 (10F569)

有什么想法吗?对你起作用吗?

谢谢!

4

1 回答 1

2

飞行员错误,某种意义上的错误。

我正在对一个测试应用程序进行基准测试,该应用程序创建了一个线程,并在线程的 run 方法中循环运行。它使用 cpu、sleep() 和 println() 进行了一个紧密循环。

但问题是它是一种方法。似乎 VisualVM 仅在您退出时跟踪方法。因此,由于我有一个方法循环,​​它从未退出该方法,也从未生成跟踪事件。

我将代码从 run() 方法移到另一个从 run() 重复调用的方法中,现在它可以工作了。

于 2010-11-04T23:01:17.443 回答