2009-07-07 70 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