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

thk*_*ala 8 java profiler hprof

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

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

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

Sou*_*man 1

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

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