java - 内存不足错误 : Java heap space - Using big array size

标签 java arrays out-of-memory

线程“main”中的异常 java.lang.OutOfMemoryError:Java 堆空间

使用 [100000][100000] 的二维数组和其他两个 [100000] 的数组。我在整个程序中需要这三个数组,所以无法释放它们的内存。

已经在 Netbeans 中尝试过 VM 选项 -Xmx512m

请具体并逐步说明,我是 Java 和 Netbeans 的新手。

在此先感谢您的帮助....

最佳答案

让我们做一些数学运算。您正在分配一个包含 10,000,000,000 个元素的二维数组,以及另外两个包含 100,000 个元素的数组。

那是 10,002,000,000 个元素。如果它们中的每一个都是一个 int,那就是 40,008,000,000 个字节。那是 37.26 Giga 字节。

你的 -Xmx512m 还远远不够,你需要一些更接近 -Xmx60G 的东西,如果它们真的是整数或 -Xmx15G最好的情况,其中元素是字节(例如 boolean 值)。但这可能行不通,因为您(可能)没有足够的物理内存。在我看来,您似乎需要一些磁盘支持的存储或数据库。

要么重新考虑您在做什么以及您是如何做的,要么使用具有那么多物理内存的机器。

关于java - 内存不足错误 : Java heap space - Using big array size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29055229/

相关文章:

javascript - 展平对象的嵌套数组,将父值添加到子值之前

java - 在同一 Play Framework 项目中同时使用 Ebean 和 JPA

c - 如何在C编程中使用多个动态分配?

javascript - 我需要一个 javascript 递归函数,当 key 和 json 对象传递给这个函数时,它返回一个值数组

c# - 将巨大的 40000 页 pdf 拆分为单页,itextsharp,outofmemoryexception

java - 如何在 Java2D 中创建更大尺寸的图像

java - 12GB Ram 机器的 Pentaho OutOfMemory 异常

java - 从 Java 7 中运行的 jar 中提取资源文件夹

java - Spring配置服务器安全加密和解密不起作用

java - getResource() 在 Eclipse 中返回 null,而不是在 JAR 文件中