JVisualVM如何启动和停止CPU分析?

时间:2015-09-18 18:25:10

标签: java profiling jvisualvm

我想在我的应用程序中添加一个选项,最终用户可以在其中启动CPU分析,重现性能问题,停止CPU分析,然后将分析信息作为电子邮件的附件发送给我们的支持团队。我希望我可以使用JVisualVM用来停止和启动分析并返回结果的相同机制。

有人知道JVisualVM是如何实现这一目标的吗?它不需要在命令行上设置-agentlib:hprof选项 - 它是使用hprof还是其他一些机制?

2 个答案:

答案 0 :(得分:2)

JVisualVM通过使用JMX命令动态添加代理来检测代码。实现这一点并非易事。您可能会发现JVisualVM有一个API,如果是这样我会使用它而不是尝试自己实现它。如果它没有公共API,我怀疑它没有,我建议尝试更简单的事情。

答案 1 :(得分:0)

该工具使用动态检测。

  

当按下Profiler选项卡中的CPU按钮时,探查器会附加到应用程序并开始分析其性能。在开始时,探查器需要检测应用程序的某些方法,实际的检测方法数量显示在“状态”区域中。由于分析器使用动态检测,因此在分析会话期间,检测方法的数量可能会发生变化。连接探查器并开始收集数据后......

https://blogs.oracle.com/nbprofiler/entry/profiling_with_visualvm_part_1