有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

MatlabJava。内存不足

我在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) 个答案

  1. # 1 楼答案

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

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

    以下是你能做的:

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