0

我最近阅读了一个建议,BufferedOutputStream通过将缓冲区大小设置为 8MB 来“减少磁盘搜索对吞吐量的影响”,从而更有效地使用 Java 。

我对最后一句话很感兴趣:减少磁盘搜索的吞吐量命中?!?

这是什么意思/暗示?为什么 8MB 是一个神奇的数字?提前致谢!

4

1 回答 1

0

我不认为这是一个神奇的数字或任何东西。它只是在实际将数据写入磁盘之前将数据缓冲到该限制。因此,如果您有较短的数据块,您可以对它们进行批处理,然后只写入一次而不是多次。这个保存盘会寻找,因为盘需要在每个块的开头找到正确的位置。

因此,当写入许多小块数据时,它只是保护了一些费用(使用 SSD 时不那么昂贵)磁盘寻道。

更新:8MB 仅比默认缓冲区大小 8kb 大一个单位。

于 2013-07-08T14:28:04.960 回答