8

当满足某些运行时条件时,我试图有选择地监视/分析 Java 应用程序。我已经能够使用HotSpotDiagnosticMXBean即时转储堆,这非常有用。

我现在正在尝试对 CPU 分析做类似的事情,希望更有效地针对特定的代码路径。我对命令行HPROF 界面和 NetBeans 分析器有一些经验,但两者都需要事先启动。

有没有办法从正在运行的应用程序中以编程方式激活 HPROF 分析器?最好是可以让我随意启动和停止分析过程的东西?

4

1 回答 1

1

根据JVMTI 文档,像 hprof 这样的本地代理库必须在 JVM 初始化期间很早就加载,在执行任何字节码之前。所以不,不可能即时执行此操作。

另一种方法是在 main 函数中使用修改后的 JVM 参数重新启动 java 进程,尽管这并非微不足道。

于 2012-07-22T10:52:23.250 回答