【发布时间】:2014-06-09 09:52:29
【问题描述】:
我有:
int [][] lengths=null;
我必须根据运行时参数来初始化它。
当我的数组大小类似于int[13000][130000] 或更大时,我得到OutOfMemoryException。
有没有办法解决这个问题或我可以采取任何其他方法?
【问题讨论】:
-
堆大小是多少?数组需要连续的内存,因此 JVM 可能无法为此数组分配 13000*130000*32 字节(在 java 中存储 int 所需的内存)。因此,它抛出了 OutofMemoryException。首先是检查是否需要这个巨大的数组,如果需要增加 JVM 堆。
-
您将需要 13000*130000*4 字节来存储您的数组(如果您没有忘记第一个数字中的 0),这大约是 6.3Gb,您将需要更多空间来让您的其余部分程序工作。恐怕增加你的JVM的内存还不够,这么大的数组有什么用?
标签: java arrays performance