如何自动将 JVisualVM 附加到短期程序?

Posted

技术标签:

【中文标题】如何自动将 JVisualVM 附加到短期程序?【英文标题】:How do I automatically attach JVisualVM to a short-lived program? 【发布时间】:2011-03-05 00:29:57 【问题描述】:

简单地阅读教程和玩 JVisualVM,我可以手动将它附加到长时间运行的服务器或 Swing 应用程序,但我也想将它用于运行在一秒钟内的短程序。

我想我可以将我的程序块放在控制台上,附加 JVisualVM,然后按一个键让程序完成它的实际工作。有没有更简单的解决方法?

(这主要是出于我自己的好奇心,使用 JVisualVM 之类的精美 GUI 代替 -Xprof 或 HPROF 会很好)。

【问题讨论】:

how to profile application startup with visualvm的可能重复 【参考方案1】:

如果您使用的是 eclipse,您可以在调试模式下使用“Stop in main”选项,并将以下几行作为参数添加到您的进程中

-Dcom.sun.management.jmxremote.port=<fixed_port_number>
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false

一旦它以调试模式启动并阻塞,然后将 jvisualvm 附加到它,使用指定的端口号连接到进程。

【讨论】:

【参考方案2】:

将suspend=y 添加到您的调试设置中。这将导致您的程序停止,直到附加了调试器/分析器。

【讨论】:

一些问题(***.com/questions/7096121/…) 表示挂起选项不起作用

以上是关于如何自动将 JVisualVM 附加到短期程序?的主要内容,如果未能解决你的问题,请参考以下文章

我如何将awk脚本附加到文件?

jvisualvm 不会从 CPU 分析中排除某些方法

如何将 jquery 自动完成附加到输入元素

visualvm - 自动(JMX)连接到应用程序?

如何使用JVisualVM远程监控和优化Tomcat和Java程序的内存和CPU

蜂巢 - 如何每天自动将数据附加到蜂巢表?