BufferedReader的最大缓冲区大小

时间:2014-06-03 05:14:47

标签: java io bigdata bufferedreader

我有一个大文件(50-60GB)

我也有非常好的机器(128GB RAM and 16 core)

现在,我想阅读整个文件并进行一些操作。另请注意,该文件是二进制文件,因此我reading as string or as bytes doesn't matter。我的IO非常慢,所以我想在BufferedReader的缓冲区中读取整个文件。

但我被buffered reader's constructor轻击。

现在,我最多可以有2G buffer个尺寸。这对我来说非常痛苦,因为我必须从IO读取30次。

看到BufferedReader的方法,似乎没有超过2G标记(甚至this read函数)

我看错了班吗?

java中是否还有其他适合我要求的课程?

我的主要要求是我可以忍受初始加载时间,我想利用128G内存。

由于

1 个答案:

答案 0 :(得分:1)

下载IO阶梯30次不会影响程序的性能。将2G从磁盘读入RAM(即使在一台强大的机器上读取数秒)所需的时间完全使进出本机代码的成本相形见绌,本机代码大约为几毫秒。

你在做什么需要你把整个文件留在内存中?你能不能简单地进行串行处理?