当使用VisualVM分析java虚拟机的内存状况,我们常常需要用到heapdump这个功能来分析哪个对象哪些类占据了最大的内存.。但是当这个类的占的内存过大时,在VisualVM里面查看类的所有instances实例的时候会遇到这样一个错误:
out of memory in heap walker:
To avoid this error,increase the -Xmx value in the etc/netbeans.conf file in NetBeans IDE installation directory
截图如下:

VisualVM默认配置的堆非常小,这对于堆调试来说常常不够用。 并且,事实上并没有没有netbeans.conf这个文件。
我们实际要找的配置参数是visualvm.conf文件中的default_options选项。 在该配置文件中,有一些JVM参数,包括-J-Xmx = 192m,可以自由根据需要调整。除此之外我们也可以在启动visualVM设定内存大小。
因此,有两个解决办法:
-
在文件 %JDK_HOME%\lib\visualvm\etc\visualvm.conf 更改属性。 Xms和Xmx属性位于default_options这一部分 -
在启动时指定大小,命令为:
jvisualvm -J-Xms1024m -J-Xmx2048m
本文介绍了解决VisualVM在进行java虚拟机内存分析时遇到的outofmemoryinheapwalker错误的方法。通过调整visualvm.conf文件中的JVM参数,如-Xmx,可以增加堆内存限制,避免在查看大内存占用类实例时出现错误。提供了两种解决方案,一是在配置文件中修改,二是在启动时直接指定内存大小。
2577

被折叠的 条评论
为什么被折叠?



