以编程方式即时启动Java HPROF分析器

时间:2011-10-22 23:30:31

标签: java profiler hprof

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

我现在正在尝试使用CPU分析执行类似的操作,希望能够更有效地定位特定的代码路径。我对命令行HPROF interface和NetBeans探查器有一些经验,但都需要事先启动。

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

1 个答案:

答案 0 :(得分:1)

根据JVMTI documentation,在执行任何字节码之前,必须在JVM初始化期间很早地加载像hprof这样的本机代理库。所以不,不可能在飞行中这样做。

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