为什么写作时将文件分成小块更好?

Ill*_*lia 5 java io

我正在阅读"O'Reilly Java IO"一书,并提出建议:

文件通常最好以磁盘块大小的倍数写入,通常为512,1024或2048字节.

我试图找到任何解释,但我不能.我有一些想法.但如果有人解释或分享链接会很好,为什么这是一个好习惯.谢谢.

Tsc*_*cka 2

防止硬盘上不必要的读-写-修改周期。

理想情况下,“输出数据”应尽可能接近实际扇区大小。

每次写入数据时,都会读取整个扇区,然后用数据进行修改,然后写回磁盘。

如果一次刷新 5 个字节,则必须发生大量 IO 操作。假设您有一个扇区大小为 4096 的硬盘,大约需要完成 120 次读取-修改-写入操作。

而如果将其缓冲到最大,则只需完成一次读写修改操作,这将减少硬盘驱动器完成此任务的等待时间。

许多操作系统进程和硬盘固件可能会等待一段时间,看看是否会将更多数据添加到扇区,但最好帮助确保硬盘写入缓存可以更快地刷新到磁盘。

有趣的阅​​读:

磁盘 I/O 期间幕后发生了什么?
http://www.seagate.com/tech-insights/advanced-format-4k-sector-hard-drives-master-ti/


归档时间:

查看次数:

120 次

最近记录:

8 年,4 月 前