Random 随机写入与寻道时间

Random 随机写入与寻道时间,random,Random,我有一个很奇怪的问题 我试图将数据随机写入一个100MB的文件 数据大小为4KB,随机偏移量为页对齐(4KB) 我试图在100 MB的文件上以随机偏移量写入1 GB的数据 如果我删除将数据写入磁盘的实际代码,整个操作只需不到一秒钟(比如0.04秒) 如果我保留写入数据的代码,它需要几秒钟的时间 如果是随机写入操作,内部会发生什么?成本是查找时间还是写入时间?从上面的场景来看,这真的很让人困惑 有人能详细解释一下吗 同样的程序适用于顺序偏移量,写入速度非常快 谢谢您……如果您正在写入整个文件,那么

我有一个很奇怪的问题

我试图将数据随机写入一个100MB的文件

数据大小为4KB,随机偏移量为页对齐(4KB)

我试图在100 MB的文件上以随机偏移量写入1 GB的数据

如果我删除将数据写入磁盘的实际代码,整个操作只需不到一秒钟(比如0.04秒)

如果我保留写入数据的代码,它需要几秒钟的时间

如果是随机写入操作,内部会发生什么?成本是查找时间还是写入时间?从上面的场景来看,这真的很让人困惑

有人能详细解释一下吗

同样的程序适用于顺序偏移量,写入速度非常快


谢谢您……

如果您正在写入整个文件,那么磁盘(我假定它位于磁盘上)需要在每次写入时寻找新的位置。 此外,硬盘的写入速度也不是特别惊人。
举例来说(取自WD猛禽EL150),我们有5.9毫秒的寻道时间。如果您在4KB块中任意写入1GB,则搜索100000000÷4000×0.0059秒=总搜索时间约为1400秒

搜索时间将根据扇区是否与当前磁头位于同一气缸中而有所不同。确定。但是,大胆地假设OP在这个应用程序中使用某种多任务操作系统,很有可能操作系统或另一个应用程序在每次有上下文切换时都会使用磁盘。如果是这样的话,那么当OP的应用程序切换回时,几乎可以肯定磁头会在错误的气缸中。无论如何,我只是想说明,在随机访问的情况下,查找时间确实会堆积起来。当然,但在今天的系统上,磁盘访问可能不会受到操作系统的影响。(讽刺指出;)让我们不要忘记磁盘碎片。知道磁盘上的圆柱体有多大会有帮助。关于碎片的观点很好。100兆肯定足以发生这种情况。我认为我还不能否决评论,但如果可以的话,我会的!但是,如果我只是寻找,而不是写,它将花费更少的时间,事实上非常少的时间。我还不太清楚,不同的是,头部有时必须进行身体运动。顺序写入仅移动所需的次数。问:您正在使用的磁盘是否仅由您的应用程序使用?它仅由我的应用程序使用。