概述
Matlab中调用weka时,常常出现Out
of Memory现象,表明Java虚拟机内存不够用了.可以增加最大内存设置.
1.
查找matlab根路径.在matlab命令行中敲入:matlabroot
显示根路径,如:C:Program
FilesMATLABR2010a
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.在
$MATLABbin$ARCH 路径下新建java.opts文件.
$MATLAB是根路径,例如C:MATLAB7
$ARCH是系统架构.例如win64,则在C:Program
FilesMATLABR2010abinwin64下新建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面板的主要目的是防止一些人任意改变,破坏操作系统.
整理自:
最后
以上就是火星上小白菜为你收集整理的matlab 停用java_matlab java.lang.OutOfMemoryError解决方法的全部内容,希望文章能够帮你解决matlab 停用java_matlab java.lang.OutOfMemoryError解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复