我需要知道让 Windows 7 以最有效的方式使用 24GB RAM 的最佳策略,以便它尽可能少地从磁盘驱动器读取数据。
我曾经读到过 Windows 中有一些设置,但我再也找不到它了,那么让 Windows 7 将所有内容主动加载到 RAM 中的最佳方法是什么?
答案1
在 Windows 中,这全是关于分页的。
默认情况下,Windows 喜欢在页面(交换)文件中为物理内存中的所有内容保留一个后备存储。大多数情况下,这对于多任务处理非常有用,因为这意味着当您启动新应用程序并且内存已满时,您不必等待操作系统将 RAM 分页 - 该任务已经完成。这使得进一步的优化(如 SuperFetch(在后台运行以将程序预加载到内存中的服务))成为可能。
缺点是,对于尚未缓存的项目,加载时间会变慢,因为必须将项目从磁盘读取到 RAM,然后从 RAM 写回到磁盘。但实际上,这种损失很小,因为 Windows 会利用系统空闲或低需求的时间来完成第二部分,而优化使得这种需求很少。顺便提一下,Linux 的工作方式相反,默认情况下会尝试避免所有分页。
您的问题询问两件事:减少磁盘使用和将信息预加载到 RAM 中。
- 为了减少 Windows 中的磁盘使用,您可以通过将页面文件的大小设置为零来关闭分页。
- 要让 Windows 将所有内容预加载到 RAM 中,只需确保 SuperFetch 服务正在运行(默认情况下)。
请注意,这两项任务在很大程度上是不兼容的。如果你使用 SuperFetch 而不使用页面文件,你的 RAM 将被当前不需要的内容填满。由于这些 RAM 无法交换到磁盘,因此应用程序将无法使用这些 RAM,并且你的计算机通常会慢点,并不更快。
如果你觉得你有足够的内存来保存所有内容,那么要做的就是关闭分页和superfetch。现在,您将不得不等待应用程序从磁盘加载到内存中,但您可以在需要时访问所有 RAM。您也不再需要在系统启动后等待 superfetch 为您加载内容。
答案2
启用 SuperFetch 后,它会开始将您最近使用的所有程序预加载到未使用的内存中,直至达到内存容量。有了 24GB 的 RAM,它将充当一个超大的“缓存”,并大大提高您的性能。但是,它不会减慢您的计算机速度,因为如果某个程序需要 SuperFetch 占用的空间,Windows 会立即释放它并允许新程序加载(SuperFetch 在内存和磁盘访问方面都以低优先级运行)。
至于分页文件,很多爱好者会告诉你,在安装了大容量 RAM 的情况下,应该禁用它,而且我相信有些人即使没有它,也能过得很好。Microsoft 不建议在没有分页文件的情况下运行,并将其视为“不受支持的配置”。如果启动需要大量虚拟内存空间的程序,可能会出现内存不足错误,因为分页文件无法吸收内存。我建议将分页文件保留为默认设置,让 Windows 进行管理。有了 24GB 的 RAM,不太可能将任何东西交换到磁盘。