Java的。懒得忘记

时间:2014-07-08 20:18:51

标签: java matlab memory

我在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,我增加了系统交换空间,但问题仍未解决!!

谢谢,

1 个答案:

答案 0 :(得分:1)

这里最可能的嫌疑是你的代码。我希望你做一些奇怪的事情(打开一个文件,而不是稍后关闭它?!将每个文件读成一个不断增长的变量?!)。

然而,没有代码,这很难诊断。

以下是您可以做的事情:

  1. 评估可见内存使用情况:在中途放置一个断点,并检查最大变量的大小。还要检查总大小。 (如果错误是常规的matlab错误,您也可以使用dbstop if error
  2. 说服matlab释放内存:如果第1步没有产生任何结果,你实际上可能正在做正确的事情,但也许matlab不能正确管理它的内存。这种情况很少见,但有时在重复简单任务时会发生很多次。在这种情况下,您可以将pack命令放在代码中的某个位置。可能会有所帮助。