2010-11-04 87 views
3

我正嘗試使用VisualVM在Mac上配置64位VM,但沒有成功。VisualVM CPU分析工作在Mac上嗎?

它似乎只在LONG間隔更新(我認爲它根本不會被配置文件,直到我離開鍵盤十分鐘,然後回來發現一個更新,應該每2秒運行一次,我相信)。

大多數情況下,它只是坐在「沒有配置信息可用」消息。有一次,它發現了4個方法調用,總數。在這個時間框架內會發生數百萬美元。

應用程序退出時的快照顯示一些系統線程,但沒有任何代碼。

我沒有更改任何默認設置。我檢查過它並不排除我的代碼。

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

我已經嘗試了jvisualvm從最新的JDK,以及稍後的版本從java.net。

Java版本 「1.6.0_22」 的Java(TM)SE運行時環境(建立1.6.0_22-b04-307-10M3261) 爪哇熱點(TM)64位服務器VM(構建17.1-b03-307,混合模式)

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

有什麼想法?對你起作用嗎?

謝謝!

+0

內存分析似乎工作正常,並按預期更新(每隔幾秒)。 – ThoughtfulHacking 2010-11-04 19:58:48

+0

最新的VisualVM(1.3.1 build 100916)中的採樣功能似乎可行。 – ThoughtfulHacking 2010-11-04 20:01:49

+0

我遇到了同樣的問題:採樣功能起作用,但不是CPU分析。不幸的是,我不能將它歸因於不返回的單一方法。 – 2011-06-27 03:10:41

回答

2

飛行員錯誤,一種。

我是基準測試應用程序,創建一個線程,並在線程的運行方法中循環旋轉。它使用cpu,sleep()和println()做了一個嚴格的循環。

但問題是,它是所有在一個方法。看起來,VisualVM只在你退出它們時跟蹤方法。所以,因爲我有一個方法循環,​​它永遠不會退出該方法,並且永遠不會生成跟蹤事件。

我將run()方法中的代碼移動到run()中重複調用的另一個方法中,現在它可以工作。