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

时间:2011-08-14 10:48:03

标签: performance buffer bufferedwriter

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

1 个答案:

答案 0 :(得分:6)

缓冲区减少了写入系统调用的数量,从而优化了输出。根据您的程序的活动,更大的写缓冲区可能会提高性能,最好使用更大的缓冲区进行测试,其工作负载与您的程序相当。此外,当底层文件系统的缓存是直写(无写缓存)时,缓冲区的重要性更高,因为后写缓存会延迟/分组物理写操作。

我认为8k的历史原因与磁盘上的传统分配大小有关,通常是2k或其倍数。