我最近注意到我机器上的 Windows 7 一直抱怨内存不足,我应该关闭一些程序。然后它通常会指出我正在运行的程序确实存在内存泄漏并且已经变得非常大。但是,通常这些程序从 20MB 的 RAM 使用量开始,并且只有在运行程序 12 到 24 小时后它们才会增长到最多 200MB 的 RAM 使用量。我从来没有同时运行超过三个这样的程序,所以我从我正在运行的程序中看到的最大 RAM 使用量为 600MB。
我在具有 4GB RAM 的机器上运行 Windows 7 x64。起初我实际上忘记了这一点,并且会在 Windows 抱怨时重新启动程序,但是现在我记得,Windows 抱怨我使用 600MB 的 RAM(即使您包括操作系统本身使用的内存也低于 2GB)这一事实似乎很奇怪. 因此,我拉起系统进程窗口,从列出的进程和系统进程中查看我的总内存使用情况。它加起来刚刚超过 700MB,所以我仍然很困惑。然后我转到资源监视器并打开内存选项卡。我想我在那里找到了答案。它指出我实际上只使用了 33% 的 RAM。但是在Physical Memory资源分配栏上,Modified部分最多2.3GB,Standby部分最多540MB,Free部分不到20MB,Cached内存排在2。8GB 和可用内存被列为 550MB。(当然,这些值会稍微四舍五入,因为在我写这篇文章时你在不断变化。)
所以显然 Windows 7 使用的内存比我多。在过去的某个时候,我确实对已安装的 Windows 服务菜单进行了一些修改,但这只是为了禁用某些托管服务,因为我不想进行任何媒体共享、启用 Telnet 客户端并删除 Internet Explorer,但这可能是我的错。有什么办法可以让 Windows 不这样做,或者至少不那么积极地缓存,所以我不再收到这些“内存不足”的通知?