![“缓存中”的 RAM 过多](https://linux22.com/image/1391385/%E2%80%9C%E7%BC%93%E5%AD%98%E4%B8%AD%E2%80%9D%E7%9A%84%20RAM%20%E8%BF%87%E5%A4%9A.png)
我遇到了以下问题:我有一台全新的笔记本电脑,配备 8 GB RAM 和 Windows 8。我不使用需要大量 RAM 的软件,也没有运行上千个程序。尽管如此,Windows 还是不断抱怨我没有足够的可用 RAM。当我通过任务管理器检查时,我发现我只使用了 1.5 GB RAM,其余的被“用作缓存”,不管这意味着什么。
我现在的问题是:有什么办法可以从这个缓存中取回我的 RAM?
答案1
使用 RAMMap 的 emptystandbylist 选项清除你的 RAM 缓存。
http://technet.microsoft.com/en-us/sysinternals/ff700229.aspx
另外,wj32(sourceforge 上的 Process Hacker 的作者)编写了一个小型命令行应用程序来完成此操作。可在此线程中找到它。
http://forum.sysinternals.com/rammap-empty-standby-list_topic27297.html
尚未找到从 Powershell 执行此操作的方法,但如果您是一名优秀的程序员,您可以在Process Hacker 的源代码。
答案2
在现代系统中,缓存已被广泛采用作为一种正常行为。
一般概念是,系统应该主动、预先选择某些组件 DLL、程序、站点、搜索结果,并将它们保存在标记为缓存的特定内存区域中。
采用这一概念是因为您的系统处于唤醒状态,这意味着您正在提供能量以保持该内存处于活动状态,因此您应该一直使用它,但如果进程需要,缓存空间中的每一位都可以立即使用。当您启动程序时,它会说您没有足够的内存,这考虑到所有缓存的内存都可能变为空闲,但即使在这种情况下,您的程序所需的内存也不会可用。
为了解决您的问题,您应该使用收到的消息搜索您尝试运行的程序。