matlab中java.lang.outofmemoryError解决办法

Matlab中调用weka时,常常出现Out of Memory现象,表明Java虚拟机内存不够用了.可以增加最大内存设置.


1. 查找matlab根路径.在matlab命令行中敲入:matlabroot


显示根路径,如:C:\Program Files\MATLAB\R2010a


2.查看当前Java虚拟机欲用的最大堆内存,即机器的总内存减去系统已经使用的内存, 敲入:java.lang.Runtime.getRuntime.maxMemory


查看当前Java虚拟机的总内存,敲入:java.lang.Runtime.getRuntime.totalMemory


查看当前Java虚拟机中仍可利用的自由内存:java.lang.Runtime.getRuntime.freeMemory


三者的关系是:maxMemory>totalMemory>freeMemory


3.查看Java虚拟机版本.敲入:version -java


4.在 $MATLAB\bin\$ARCH 路径下新建java.opts文件.


$MATLAB是根路径,例如C:\MATLAB7


$ARCH是系统架构.例如win64,则在C:\Program Files\MATLAB\R2010a\bin\win64下新建java.opts文件.


5.用记事本打开java.opts文件,


对于版本是1.2到1.5的Java虚拟机,输入:


-Xmx268435456


对于版本是1.1.8的JVM,输入


maxHeapSize = 268435456


保存.


这里268435456是新设置的JVM的最大堆内存.可以改成其他值.


我的内存大小是10G,设置maxMemory为4G,即设置-Xmx4096m


6. 重启matlab,敲入java.lang.Runtime.getRuntime.maxMemory


显示最大内存改变,设置成功.


而其余两者没有什么改变.






注意: 在matlab->file->preference->General->Java Heap Memory,可以设置Java Heap Memory大小,其最大可以设置的值是内存大小的1/4。如果想用的Java Heap Memory大于内存的1/4,无法利用Preference进行设置。


采用上述在Matlab安装目录下添加java.opts的方法,可以任意设置Java Heap Memory的大小,当设置的大小小于内存的1/4时,Preference中Java Heap Memory面板显示的是相应的值;当大于内存的1/4时,面板显示值是其最大值,但实际上使用的却是我们在java.opts中设置的大小。设置Java Heap Memory面板的主要目的是防止一些人任意改变,破坏操作系统.






整理自:


http://www.mathworks.com/support/solutions/data/1-18I2C.html?solution=1-18I2C


http://www.mathworks.com/support/solutions/data/1-19Z14.html?solution=1-19Z14
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
matlab的"java.lang.OutOfMemoryError: Java heap space"错误通常表示Java虚拟机在执行程序时内存不足。解决这个问题的方法是增加Java虚拟机的最大堆内存设置。下面是一种可能的解决方法: 1. 找到matlab的根路径,在matlab命令行输入命令:matlabroot,以获取根路径,比如:C:\MATLAB7。 2. 检查当前Java虚拟机的最大堆内存,输入命令:java.lang.Runtime.getRuntime.maxMemory。 3. 查看Java虚拟机的版本,输入命令:version -java。 4. 在 $MATLAB\bin\$ARCH 路径下创建java.opts文件。其$MATLAB是根路径,比如C:\MATLAB7,$ARCH是系统架构,例如win32。所以在C:\MATLAB7\bin\win32路径下创建java.opts文件。 5. 用记事本打开java.opts文件,根据Java虚拟机的不同版本,输入以下内容: - 对于1.6.0版本:-Xms64m -Xmx128m (32位系统) 或 -Xmx196m (64位系统) - 对于1.5.0版本:-Xms64m -Xmx96m (32位系统) 或 -Xmx128m (64位系统) - 对于1.4.2版本:-Xms16m -Xmx96m - 对于1.3.1版本:-Xms16000000 -Xmx64000000 - 对于1.2.2版本:-Xms16000000 -Xmx64000000 - 对于1.1.8版本:-ms16000000 -mx64000000 以我的Java版本1.4.2为例,在java.opts文件写入-Xmx96m,保存文件。 注意:如果输入错误,将会出现警告:Failed to start to Java Virtual machine。 6. 重新启动matlab,在命令行输入java.lang.Runtime.getRuntime.maxMemory,显示的最大内存应该已经更改,表示设置成功。 希望以上解决方法对您有帮助。如果您有任何相关问题,请提出。 相关问题: 1. 为什么会出现"java.lang.OutOfMemoryError: Java heap space"错误? 2. 如何增加Java虚拟机的最大堆内存设置? 3. 还有其他解决"java.lang.OutOfMemoryError: Java heap space"错误的方法吗?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值