【问题标题】:Iterating through files is faster after the first time [duplicate]第一次后遍历文件更快[重复]
【发布时间】:2021-06-08 04:37:29
【问题描述】:

这是我在做一个项目时遇到的,我有点困惑。我有一个带有 ~15000 行的 .txt 文件。当我运行程序一次时,大约需要 4-5 秒才能完成所有行。但是我在打开文件之前添加了一个while True,然后我添加了file.close(),这样它就可以连续打开,遍历所有行,然后关闭。

但在第一次运行后,我注意到它需要大约 1 秒才能完成。我确保之后关闭了文件,那么是什么导致它变得如此之快?

【问题讨论】:

  • 有趣。操作系统中有很多冗余层可能会产生这个结果,或者它可能是你的代码中的某些东西。您是否有表现出这种行为的 Python 代码的简短可运行 sn-p?考虑将这样的 sn-p 编辑到您的问题中,以便我们可以重现您的行为并更好地确定来源。
  • 是的。谢谢!

标签: python file


【解决方案1】:

这称为“文件缓存”或“预热缓存”。所有主要操作系统都将很大一部分 RAM 分配给文件缓存。当您读取文件时,这些缓冲区会保留一段时间,而不是立即释放。如果您再次读取相同的文件,它通常可以从 RAM 中提取数据,而不是进入磁盘。

【讨论】:

    猜你喜欢
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 2021-11-18
    相关资源
    最近更新 更多