我一直在 Windows 的资源监视器上查看,发现经常有大量内存被列为可用,而不是待机。我理解 superfetch 基本上会提取您可能需要的内容并将其缓存在 RAM 中,那么为什么它没有利用这些空间呢?
此外,我知道像 readyboost 这样的系统应该保留计算机中经常访问的缓存文件。但是查看资源监视器时,我注意到关闭程序时可用空间最大。为什么它不将关闭程序的数据保存在 RAM 中,以便可以更快地启动到完全相同的状态?
我注意到的这个具体细节促使我提出这样的问题这关于超级用户的问题,早期的讨论表明我看到的任何性能提升很可能是安慰剂效应。
答案1
我知道超级提取基本上会提取您可能需要的东西,并将其缓存在 RAM 中,那么为什么它不利用这个空间呢?
Superfetch 会尝试确定你可能需要的东西不远的将来并将其加载到内存中,从而有望使计算机响应更快。
反问一句——考虑到你的整个运行系统占用了~4GB 的 RAM,待机容量为 2GB,那么你经常运行哪些东西会占用额外的 1GB 或 2GB 的内存呢?
我注意到,关闭程序时可用空间最大。为什么不将关闭程序的数据保留在 RAM 中,以便可以更快地启动到完全相同的状态?
清除已用内存是每个程序的固有功能,因为不这样做会导致任何想要在将来使用相同内存的程序出现问题。事实上,(重新)使用已经处于特定状态的内存是编程中的一个主要错误,因为数据在不同的程序甚至同一个程序之间在运行之间会以不同的方式解释。
同样,“启动到完全相同的状态”对于许多程序来说可能并不理想。我从老派的《古墓丽影》中吸取了教训——永远不要在着火时保存。
玩笑归玩笑,有很多理由不希望在会话之间保留数据,尤其是当出现错误时。这还假设程序具有 Windows 可能不具备的意识(我们保留什么?)。
还要考虑那些不经常使用或实际上导致内存使用量激增的程序。如果可用 RAM 很少或没有,则必须清除内存以供使用。这通常会导致写入磁盘(随后可能会稍后读取),这比 RAM 慢得多。
最后,作为评论,我认为关于数据大小的假设在这里也是错误的。运行程序可能需要大量内存,但除非您正在处理多媒体,否则程序“数据”往往不会很大。例如,我机器上的 Firefox 需要大约 300MB 的内存。但任何网页“数据”几乎肯定都在 20MB 以下。
如果你确实想要使用那段记忆,这里有两个想法:
检查 msconfig 并确保没有内存限制。没有迹象表明这是一个问题,但您可以仔细检查 Windows 是否设置为使用其可以使用的最大内存量。
创建一个RAM 磁盘。听起来你确实想要使用该内存,而这可能是一个很好的方法,特别是因为你似乎很关心程序速度。