我正在使用VisualVM工具监控在localhost上的tomcat服务器上运行的Java Web应用程序。 我面临的问题是取样器中的执行GC按钮被禁用。为什么我想要显式执行GC是因为当我在不执行GC的情况下创建堆转储时,它显示自应用程序运行以来创建的所有对象,包括被解除引用并准备好进行垃圾回收的对象。创建一个混淆,哪个对象仍然存在并且已准备好用于GC。
我正在附上相同的快照。
对于任何其他所需信息,请发表评论。 先感谢您。 VisualVM Sampling
答案 0 :(得分:0)
VisualVM高度依赖于您正在使用的JDK版本。此page列出了VisualVM发行版与JDK附带的通信版本之间的兼容性矩阵。
但是,在我的设置(Arch Linux,OpenJDK 8u144)中,VisualVM 1.3.9无法执行GC并监视某些Java应用程序的CPU使用情况,即使它们使用相同的JVM。最后,降级到1.3.8对我来说是个窍门。