到目前为止,我已经尝试了VisualVM和JVM Monitor,并且都没有像我需要的那样表现出来。我的程序的简短概要:我需要在5个以上的线程中以亚秒精度测量快速应用程序。当我可以选择“开始分析”时,我的应用程序已经结束。作为一种解决方法,我将System.in.read()
放在我的应用程序的末尾,但这意味着从读取开始的所有内容都是垃圾信息并且会扭曲一些测量值。
JVM Monitor特别应该开始自动分析每个应用程序的启动,嵌入到Eclipse中。
答案 0 :(得分:2)
来自手册:http://www.jvmmonitor.org/doc/#How_to_monitor_app_that_runs_for_short_time
如何监控仅运行很短时间的应用程序?
要监视运行时间很短的应用程序,您不能 连接JVM Monitor,
在感兴趣的点设置断点,然后使用调试模式运行应用程序 在断点处停止时将JVM Monitor连接到应用程序 使用JVM Monitor收集分析数据。
注意:如果您的应用程序是从Eclipse外部启动的,那么您可以 为您的应用程序指定以下选项暂停,直到 调试器已附加。
-agentlib:jdwp=transport=dt_socket,address=<port number>,server=y,suspend=y
答案 1 :(得分:2)
VisualVM 1.3.6有一个新的插件Startup Profiler。它允许您从一开始就对应用程序进行概要分析。