gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 12:41:07 32 4
gpt4 key购买 nike

我假设 Windows 具有与 Linux 的页面缓存类似的概念,用于将来自磁盘的数据(如文件、可执行文件和动态库)存储在内存中。我想知道是否有可能完全禁用此类缓存或至少清除/刷新它。

最佳答案

这在windows下叫做Standby List。您可以全局清除它,也可以为一个卷或一个文件句柄清除它。

全局
您可以使用 readily available program 来做到这一点来自 Microsoft Technet,通过选择 EmptyEmpty Standby List

以编程方式,您可以使用未记录的 NtSetSystemInformation 函数实现相同的目的,有关详细信息,请参阅 line 239在一个程序中,该程序与前面提到的程序执行相同的操作。

对于一个文件句柄
使用 FILE_FLAG_NO_BUFFERING 打开文件:文档说的是打开文件时没有缓冲,但在 Windows 98 以上的所有 Windows 版本上都是真实的、可观察到的行为与 Windows 8 不同的是,它只是丢弃该文件的完整缓存内容(对每个人而言!),并且不会从使用此句柄的读取中重新填充缓存。

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

此外,正如答案 here 中指出的那样,似乎有一个功能/错误(功能错误?),即使没有适当的权限,您也可以仅通过尝试在没有共享写入的情况下打开它来使卷的缓存无效,至少在一个最新版本的 Windows 下是这样。
当任何对写入有效的打开成功时发生这种情况是完全合理的,因为您可以这样做更改文件系统内部数据(到目前为止它是一个功能),但显然它在打开卷失败时也有效(这是一个错误) .

关于windows - 在 Windows 上禁用或刷新页面缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22666042/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com