我在 Windows 7 机器上运行了一些算法测试软件,当第一次对任何给定的数据文件运行时,它的运行速度比后续运行慢约 3-5 倍。我们的算法每次只读取几百个字节,每约 50 次读取操作写回一个结果。
Windows 中是否存在某些固有的缓存(对于 3GB 的文件来说似乎不太可能?)或其他什么?有什么方法可以加快第一次运行的速度吗?
答案1
Windows 中是否存在某些固有的缓存(3GB 的文件似乎不太可能?)
根据链接的 MSDN 文章,您可以使用 CreateFile 调用中的标志 FILE_FLAG_NO_BUFFERING 禁用某个文件的缓存。如果您无法更改代码,则可以改用SysInternals RAMMap 应用程序在基准测试运行之间重置缓存。