首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从缓存中读取文件,但不会污染缓存(在Windows中)

从缓存中读取文件,但不会污染缓存(在Windows中)
EN

Stack Overflow用户
提问于 2011-05-01 21:32:23
回答 2查看 250关注 0票数 1

Windows有一个FILE_FLAG_NO_BUFFERING标志,允许您指定是否希望文件系统缓存您的I/O。

这很好,但是如果可能的话我想使用缓存,但避免修改它呢?

换句话说,如何告诉Windows以下内容?

如果这个文件已经被缓存了,就从缓存中读取它,但是我的数据没有显示局部性,所以不会将它放入缓存中!

SCSI标准定义了一个精确的禁用页面输出位,所以我想知道(如果有的话)如何从Windows (当然也与文件系统缓存合作)使用该特性?

编辑: TL;DR:

什么是FILE_FLAG_WRITE_THROUGH对于,读,__?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-02 01:30:03

我看到两面旗子看起来很像你想要的东西:

代码语言:javascript
复制
FILE_FLAG_RANDOM_ACCESS
FILE_FLAG_SEQUENTIAL_SCAN

后者的文档清楚地表明,它不会在缓存中保留页面,尽管它可能会按顺序提前阅读。前者的医生是完全不透明的,但似乎暗示了你想要什么。如果模式是随机的,那么保存页面以便以后重用将是对内存的浪费。

请记住,对于文件,Windows内核总是使用一些页面的“缓存”来保存I/O --它没有其他地方可以放置它。因此,说‘不要缓存它’与‘在驱逐其他页面之前删除该文件的旧页’是没有意义的。“

票数 0
EN

Stack Overflow用户

发布于 2011-05-01 21:52:41

关于Windows提供的最接近于您所要求的是FILE_FLAG_WRITE_THROUGH

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5851555

复制
相关文章

相似问题

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