由于页面缓存,os.walk()在第一次运行后是否更快?

fan*_*656 3 python caching

os.walk用来迭代1000个文件(只是迭代,没有对这些文件进行处理).第一次运行很慢,但后续运行(在同一路径上)大约快20倍.

据我所知,os.walkos.listdir(通过使用os.walk)并没有做任何缓存,也不FindFirstFile/ FindNextFile(这是通过使用os.listdir我的Windows平台上).

这是由于页面缓存还是其他一些原因?

仅供参考,我正在尝试编写备份应用程序并需要处理大量文件.如果确实是由于页面缓存,那么我需要编写自己的缓存机制.

Mar*_*ers 5

你的操作系统在这里进行缓存; 目录查找需要磁盘访问速度很慢,因此这种访问需要大量缓存.

例如,ntfs.sys驱动程序使用数据映射服务来缓存文件系统元数据,例如目录列表.