9

默认缓冲区大小为 8k in BufferedWriterof else。为什么要使用 8k?更大的缓冲区大小会提高性能吗?

4

1 回答 1

6

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

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

于 2011-08-14T10:55:51.327 回答