首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >清除文件缓存以重复性能测试

清除文件缓存以重复性能测试
EN

Stack Overflow用户
提问于 2009-01-25 21:30:51
回答 6查看 42.3K关注 0票数 113

我可以使用什么工具或技术来删除缓存的文件内容,以防止我的性能结果被扭曲?我认为我需要完全清除或选择性地删除有关文件和目录内容的缓存信息。

我正在开发的应用程序是一个专门的压缩实用程序,预计会做大量的工作来读取和写入文件,这些文件是操作系统最近没有接触过的,并且其磁盘块不太可能被缓存。

当我重复分析执行文件处理工作的不同策略的任务时,我希望消除IO时间中的可变性。

我主要对Windows XP的解决方案感兴趣,因为它是我的主要开发机器,但我也可以使用linux进行测试,因此我也对该环境的答案感兴趣。

我尝试过SysInternals CacheSet,但是点击"Clear“并不会导致重新读取我刚读过几次的文件的时间明显增加(冷启动后恢复到定时)。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-03-11 03:22:01

使用SysInternal的RAMMap app

Empty / Empty Standby List菜单选项将清除Windows文件缓存。

票数 90
EN

Stack Overflow用户

发布于 2011-08-19 03:40:11

对于Windows XP,您应该能够通过使用带有FILE_FLAG_NO_BUFFERING选项的CreateFile打开文件,然后关闭句柄来清除特定文件的缓存。这并没有文档记录,我不知道它是否可以在更高版本的Windows上运行,但我很久以前在编写测试代码来比较文件压缩库时就用过了。我不记得是读访问还是写访问影响了这个技巧。

票数 17
EN

Stack Overflow用户

发布于 2012-11-07 11:12:08

代码语言:javascript
复制
 #include <fcntl.h>

int posix_fadvise(int fd, off_t offset, off_t len, int advice);

带有建议选项POSIX_FADV_DONTNEED

代码语言:javascript
复制
  The specified data will not be accessed in the near future.
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/478340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档