0

我正在使用 SOLVER 使用 OptaPlanner 解决 Java 中的问题,但过了一段时间后,我收到一个异常,提示 Java.lang.OutOfMemoryError: Java Heap Space。这意味着什么

4

2 回答 2

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

IE

java -Xmx2g2 gigabytesram 分配给您的应用程序的最大值

但是你应该先看看你是否没有内存泄漏。

于 2014-02-04T05:43:42.027 回答
1

顺便说一句,上面的意思是:调整 runExamples.bat 或 .sh 文件中的 -Xmx 设置: optaplanner-distribution-6.0.1.Final\examples\ (默认为 512m)。我如何规避这个问题并获得更好的结果:我通过检查 Windows 任务管理器中的 MEM 使用情况来监控进度。当它接近最大值时,我点击“提前终止解决”按钮。然后我单击另存为并将文件存储在“已解决”文件夹中。比我杀死所有 OptaPlanner 窗口并重新启动它。在“快速打开”窗口中,我单击刚刚保存的文件并再次单击求解。它会更好地降低违反的软约束的数量,直到我看到 MEM 再次接近极限。我这样做了几次,直到我看到 2-3 次我没有得到更好的结果。TADA,解决方法。

于 2014-04-02T20:12:28.783 回答