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

时间:2010-12-15 11:39:58

标签: python linux file

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

我第一次在700MB文件上运行此功能需要19秒。 当我重复时 读取同一个文件的时间减少到0.5秒 我用很多文件重复了这个,结果很相似 这是怎么回事?

2 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:4)

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

什么?这意味着,第一次阅读文件时,您的程序必须查找硬盘驱动器中的信息,硬盘驱动器是懒散的。

现在,在第一次读完整个文件之后,为了以防万一,Linux将其保存在内存中,可能因为当时没有什么重要的。因此,第二次阅读时,您正在访问内存中的副本,而无法访问硬盘驱动器,速度提高了几个数量级。

干杯!