首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存不足: Java堆空间,但在查看堆空间时,它最大使用了50MB

内存不足: Java堆空间,但在查看堆空间时,它最大使用了50MB
EN

Stack Overflow用户
提问于 2010-03-09 23:43:10
回答 3查看 1.4K关注 0票数 1

我正在使用ASANT运行一个指向NARS.jar文件的xml文件。(我没有NARS.jar的项目文件)

我得到了"java.lang.OutOfMemoryError: Java heap space。

在运行NARS.jar时,我使用VisualVM查看堆,它显示它最多使用了50MB的堆空间。

我已经将heapspace的初始大小和最大大小设置为512MB。

有没有人知道可能出了什么问题?

我获得了1 GB的物理内存,并创建了一个5 GB的页面文件(用于测试目的)。

提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2010-08-28 22:12:51

您的应用程序可能正在尝试分配超过您的512m限制的内存,因此即使只使用了50m,您也会看到一个outofmemory错误。为了测试这一点,我将设置:

-Xms512m -Xmx1024m

看看会发生什么。我也会尝试一个较小的测试文件,比如1g。继续减小文件大小,直到您不再看到错误。如果你成功了,那么问题是你正在尝试做的事情和你尝试做的方式需要太多的内存。是时候寻找替代方法了。

票数 1
EN

Stack Overflow用户

发布于 2010-03-10 00:29:26

在运行NARS.jar文件时是否会派生进程?设置ANT_OPTS仅对运行ant系统的VM有效。如果使用java任务启动/派生其他VM进程,则不会继承ANT_OPTS设置。

如果是这种情况,在java任务中设置fork="false“(如果您没有使用任何其他选项,这需要启用fork ),或者将maxmemory=设置为”512m“。

票数 0
EN

Stack Overflow用户

发布于 2010-03-30 22:01:42

XML文件是出了名的内存消耗问题,因为DOM表示通常需要其磁盘大小的十倍。

我的猜测是,这就是你达到极限的地方。是否存在内存不足异常的堆栈跟踪?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2410277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档