我在 MATLAB 上运行了一个脚本,运行良好,当我想再次运行该脚本时,MATLAB 陷入忙碌状态!我在我工作的目录中发现了一个文件“hs_err_pid1124”,其中包含以下内容:
A fatal error has been detected by the Java Runtime Environment:
#
# java.lang.OutOfMemoryError: requested 16384000 bytes for GrET in
C:\BUILD_AREA\jdk6_17\hotspot\src\share\vm\utilities\growableArray.cpp. Out of swap
space?
#
# Internal Error (allocation.inline.hpp:39), pid=1124, tid=1380
# Error: GrET in
C:\BUILD_AREA\jdk6_17\hotspot\src\share\vm\utilities\growableArray.cpp
#
# JRE version: 6.0_17-b04
# Java VM: Java HotSpot(TM) Client VM (14.3-b01 mixed mode windows-x86 )
.
.
.
我的电脑内存是4G,我增加了系统交换空间,但问题仍然没有解决!!
谢谢
最佳答案
这里最有可能的嫌疑是你的代码。我希望你做一些奇怪的事情(打开一个文件,然后不关闭它?!将每个文件读入一个不断增长的变量?!)。
但是,如果没有代码,就很难诊断。
您可以执行以下操作:
- 评估可见内存使用情况:在中间的某个位置放置一个断点,并检查最大变量的大小。还要检查总大小。 (如果错误是常规的 matlab 错误,您还可以使用
dbstop if error
) - 说服 matlab 释放内存:如果第 1 步没有产生任何结果,您实际上可能做对了,但也许 matlab 没有正确管理其内存。这种情况很少见,但在多次重复简单任务时有时会发生。在这种情况下,您可以将
pack
命令放置在代码中的某个位置。也许会有帮助。
关于 java 。内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24641026/