为什么Java IO中的默认缓冲区大小是8k?

9

BufferedWriter的默认缓冲区大小是8k。为什么使用8k?更大的缓冲区大小是否会提高性能?

1个回答

6
缓冲区可以减少写系统调用的数量,从而优化输出。根据您程序的活动情况,更大的写入缓冲区可能会提高性能,最好使用与程序负载相当的较大缓冲区进行测试。此外,当底层文件系统的缓存是写穿(没有写缓存)时,缓冲区的重要性更高,因为写后缓存将延迟/组合物理写操作。
我认为8k的历史原因与磁盘上的传统分配大小有关,通常为2k或其倍数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接