我正在使用ASANT运行一个指向NARS.jar文件的xml文件。(我没有NARS.jar的项目文件)
我得到了"java.lang.OutOfMemoryError: Java heap space。
在运行NARS.jar时,我使用VisualVM查看堆,它显示它最多使用了50MB的堆空间。
我已经将heapspace的初始大小和最大大小设置为512MB。
有没有人知道可能出了什么问题?
我获得了1 GB的物理内存,并创建了一个5 GB的页面文件(用于测试目的)。
提前谢谢。
发布于 2010-08-28 22:12:51
您的应用程序可能正在尝试分配超过您的512m限制的内存,因此即使只使用了50m,您也会看到一个outofmemory错误。为了测试这一点,我将设置:
-Xms512m -Xmx1024m
看看会发生什么。我也会尝试一个较小的测试文件,比如1g。继续减小文件大小,直到您不再看到错误。如果你成功了,那么问题是你正在尝试做的事情和你尝试做的方式需要太多的内存。是时候寻找替代方法了。
发布于 2010-03-10 00:29:26
在运行NARS.jar文件时是否会派生进程?设置ANT_OPTS仅对运行ant系统的VM有效。如果使用java任务启动/派生其他VM进程,则不会继承ANT_OPTS设置。
如果是这种情况,在java任务中设置fork="false“(如果您没有使用任何其他选项,这需要启用fork ),或者将maxmemory=设置为”512m“。
发布于 2010-03-30 22:01:42
XML文件是出了名的内存消耗问题,因为DOM表示通常需要其磁盘大小的十倍。
我的猜测是,这就是你达到极限的地方。是否存在内存不足异常的堆栈跟踪?
https://stackoverflow.com/questions/2410277
复制相似问题