【发布时间】:2018-02-10 15:13:33
【问题描述】:
众所周知,在byte[] 数组中存储数据的常用方法限制为 2^31 字节 (2GB)。
有很多 Java 错误报告和 Java 规范请求可以解决这个问题。其中一些是本世纪初的文件!
但是,我发现的所有相关条目都已关闭和/或标记为重复。与此同时,每台消费类 PC 都有足够的内存,因此这个问题变得越来越重要。
所以我问自己:
处理大量内存数据的 (Java) 官方方法是什么?例如。在 RAM 中存储 4GB
如果没有官方解决方案,社区常用的解决方案是什么?
注意:我认为将数据保存到临时文件不是解决方案。超过 100GB RAM 的服务器并不少见...
【问题讨论】:
-
“官方”是什么意思?你要存储什么数据?你想对存储的数据做什么?
-
内存中的数据很少由字节组成。大多数时候,它包含在 Java 对象中。你想达到什么目的?
-
@UsagiMiyamoto 它有什么不同? OP 正在询问如何在主内存中存储超过 2GB 的二进制数据。
-
@f1sh 正如@JBNizet 提到的,数据通常不仅仅是一大块字节。即使是,它也可以被分割成小块,并且可以放入
byte数组的集合中...... -
只是一个想法(我自己没有尝试过),但是使用
LongBuffer怎么样?理论上你可以达到 8GB
标签: java memory large-data