为什么系统占用这么多 RAM?

为什么系统占用这么多 RAM?

为什么所有进程加起来只使用了 2GB 以上的内存,但总共却使用了 5GB 的内存?为什么系统占用了这么多 RAM?

答案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 现在可以将其用于一件事,然后让您以后将其用于其他事情。这就是按需分页操作系统。

相关内容