我有:
int [][] lengths=null;
我必须根据运行时参数初始化它。
当我的数组大小类似于 int[13000][130000]
或更大时,我收到 OutOfMemoryException
。
有没有办法解决这个问题或我可以采取的任何其他方法?
最佳答案
注意:这不应阻止 OutOfMemoryError
,但您需要了解 JVM
内存参数,因为它应该对任何情况都有帮助.
您需要查看JVM
内存参数。实际上,您可以为 JVM
设置尽可能多的内存:
-Xmx2048m -> this param to set the max memory that the JVM can allocate
-Xms1024m -> the init memory that JVM will allocate on the start up
-XX:MaxPermSize=512M -> this for the max Permanent Generation memory
您可能还想检查此参数。
-XX:MaxNewSize= -> this could be 40% from your Xmx value
-XX:NewSize=614m -> this could be 40% from your Xmx value
您还可以告诉您JVM
要使用什么类型的GC
(我认为它已经在早期版本中默认使用)
-XX:+UseConcMarkSweepGC
关于java - 创建二维 int 数组时出现内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23263361/