我遇到了一个问题。我的程序非常大,并且 java 抛出 OutOfMemoryException。
在 .bat
文件中,我得到以下内容:
java -server -Dfile.encoding=UTF-8 -Xmx1500m -Xbootclasspath/p:../libs/l2ft.jar -cp config/xml;../libs/*; l2ft.gameserver.GameServer
Java 正在使用我的 6 GB RAM,接下来的 6 GB 未使用。
我输入了 System.getProperty("sun.arch.data.model");
,它显示我正在使用 64 位 JVM。
最佳答案
您已将最大堆大小设置为 1500m,虽然 JVM 可以使用稍多一点的 ~200 MB,但这就是您将进程限制为的全部内容。
尝试将您的进度限制在 5 GB 左右。 (您想为开销和操作系统留下一些内存)
-mx5g
关于64 位 jvm 上的 Java 内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12447518/