SIZE = 1<<16
def justread(file):
with open(file, 'rb') as f:
while f.read(SIZE):
pass
我第一次在700MB文件上运行此功能需要19秒.当我再次重复
阅读同一个文件时,它花费的时间减少到0.5秒.
我用很多文件重复了这个,结果很相似.
这里发生了什么?
您的操作系统正在缓存该文件。
什么?这意味着,第一次读取文件时,程序必须去硬盘中查找信息,而硬盘速度很慢。
现在,在第一次读取整个文件后,Linux 将其保留在内存中以防万一,可能是因为当时没有什么重要的东西可以替代。因此,当您第二次读取它时,您正在访问内存中的副本,而无需访问硬盘驱动器,这要快几个数量级。
干杯!