为什么堆空间仅在运行 JUnit 测试时才耗尽?

2022-09-01 10:15:06

在运行JUnit测试时,我似乎总是遇到这个错误:

eclipse outOfMemoryError: 堆空间

我用JConsole监视了Eclipse,堆内存峰值约为150MB。我已将堆内存设置为1GB。

我在启动 Eclipse 时使用以下参数:

-vm "C:\Program Files\Java\jre1.5.0_08\bin\javaw.exe" -vmargs -Xmx1024M
-XX:MaxPermSize=128M -Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

有谁知道可能导致此问题的原因吗?只有在运行 JUnit 测试时才会发生这种情况。


答案 1

Junit 测试在与 Eclipse IDE 不同的 vm 中运行。因此,内存不足的是vm,而不是Eclipse。
可以在测试的运行配置中更改测试 VM 的设置。
转到运行配置,然后在参数下,可以设置 vm 参数。


答案 2

为了进一步@Thijs Wouters 的响应,为了在 eclipse 中解决此问题,我执行以下操作:

  • 在 JUnit 下添加了新的运行配置(运行>运行配置>JUnit>New)
  • 在参数选项卡中,如果需要,将 VM 参数设置为“-Xms64m -Xmx256m”或更高

推荐