获取“Java 堆空间”和“内存不足”时的 Eclipse 内存设置

2022-08-31 16:59:38

当尝试在eclipse中启动和运行flex/java项目时,我不断使用Eclipse,Tomcat和JRE获得“内存不足异常”和“Java Heap Space”。

在研究尝试调整内存设置时,我发现了三个地方来调整这些设置:

  • 日食.ini

  • “窗口”下的 JRE 设置>首选项

  • Catalina.sh 或卡塔利娜.bat

在这些不同的地方设置 -xms 和 -xmx 有什么区别,这意味着什么?

有没有办法验证这些内存设置是否被相应地设置?

对于具有 2GB RAM 的计算机,最佳 -xms 和 -xmx 设置是什么?

还有其他记忆提示吗?

谢谢。


答案 1

-xms 是启动内存(在 VM 启动时),-xmx 是 VM 的最大内存

  • eclipse.ini:运行 eclipse 的 VM 的内存
  • jre设置:Java程序的内存从eclipse运行
  • catalina.sh:你的雄猫服务器的内存

答案 2

首先,我建议您将问题缩小到哪个组件引发“内存不足异常”。

这可能是:

  1. 日食本身(我对此表示怀疑)
  2. 您在雄猫下的应用程序

JVM参数并表示堆的“起始内存”和“最大内存”。忘记“开始记忆”。这现在不会帮助你,只有当你确定你的应用会快速消耗此内存量时,才应该更改此参数。-xms-xmx

在生产中,我认为唯一可以更改的参数是 Catalina.sh 或Catalina.bat文件。但是,如果您使用配置的Tomcat调试环境直接从Eclipse测试Web应用程序,则只需转到“调试配置”>“Apache Tomcat”>“参数”>“VM参数”,然后在那里进行设置。-xmx-xmx

至于 2gb 的最佳值,这取决于你的环境以及你的应用可能接受的请求数。我会尝试从500mb到1gb的值。检查操作系统虚拟内存“区域”限制和 JVM 本身的限制。-xmx