1

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

有什么方法可以让 JVM 收集一些 CPU 分析快照,我以后可以用 VisualVM 分析这些快照吗?

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

4

1 回答 1

1

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

VisualVM AFAIK 尚不具备这些能力,但 yourkit 能够通过其代理以编程方式执行您想要的操作。

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/的内容?

于 2009-07-22T02:09:19.973 回答