如何在 MATLAB 6.0 (R12) 及更高版本中增加 Java VM 的堆空间?

조회 수: 17 (최근 30일)
MathWorks Support Team
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
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 -Xmx128m32 位)
-Xmx196m64 位)
1.5.0 -Xms64m -Xmx96m32 位)
-Xmx128m64 位)
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개)

카테고리

Help CenterFile Exchange에서 启动和关闭에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!