因为顺序读取磁盘数据比随机读取磁盘数据快的多,相差几十-几百的数量级。(40-400倍)
磁盘图如下:
进行磁盘读取的过程:
1.先寻找数据所在柱面号、盘片号、扇区号,从而定位到数据所在扇区(所用的时间称为寻道时间,时间最久)
2.然后盘面旋转到刚才定位的扇区所在位置,磁头读取数据(所用的时间称为旋转时间)
3.最后把读取的数据传输出去(所用的时间称为传输时间)
所以磁盘IO时间=寻道时间+旋转时间+传输时间
磁盘预读:每次读取为一页(一般4kb大小),可能包含几个扇区(一般512bit)。
如果顺序读取的话,可以省略寻道时间,把相邻的几个扇区都读取出来。如果随机读取,每次读取数据,都需要重复以上3个步骤,耗费时间更久。
例子:
计算机中存储一个二维数组是按行存储的,当前例子类按行读取类似与顺序读,按列读取类似与随机读,并不是存储到磁盘上了,只是验证一下顺序读和非顺序读的差别之大。
磁盘文件、内存都是顺序读速度快于随机读的。
网友评论