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

前端之家收集整理的这篇文章主要介绍了在Windows上禁用或刷新页面缓存前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我假设 WindowsLinux页面缓存有类似的概念,用于存储来自磁盘的内存数据,如文件,可执行文件和动态库.我想知道是否有可能禁用这样的缓存或至少清除/清除它.
这在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) .

猜你在找的Windows相关文章