最小化Java中磁盘I / O的吞吐量命中率?

时间:2013-07-08 14:21:06

标签: java performance file-io disk-io

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

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

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

1 个答案:

答案 0 :(得分:0)

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

因此,当编写许多小块数据时,它只是保护了一些耗费(使用SSD时不那么昂贵)光盘寻找的东西。

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