为了进行性能测试,我需要清除 Windows 的磁盘读取缓存。我尝试谷歌搜索,但除了重新启动或其他手动操作之外,我找不到任何其他方法。在我放弃并这样做之前,我想知道是否有人知道清除 Windows 磁盘读取缓存的方法。我正在 Windows 7 上进行测试,但我也对 Windows XP 解决方案感兴趣。
答案1
或者用您知道不会在测试中使用的数据填充缓存,然后运行测试。
答案2
我曾在 Stack Overflow 上问过同样的问题
https://stackoverflow.com/questions/478340/clear-file-cache-to-repeat-performance-testing
我使用的是 Win XP,但我想到的最佳解决方案是:
- 运行几个副本内存分配
- 每次分配大块内存几次
- 使用 Process Explorer 观察系统缓存大小是否减少到非常低的水平
- 退出 MemAlloc 程序
答案3
为了更好地查看 Windows XP 文件系统缓存 - 尝试Tim Murgent 的 ATM- 它允许您以更详细和准确的视图查看文件系统缓存工作集大小和备用列表大小。对于 Windows XP - 您需要可下载的旧版 ATM 1这里因为 V2 和 V3 需要 Server 2003、Vista 或更高版本。
您将发现,尽管 Cacheset 会减少“Cache WS Min”,但实际数据仍以备用列表的形式存在,直到被其他内容替换为止。要将其替换为其他内容,请使用 MemAlloc、Chad Austin 的 flushmem 或 Windows Server 2003 Resource Kit Tools 中的 Consume.exe 等工具。
答案4
重新启动机器。