答案1
没有内存压力的系统没有理由尝试释放 RAM。事实上,它们会尽可能多地使用 RAM,因为正在使用的 RAM 可以提高性能。未使用的 RAM 永远被浪费,您无法节省 RAM 以备后用,因此现代操作系统会尽可能多地使用 RAM。
直接将 RAM 从一种用途转换为另一种用途比先释放 RAM 然后又将其取消释放要高效得多。
此行为是故意设计的。如果您希望内存闲置不做任何事情,请将其从计算机中移除并放在桌子上。
如果你在想“我现在想释放内存,以便以后使用”,那就别想了。你现在可以使用它和稍后再使用。这里无需权衡。
答案2
第一,如果列标题与我所想的一致,那么前两个进程本身就使用了 2 GB。(请注意,“系统”进程不是操作系统……无论如何,不是全部。例如,分页池和非分页池、文件缓存和 SUperFetch 缓存使用的内存不作为“系统”进程的一部分出现。)
二,该列仅显示每个进程的大小私人的工作集。但每个进程的 RAM 比这多得多。其余的则在其共享工作集。这可以在进程之间共享,但不一定。如果您将所有共享工作集加起来……不幸的是,这不会告诉您真正的总使用量是多少。它远不及这些的总和,而且它不太可能像最大的共享工作集那样小。
第三,操作系统确实保留了大量不属于任何进程的内容。有非分页池。有分页池的常驻(分页)部分。系统文件缓存(不是 SuperFetch 缓存)的常驻部分也是被视为“正在使用”(而不是“可用”)的内存的一部分。(SuperFetch 使用的空间被视为“可用”)。
四,几乎所有这些用途(非分页池除外)都是可分页的,因此它们并不代表每个组件“需要”多少,而是“在当前条件下使用了多少”。
如果没有 RAM 压力,Windows 允许进程和其他可分页使用机会增长。此时,您有足够的可用 RAM 来完成当前正在做的所有事情再次,无需关闭当前正在运行的任何程序。该系统并没有遇到内存压力,因此 Windows 当然不会吝惜 RAM。
在只有 6 GB RAM 的机器上运行完全相同的工作负载,您可能会看到所有内容都稍微小一些,但不会少很多。在 4 GB RAM 的机器上运行所有内容,所有内容肯定会小一些(并且运行速度可能会慢一些,但不会慢很多,因为您当前配置中的 RAM 中的很多内容可能都是“过时的”……转移到磁盘上不会造成太大的损害。)
回到您当前的设置:如果您突然需要运行某个程序,比如说需要另外 8 GB 的 RAM,Windows 会缩小现有工作进程(从最不活跃的进程开始)以腾出空间。RAM 不像汽油;正如 David Schwartz 所说,现在没有必要节省 RAM 以便以后使用。Windows 现在可以将其用于一件事,然后让您以后将其用于其他事情。这就是按需分页操作系统。