VisualVM的JVM calltree快照

时间:2009-07-07 23:32:54

标签: java jvm visualvm

我正在尝试使用VisualVM来分析Java(Sun JDK 1.6)独立应用程序。我有一个脚本化的性能测试环境,在那里我可以运行我的应用程序并让它报告我关心的一些指标。

有没有办法让JVM收集一些CPU分析快照,我稍后可以用VisualVM分析它?

我正在寻找类似于-XX:+HeapDumpOnOutOfMemoryError标志的东西,它会在抛出OutOfMemoryError之前将堆转储写入磁盘。

1 个答案:

答案 0 :(得分:1)

JVM中内置了hprof工具(http://java.sun.com/developer/technicalArticles/Programming/HPROF.html),它允许您捕获基本的分析信息,使其速度慢,并生成大量文件。

VisualVM AFAIK还没有这些功能,但是你的软件包能够以编程方式通过代理执行你想要的工作。

Yourkit通过代理行(-agentlib:yjpagent = onexit = snapshot) 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/的内容?