堆内存空间的Java内存

时间:2014-02-04 05:35:24

标签: optaplanner

我正在使用SOLVER使用OptaPlanner解决Java中的问题但是在一段时间后,我得到一个例外,说Java.lang.OutOfMemoryError:Java堆空间。这意味着什么

2 个答案:

答案 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 -Xmx2g2 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,解决方法。