0

我在我的一个 java 应用程序中收到了 java.lang.OutOfMemoryError。我在eclipse中的“VM arguments”下增加了最小和最大堆大小的大小:

-XX:+HeapDumpOnOutOfMemoryError -Xmx8g -Xms2g 但是,我仍然遇到同样的错误。在 jconsole.exe 中,它显示以下内容: jconsole 截图

如果我理解正确,那么我仍然有足够的堆内存。

我还使用 eclipse MAT 分析了内存转储 MAT截图

如您所见,它显示了问题,但只有 9 MB。那么究竟是什么问题呢?我不应该有足够的可用堆内存吗?

4

1 回答 1

1

与 java 没有严格的关系,但这也可能是由于试图在内存中存储一​​些无法在一个地方容纳所有内容的东西。

考虑一个停车场,每个停车位之间都有金属条。有20个空摩托车点。你想停放你的SUV。即使可用空间的总面积大于您的车辆要求,您仍然无法停车,因为它无法容纳在任何一个位置。

我不知道这里是否是这种情况,但这是我遇到此问题的最常见原因。

您是否尝试在发生此错误的任何地方存储比其他任何地方大得多的东西?

于 2016-11-30T14:47:46.117 回答