我想在我的应用程序中添加一个选项,最终用户可以在其中启动CPU分析,重现性能问题,停止CPU分析,然后将分析信息作为电子邮件的附件发送给我们的支持团队。我希望我可以使用JVisualVM用来停止和启动分析并返回结果的相同机制。
有人知道JVisualVM是如何实现这一目标的吗?它不需要在命令行上设置-agentlib:hprof选项 - 它是使用hprof还是其他一些机制?
答案 0 :(得分:2)
JVisualVM通过使用JMX命令动态添加代理来检测代码。实现这一点并非易事。您可能会发现JVisualVM有一个API,如果是这样我会使用它而不是尝试自己实现它。如果它没有公共API,我怀疑它没有,我建议尝试更简单的事情。
答案 1 :(得分:0)
该工具使用动态检测。
当按下Profiler选项卡中的CPU按钮时,探查器会附加到应用程序并开始分析其性能。在开始时,探查器需要检测应用程序的某些方法,实际的检测方法数量显示在“状态”区域中。由于分析器使用动态检测,因此在分析会话期间,检测方法的数量可能会发生变化。连接探查器并开始收集数据后......
https://blogs.oracle.com/nbprofiler/entry/profiling_with_visualvm_part_1