java.lang.OutOfMemoryError: Java heap space
Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: Java heap space
我收到此错误,我的系统RAM为3GB,我已经给了-Xmx1280M
。不过,我收到了这个错误。
在具有2GB RAM和-Xmx1280M
选项的其他一些机器中,此错误未到来(相同操作)。
可能是什么问题?我使用java VisualVM来跟踪哪些对象正在占用内存,但是在OOME生成的堆非常大。加载堆需要花费很多时间,“计算保留大小”似乎永无止境。
如何从OOME恢复?
答案 0 :(得分:0)
在64位JVM中运行的相同应用程序可能会消耗多达两倍的内存。
如果您获得OOME的计算机安装了64位JVM,并且没有例外的计算机是32位JVM,则可以实现这种情况。
如果没有你的应用程序,很难回答更多。
答案 1 :(得分:0)
关闭服务器,删除所有缓存并重新启动。当问题持续存在时,它必须是一个不同的系统配置,数据库等,并且可以追溯到一些错误的编码。
答案 2 :(得分:0)
将最大和最小堆设置为相同的大小(-Xms1280m -Xmx1280m),以便jvm将尝试在启动时获取全部数量。也许在一台机器上没有足够大的连续内存块。
我已经看到病毒检查程序和其他软件阻止JVM找到连续的块,即使是大量的免费ram。