如何在 MATLAB 6.0 (R12) 及更高版本中增加 Java VM 的堆空间?
조회 수: 19 (최근 30일)
이전 댓글 표시
MathWorks Support Team
2014년 5월 27일
편집: MathWorks Support Team
2021년 5월 19일
我在使用一个比 MATLAB 6.0 (R12) 新的 MATLAB 版本。*
如何增加 Java VM 堆空间?
* 请注意,此解决方案中的信息适用于近期的版本,如 MATLAB 7.14 (R2012a)。
채택된 답변
MathWorks Support Team
2021년 5월 19일
편집: MathWorks Support Team
2021년 5월 19일
此功能已包含在 2010a (R2010a) 版本中。对于 MATLAB 7.10 (R2010a) 之后的版本,您可以使用首选项对话框更改此设置。有关详细信息,请参阅文档页上的“Java 堆内存首选项”(Java Heap Memory Preferences)。可以按如下所示访问它:
1. 通过在 MATLAB 命令提示符处键入以下命令打开帮助浏览器:
doc
2.在此文档浏览器的搜索栏上搜索“Java 堆内存首选项”(Java Heap Memory Preferences)。
对于以前的版本,请参阅下面给出的关于如何增加 Java 堆空间内存的说明。
从 MATLAB 6.0 (R12) 开始,您可以使用下面的文件增加 Java 虚拟机 (VM) 的堆空间:
java.opts
1.创建 java.opts 文件:
在 $MATLABROOT/bin/$ARCH 目录中创建一个名为 java.opts 的文本文件。$MATLABROOT 是 MATLAB 根目录,$ARCH 是您的系统体系结构,可通过在 MATLAB 命令提示符下键入以下命令找到它:
matlabroot
computer('arch')
如果您没有 $MATLABROOT/bin/$ARCH 的写权限,或者您希望得到一个用户特定的版本,可在 MATLAB 启动目录中创建 java.opts 文件。可以通过在 MATLAB 命令提示符处执行以下命令(在执行任何 MATLAB 代码之前)来找到 MATLAB 启动目录:
pwd
如果您在 MAC OS 系统上使用 MATLAB 7.7 (R2008b) 或更高版本,则 MATLAB 默认安装目录是
/Applications/MATLAB_<版本>.app
其中,<版本> 是 MATLAB 的版本,即 R2008b、R2009a 等。要访问 /Applications/MATLAB_<版本>.app 目录中的内容,请在 Finder 中,导航到“应用程序”(Applications),右击 MATLAB_<版本>.app。点击“显示数据包内容”(Show Package Contents),您会看到目录的内容。
2. 确定所使用的 Java 虚拟机 (JVM) 版本:
java.opts 的内容取决于您的 JVM 版本。要确定您正在运行的 JVM 的版本,请在 MATLAB 命令提示符处键入以下命令:
version -java
注意:如果您在 MATLAB 7.5 (R2007b) 中执行这些操作,请阅读此错误报告:
3. 确定要写入 java.opts 文件中的值:
当 MATLAB 启动时,它会启动 Java 运行时环境。MATLAB 使用一组默认值作为初始和最大堆空间(由堆管理器管理)。当可用内存接近零时,Java 会动态增加堆空间(直至达到“最大堆空间”(Max Heap Size) 设置)。下表显示 MATLAB 用于 JVM 版本的默认设置:
JVM 初始堆大小 最大堆大小
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
可以使用以下命令获取有关 MATLAB 中 Java 堆空间使用情况的信息:
java.lang.Runtime.getRuntime.maxMemory
java.lang.Runtime.getRuntime.totalMemory
java.lang.Runtime.getRuntime.freeMemory
用户可以通过在 java.opts 文件中手动设置这些值来重写它们。例如,在 java.opts 文件中包括以下行将把最大堆大小值设置为 256 MB:
对于 JVM 1.2.2 及更高版本,请将以下内容添加到 java.opts 文件中:
-Xmx256m
对于 JVM 1.1.8,请将以下内容添加到 java.opts 文件中:
-mx256m
这会为您提供 256 MB 的 JVM 内存,您可以根据需要调整此参数。请记住,增加 Java 堆的大小可能会相应降低 MATLAB 数组的可用空间量。有关详细信息,请参阅以下关于内存管理的指南:
4.疑难解答:
在某些情况下,增加 Java 堆大小并使其超出某一限制后可能导致 Java 内存问题。请参阅此解决方案了解详细信息:
如果您为了响应“OutOfMemoryError: Java 堆空间”而增加 Java 堆大小,但增加后仍收到同样的错误消息,则可能存在内存泄漏,或者您可能保留了对超出其效用的 Java 对象的引用。Java SE 疑难解答指南也许能帮您隔离问题:
댓글 수: 0
추가 답변 (0개)
참고 항목
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!