我有一个简单的程序,它让我内存不足问题:
public static void main(String[] args) {
int i[] = new int[457560000];
}
这会抛出以下错误:
线程“main”中的异常java.lang.OutOfMemoryError:Java堆空间
我已尝试在我的eclpse中设置VM参数,如下所示:-Xms1024M -Xmx2048M,但仍然出现相同的错误。
我不需要这么大的数组,但我的图像处理问题是图像尺寸非常大。调试时我发现AWT软件包试图创建这个数组并因内存问题而失败。
如何解决此问题?在运行此代码之前需要设置多少内存?
更新
我也尝试在eclipse运行配置虚拟机设置下为Xmx设置6GB,我的机器被绞死了一段时间但又遇到了同样的错误。
答案 0 :(得分:0)
指定代码段的运行配置至少需要-Xmx2640M
,具体取决于您使用的JRE。
由于-Xmx
是仅在必要时使用的最大值,您可以使用例如-Xmx256000M
运行程序,然后查找实际使用的内存量。