Windows 将我曾经打开过的大型文件保留在物理内存中,并处于待机状态。我该如何停止这种情况?

Windows 将我曾经打开过的大型文件保留在物理内存中,并处于待机状态。我该如何停止这种情况?

我正在使用 64 位 Windows 8.1,有 16GB 的物理内存,我理解 Windows 为什么要这样做,但我的具体情况确实很奇怪和烦人。

出于某种原因,有时,当我打开一个几 GB 的文件时 - 即使它在文件的生命周期中只打开一次,并且只打开几分钟,即使它只是一个视频文件 - 它会将该文件放入“待机(物理)内存”,使我的物理内存使用率超过 80% - 有时超过 90%。最糟糕的是,该文件永远不会自动删除 - 我必须重新启动或使用 RAMMap 将其清除。

我理解 Windows 为何以这种方式管理内存,内存就是用来使用的 - 但这对我来说有点问题,因为它似乎从来没有自行清除待机状态下的这些文件 - 因此我的性能受到了很大影响。我的 SSD 上有足够的页面文件,我的 RAM 没有任何错误 - 我的问题只是 Windows 预测了我需要保留在物理内存中的错误文件,并且在我关闭文件后没有删除它们。

编辑/更新:

  1. 超级提取已禁用,并且已有数月。
  2. 页面文件位于 SSD 上。
  3. Process Explorer、RamMap 和 HWiNFO 都表明这些一次性短暂使用的无意义文件处于待机状态,而不是在活动内存中(如 RamMap 中所示)。
  4. 当这些文件从待机状态中删除时,物理内存使用量会根据上面列出的工具下降。
  5. 我的系统并不“认为”它需要内存,而这正是当前的问题——它需要内存,除非我手动清除,否则它不会使用待机内存清除文件。正如我上面所说,我的内存使用率可能会超过 90% 并且运行缓慢,并且不会删除 Windows 在文件整个生命周期中只需要一次的文件 - 而是倾向于删除内存中仍然需要的文件。

总之:Windows 会将不需要的文件保留在内存中,并在请求更多 RAM 时删除需要的文件。为什么会发生这种情况?我该如何解决?

我不确定是谁将此标记为重复问题,但链接的“重复”与我的问题无关。

答案1

它将该文件放入“待机(物理)内存”,导致我的物理内存使用率超过 80% - 有时甚至超过 90%

呃,但是……待机不计入物理内存使用量,无论是否用于 SuperFetch 缓存。当然它计入内存展示。但待机不属于“已使用百分比”的一部分。即使该文件被缓存到内存中,它也会立即被丢弃,并保持“可用”状态,就像它从未用于任何用途一样。

最糟糕的是,该文件永远不会自动删除 - 我必须重新启动,或者使用 RAMMap 来清除它。

那么你的系统认为它不需要 RAM。

我的 SSD 上有足够的页面文件

这里有些奇怪。将文件缓存到待机列表中是由 SuperFetch 完成的。但是,在具有用于操作系统磁盘的 SSD 的系统上,SuperFetch 通常是禁用的。您重新启用它了吗?

答案2

没有办法阻止窗口缓存它们。Windows 仍然会缓存用户手动打开的项目以及必要的系统文件。超级获取(系统主程序服务是根据用户在前几次启动期间的使用模式预加载文件和其他项目。如果您在前几次启动期间打开了某个文件,superfetch 会使用频繁访问机制(也就是说,你可能在下次启动后重新访问。那些备用文件仅分配给再次打开文件时所需的内存百分比。它在使用率百分比中不活跃,当需要更多内存时将立即被丢弃活跃工作集进程(当前正在分配部分可用 RAM 的正在运行的进程)本身。

相关内容