我遇到了一个奇怪的问题,困扰了我一年多了......
我有 6GB 内存,但 Windows 运行起来感觉更像是 2GB。Windows 报告我有 6GB 内存,没有任何问题,但现在,如果我将所有正在运行的进程的内存加起来,就会发现使用了大约 300MB 的内存。尽管如此,Windows 仍然声称我已经使用了 73% 的物理内存。
换句话说,我的 6GB 内存中只有 27% 是可用的,而且没有运行任何应用程序(只有小型后台应用程序/进程)。
请参阅此屏幕截图,它解释了问题。在这种情况下,我运行了许多应用程序,但它们合计使用的内存不到 1GB。然而,Windows 报告我的内存已使用 96%,并相应地做出反应(应用程序崩溃、内存警告等)。
答案1
这里有几件事要说……
只是你的前三名进程总共显示 1 GB,所以您怎么能说整个列表总共只显示大约 1 GB,我不知道。(提示:您可以使用 PerfMon 获取这些计数器的总数,而实际上不必添加任何内容。)
您只查看了“内存(私有工作集)”列。这不是每个进程使用的全部 RAM。例如,它不包括代码。启用“工作集(内存)”列即可查看这些内容。但是,这些内容的总数会具有误导性大的因为代码(和许多其他)页面在进程之间共享。Sysinternals RAMmap 是真正了解 RAM 使用情况的最佳工具。
Windows 还使用了很多其他 RAM,它们不属于任何进程,因此不会显示在该列表中。sysinternals 的 RAMmap 实用程序会向您显示其余 RAM 的位置。
Windows 实际上没有“内存不足”的错误消息。您看到的消息与内存不足有关页面文件支持的虚拟地址空间,即,您机器上的“提交费用”太接近“提交限制”。看来您的提交限制是 8181,而提交费用仅比该限制少约 200MB。这就是为什么当尝试分配这种类型的 vas 时,您会收到“内存不足”错误的原因
另外:RAM 为 6135。提交限制是 RAM + 页面文件大小,因此这表明您的页面文件只有大约 2000 MB。将其至少增加到 6000。这将允许每个进程的更多“私有工作集”(包括实际上不需要保留在 RAM 中的旧陈旧内容)被推送到磁盘。(Windows 只有在有除 RAM 之外的地方可以保存旧的陈旧内容时才能“在需要时使 RAM 可用”。)参见http://azius.com/blog/pagefile-yes1/了解更多信息。
请顺便关掉你的网页浏览器,然后报告“可用”内存的情况。(顺便说一下,这就是你想要的数字。“免费”不一定很大。)
请使用 SysInternals RAMmap 工具。截取“使用计数”选项卡的屏幕截图,并发布结果。确保结果可读。