为什么后续读取多 GB 的文件的速度会更快?

为什么后续读取多 GB 的文件的速度会更快?

我在 Windows 7 机器上运行了一些算法测试软件,当第一次对任何给定的数据文件运行时,它的运行速度比后续运行慢约 3-5 倍。我们的算法每次只读取几百个字节,每约 50 次读取操作写回一个结果。

Windows 中是否存在某些固有的缓存(对于 3GB 的文件来说似乎不太可能?)或其他什么?有什么方法可以加快第一次运行的速度吗?

答案1

Windows 中是否存在某些固有的缓存(3GB 的文件似乎不太可能?)

是的,Windows 确实有一个缓存,可以解决这个问题

根据链接的 MSDN 文章,您可以使用 CreateFile 调用中的标志 FILE_FLAG_NO_BUFFERING 禁用某个文件的缓存。如果您无法更改代码,则可以改用SysInternals RAMMap 应用程序在基准测试运行之间重置缓存。

有关详细信息,请参阅 SO 上的相关帖子

相关内容