我正在尝试比较磁盘缓存处于最佳状态时Windows程序的性能(当程序运行所需的所有文件都在内存缓存中时,我只运行多次以获得此状态),当缓存处于最差状态时,这是完全空的。
我知道确保缓存完全为空的唯一方法是重新启动计算机,但这并不理想,因为它需要花费太多时间。有没有办法在没有重启的情况下这样做?我尝试过同步,但它不会使读取缓存失效......
答案 0 :(得分:1)
在致电CreateFile
时,请添加FILE_FLAG_NO_BUFFERING
标记。有关详细信息,请参阅MSDN上的CreateFile reference page。请特别注意requirements。
如果修改代码需要付出太多努力才能执行此操作,请尝试编写一个简单的实用程序来读取大于物理内存的文件。这可能足以从文件系统缓存中清除您关心的文件。