Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.OutOfMemoryError:启动时的java堆空间_Java_Matlab_Out Of Memory - Fatal编程技术网

java.lang.OutOfMemoryError:启动时的java堆空间

java.lang.OutOfMemoryError:启动时的java堆空间,java,matlab,out-of-memory,Java,Matlab,Out Of Memory,几天前,我开始在启动MATLAB时遇到一个java.lang.OutOfMemoryError:java heap space异常-在我运行任何代码或向路径添加任何内容之前。MATLAB加载的默认目录上也没有文件 我在Windows7 64位上运行MatlabR2012A 什么原因可能导致这种情况?请参阅此 编辑 -Xms设置堆的初始大小。更改此选项不会对java.lang.OutOfMemory错误产生任何影响。要使用的选项是-Xmx,它设置堆的最大大小 使用java-Xmx-Xms选项启动应

几天前,我开始在启动MATLAB时遇到一个
java.lang.OutOfMemoryError:java heap space
异常-在我运行任何代码或向路径添加任何内容之前。MATLAB加载的默认目录上也没有文件

我在Windows7 64位上运行MatlabR2012A

什么原因可能导致这种情况?

请参阅此 编辑
-Xms
设置堆的初始大小。更改此选项不会对
java.lang.OutOfMemory
错误产生任何影响。要使用的选项是
-Xmx
,它设置堆的最大大小

使用
java-Xmx-Xms选项启动应用程序
供给-

-Xmx <number> : max memory allocation to app
-Xms <number> : Min memory at startup
-Xmx:应用程序的最大内存分配
-Xms:启动时的最小内存

要在较新版本的Matlab中设置
-Xmx
参数,请转到首选项(在工具栏/功能区上),然后

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

然而,有一个问题:

注意:增加Java堆大小会减少内存量 可用于在阵列中存储数据

我猜这意味着Matlab不在其Java堆空间中存储数组。但如果我们只是设定上限,这有关系吗?我不这么认为。更具体地说,看看当我将上面的滑块设置为36 GB时会发生什么,Matlab启动,它的虚拟内存(如
top
所示)立即变为39.9 GB。但物理内存的使用量只有300 MB左右。因此,除非它真的在堆空间中放置了一些东西,否则可用于阵列的物理内存不会减少。所以看起来这个警告可以忽略


如果您只能通过终端以非图形方式访问Matlab,上述命令的作用是将以下行添加到
~/.Matlab/r2016 a/Matlab.prf
,因此您可以手动执行此操作

JavaMemHeapMax=I36532

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

您在什么平台上?@L0j1k-我在Windows 7上。我真傻,忘记了,我会把它添加到问题中。它是在启动时,即在我做任何事情来使用堆空间之前。。。而且我使用的是64位,所以我怀疑这是正确的problem@noam-Xms专门设置heapMore的初始大小:
java-Xmx1800m
将以1.8GB的最大内存分配启动JVM。实际上,JVM以-Xmx256m开头。
JavaMemHeapMax=I36532