Java堆空间错误

问题描述:

我正在运行一个非常漫长的过程,通过一个Ant脚本,我允许以下堆但它仍然给我错误。Java堆空间错误

set ANT_OPTS=-Xms1024M -Xmx2024M -XX:MaxPermSize=512M 

这意味着你的代码真的试图使用超过2G的内存。使用jprofiler或yourkit或JVM的内置工具来了解它正在做什么并减少内存使用量。

此外,如果在32位机器上,则无法获得完整的2G。

您还可以启用垃圾回收日志记录(详细信息here)并查看您的Heapspace为何增加如此之多。这可能是内存泄漏。当然,JProfiler也会允许你也这样做。 Eclipse 3.4及更高版本有一个内置的分析器,如果您不想使用JProfiler,您可以将其安装到运行程序的JVM上。

我觉得奇怪,我说,你正在使用更多的2G到执行生成(尽管它显然是可能的),所以我会做一些愚蠢的问题,只是为了帮助你在你的问题的思考:

  • 你真的确定ANT_OPTS设置正确吗?
  • 您是从命令行还是从IDE启动脚本?
  • 您正在使用哪种操作系统?
  • 你的箱子里有多少物理记忆?
  • 您是否使用由构建触发的任何插件或工具?
  • 您在构建期间是否正在启动测试?你在测试过程中分叉吗?