我正在使用SOLVER使用OptaPlanner解决Java中的问题但是在一段时间后,我得到一个例外,说Java.lang.OutOfMemoryError:Java堆空间。这意味着什么
答案 0 :(得分:4)
JVM -Java虚拟机会限制您的执行占用一定的内存空间,如果超过分配的内存,则需要遇到此"JAVA HEAP SPACE"
错误。
您也可以通过这样做来增加堆空间,
java -Xms<initial heap size> -Xmx<maximum heap size> CLASS_FILE_TO_EXECUTE
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
即
java -Xmx2g
将2 gigabytes
ram指定为您应用的最大值
但你应该先看看你是否没有内存泄漏。
答案 1 :(得分:1)
Btw上面的含义:调整runExamples.bat或.sh文件中的-Xmx设置:optaplanner-distribution-6.0.1.Final \ examples \(默认情况下为512m)。我做了什么来绕过这个问题并获得更好的结果:我通过检查Windows任务管理器中的MEM使用情况来监控进度。当它接近最大值时,我点击“终止解决早期”按钮。然后单击“另存为”并将文件存储在“已解决”文件夹中。比我杀死所有OptaPlanner窗口并重新启动它。在“快速打开”窗口中,我单击刚刚保存的文件并再次点击Solve。它会降低软侵害的数量,直到我看到MEM再次接近极限。我这样做了几次,直到我看到2-3次,我没有得到更好的结果。 TADA,解决方法。