我正在使用 SOLVER 使用 OptaPlanner 解决 Java 中的问题,但过了一段时间后,我收到一个异常,提示 Java.lang.OutOfMemoryError: Java Heap Space。这意味着什么
问问题
1416 次
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 -Xmx2g
将2 gigabytes
ram 分配给您的应用程序的最大值
但是你应该先看看你是否没有内存泄漏。
于 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 回答