1
6
理论上,当缓冲区 页面对齐,并且当其大小是系统块的倍数时 大小 如果文件连续存储在硬盘上,则最快的I/O 通过逐缸读取数据可以获得吞吐量。(在那里 甚至不会有任何延迟,因为当你读一整首歌的时候 你不需要从头开始,你可以从中间开始, 和循环)。不幸的是,现在几乎不可能 这样做,因为硬盘固件隐藏了 扇区,并可能使用需要甚至查找的替换扇区 阅读一首单曲。OS文件系统还可能尝试传播 整个磁盘上的文件块(或至少整个圆柱体上的文件块 组),以避免在 正在访问小文件。 因此,与其考虑物理轨迹,不如考虑 计算硬盘缓冲区大小。大多数硬盘的缓冲区大小为 8 MB,大约16 MB。因此,按最大为1 MB或2 MB的块读取文件 应该让硬盘固件优化吞吐量,而无需 暂停缓冲区。 但是,如果上面有很多层,例如RAID,那么所有赌注都是 关 真的,你能做的最好的事情就是对你的 情况。 |
user3732361 · 读取大文件时如何选择块大小? 6 年前 |
Sector · 将参数传递给自己的execv内核实现 6 年前 |
Arka Pal · 关闭管道中未使用的端部 6 年前 |
Nat · 释放malloc内存时程序停止工作 6 年前 |
Mengfan Ma · 作者所说的操作系统中的目录结构是什么意思? 6 年前 |
Mengfan Ma · 在何处执行磁盘调度 6 年前 |