禁用Windows文件缓存

时间:2012-04-04 20:27:22

标签: windows winapi caching

Windows 7的任务管理器在性能选项卡中列出了用作缓存的物理内存的兆字节数。

我想在假设基于磁盘的数据(700 MB文件)无法存储在主内存中的情况下测量程序的性能。实际上我有足够的RAM。我可以以某种方式强制执行从磁盘读取的文件吗?

我已经尝试在寄存器中禁用EnablePrefetcher和EnableSuperfetcher,但没有任何改变。一个有效的黑客正在分配所有可用的内存。 FILE_FLAG_NO_BUFFERING和FILE_FLAG_OVERLAPPED的组合会提供所需的结果吗?还有其他想法吗?

顺便说一句:我得出结论,文件是从缓存中读取的,因为我第一次启动应用程序时运行的速度比后续运行慢得多。如果我分配所有可用内存,则下一次运行再次变慢。此外,我在第一次运行应用程序时看到缓存在任务管理器中快速增长。

关闭主题:
具有讽刺意味的是,我们正在实施一种假定您无法将文件存储在主存储器中的算法。但是,我们不能将其存储在主内存中...... :)

0 个答案:

没有答案