加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在Windows上禁用或刷新页面缓存

发布时间:2020-12-14 04:10:17 所属栏目:Windows 来源:网络整理
导读:我假设 Windows与 Linux的页面缓存有类似的概念,用于存储来自磁盘的内存数据,如文件,可执行文件和动态库.我想知道是否有可能禁用这样的缓存或至少清除/清除它. 这在windows下称为Standby List.您可以全局清除它,也可以清除一个卷或一个文件句柄. 在全球范围
我假设 Windows与 Linux的页面缓存有类似的概念,用于存储来自磁盘的内存数据,如文件,可执行文件和动态库.我想知道是否有可能禁用这样的缓存或至少清除/清除它.
这在windows下称为Standby List.您可以全局清除它,也可以清除一个卷或一个文件句柄.

在全球范围内
您可以使用Microsoft Technet中的readily available program,通过选择Empty→Empty Standby List来执行此操作

在编程方面,您可以使用未记录的NtSetSystemInformation函数实现相同的功能,有关详细信息,请参阅程序中的line 239,该程序执行与前面提到的相同的操作,以及其他内容.

对于一个文件句柄
使用FILE_FLAG_NO_BUFFERING打开文件:文档正在说明你打开文件时没有缓冲,但是从Windows 98到Windows 8的所有Windows版本上的真实可观察行为是它只是抛弃了完整的缓存内容该文件(适用于所有人!)并且不会从使用此句柄的读取重新填充缓存.

一个完整的卷
卷句柄只是一个文件句柄(有点特殊,但仍然如此),因此假设您有适当的权限来打开卷句柄,您可以对完整的卷执行相同的操作.

另外,正如Mehrdad的回答here中指出的那样,似乎有一个功能/错误(功能错误?),它允许您在没有适当的权限的情况下使卷的缓存无效,仅仅通过在没有共享写入的情况下注册打开它,至少在一个最新版本的Windows.当任何对写入有效的打开成功,因为你可以改变文件系统内部数据这样做时(这是一个特性),这是完全合理的,但显然它在打开卷失败时也有效(这是一个bug) .

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读