为什么读取文件再读取速度更快?

SIZE = 1<<16 def justread(file): with open(file, 'rb') as f: while f.read(SIZE): pass 

我第一次在一个700MB的文件上运行这个function需要19秒。 当我重复
再次读取相同的文件所花费的时间下降到0.5secs。
我用很多文件重复了这一点,结果是相似的。
这里发生了什么?

Solutions Collecting From Web of "为什么读取文件再读取速度更快?"

操作系统在第一次读取时将文件缓存在内存中,第二次从内存而不是从硬盘中读取。 当然内存要快得多。

您的操作系统正在缓存文件。

什么? 这意味着,您第一次阅读该文件时,程序必须查找硬盘中的信息,而硬盘驱动器则不能正常工作。

现在,在第一次读完整个文件之后,为了防万一,Linux把它放在内存中,可能是因为当时没有任何重要的东西。 所以,你第二次读它时,你正在访问内存中的拷贝,而没有到达硬盘驱动器,这是更快的数量级。

干杯!