2009-07-07 25 views
1

我試圖使用VisualVM來剖析Java(Sun JDK 1.6)獨立應用程序。我有一個腳本化的性能測試環境,在這裏我可以運行我的應用程序,並讓它報告我關心的一些指標。VisualVM的JVM calltree快照

是否有某種方式讓JVM收集一些CPU分析快照,以後我可以使用VisualVM進行分析?

我正在尋找類似於-XX:+HeapDumpOnOutOfMemoryError的標誌,它在拋出OutOfMemoryError之前將堆轉儲寫入磁盤。

回答

1

JVM中內置了hprof工具(http://java.sun.com/developer/technicalArticles/Programming/HPROF.html),它允許您捕獲基本的性能分析信息,它的狗速度很慢並且會產生大量文件。

VisualVM AFAIK還沒有這些功能,但是你的工具包有能力通過它的代理和程序來做你想做的事情。

通過代理線Yourkit(-agentlib:yjpagent = =的OnExit快照) http://www.yourkit.com/docs/80/help/additional_agent_options.jsp

編程 http://www.yourkit.com/docs/80/api/index.html

順便說一句,我建議你小心與性能測試,它測量CPU一起肯定會歪曲你的結果,你有沒有考慮過在你的核心代碼中尋找類似https://japex.dev.java.net/的東西?

+0

是的,VisualVM沒有這種能力,我最終使用YourKit。我運行了兩次性能測試 - 一次使用profiling來收集快照,另一次使用profiling功能來收集我關心的性能指標。 – 2010-06-07 16:36:15