Matlab内存管理; java堆不足

时间:2014-04-06 16:24:09

标签: java matlab memory-management

我希望这里的某个人能够解释或指向一个我可以了解更多Matlab内存管理的网页。我知道Matlab是一种更高级的语言,所以它负责内存管理,这是好的和坏的。好的原因我不需要担心它和坏因为我不知道它在幕后做了什么。 我问的原因是我最近收到了这个错误信息。

Insufficient Java heap memory to continue operation 

当然,我正在使用2010年中期的15“Macbook pro,只有4 GB的RAM,并不是真正执行所有图像操作的最佳计算机。我知道Matlab有删除功能,我没有我不知道何时/是否有助于使用这个函数来节省内存?我只在硬件相关的任务中使用了删除功能,当我通过串行发送数据时我删除了我的串行对象。但除此之外我应该使用删除我自己的内存管理?

2 个答案:

答案 0 :(得分:2)

this question。要防止Java堆错误,您需要更改JVM选项。更改Matlab首选项中的默认值,或使用-Xmx(以及可选的-Xms)选项创建新的java.opts文件,例如,

-Xmx1g

答案 1 :(得分:0)

要在更新版本的Matlab中设置-Xmx参数的等效值,请转到偏好设置(在工具栏/功能区上),然后

MATLAB > General > Java Heap Memory

那里有一个滑块。必须重新启动Matlab才能生效。

关于这样做有warning,但正如我wrote elsewhere,我认为可以忽略它。

如果您只通过终端对Matlab进行非图形访问,则上述命令的效果是将以下行添加到~/.matlab/R2016a/matlab.prf,因此您可以手动执行此操作。

JavaMemHeapMax=I36532

在我使用滑块将首选项设置为36,532 MB并退出Matlab后出现此行。如果您找不到matlab.prf文件,请检查here