我想检查执行某些计算的JAR的内存使用情况。为此,我想使用JVM监视器。启动JVM监视器时,我需要选择运行jar的JVM。但问题是我的JAR执行得如此之快(<1秒),它永远不会出现在列表中..
有没有办法在不立即执行JAR的情况下启动JVM?
答案 0 :(得分:0)
JConsole在JConsole启动时查找正在运行的应用程序。然后,仅当前运行的应用程序端口和主机将显示在列表中。但是对于要在列表中显示的运行时间非常短的应用程序,您唯一的选择是在程序执行结束时添加等待。
Jconsole将显示的内存统计信息也将包括Jconsole的内存占用量。因此,最好的监视选择是jvisualvm,它也可以显示内存,线程和gc统计信息。
或者,如果要检查代码缓存或编译统计信息,则可以使用-XX:+ LogCompilation -XX:+ UnlockDiagnosticVMOptions -XX:+ PrintCodeCache