如果不是所有内存都在使用,那么具有更多 RAM 的计算机是否可能更快?

Kea*_*von 85 memory performance

假设我有一台内存为 16 GB 的计算机。如果我的计算机通常只使用大约 4 GB 并且从未达到 8 GB,它是否比只有 8 GB(相同类型)内存的计算机快?通过移除 16 GB 的另一半,只剩下 8 GB,我的计算机是否会运行得同样快?

Wyz*_*ard 112

是的,因为操作系统可以使用额外的 RAM 作为磁盘缓存,从而加快对磁盘上数据的访问速度。

但是,额外的 RAM 不会使 CPU 密集型计算(不涉及太多磁盘 I/O)更快。

  • 任何未用于其他目的的 RAM。(除非您的 RAM 比磁盘空间多,这不太可能。) (31认同)
  • Linux 确实如此。如果 Mac OS 不这样做,我会感到惊讶。不这样做是愚蠢的。 (30认同)
  • “不显示”在哪里?在 Linux 系统上运行 `free` 并查看“缓存”列。一些更高级别的应用程序(例如 GNOME 系统监视器)不会将缓存报告为“正在使用”,因为该 RAM 可供其他程序使用;内核可以随时丢弃缓存。 (9认同)
  • @khajvah http://www.linuxatemyram.com/ (7认同)
  • @PTwr - 在这种情况下,操作系统应该缓存这些文件并且不应该提供那么快的速度 - 如果您正在写入 RAM 磁盘可能会有所帮助 - 但测量速度差异以查看是否值得 (4认同)
  • 额外的 RAM 不会使 CPU 密集型计算更快,但 *更快* RAM 可以,因此请务必购买 CPU/主板支持的最快 RAM。请注意,需要考虑时钟速度和延迟。 (3认同)
  • 与“交换”完全相反 (2认同)

Jas*_*son 59

由于每个操作系统管理内存的方式不同,而且没有给出,我将在 Windows 7 的上下文中回答。

以下是来自具有 24GB RAM 的计算机的示例。即使当前只有 7 GB 被分配为“使用中”内存,另外 10 GB 被分配为“备用”内存,其中包含可能会或可能不会再次读取的数据。如果它被读取,它将使您的计算机“更快”。“空闲”内存目前没有被使用。

资源监视器

  • “可用”是备用和可用内存。换句话说,当前不需要的所有内存。
  • “缓存”是备用和修改的内存。用于缓存的所有内存,修改为在变为待机之前等待写入磁盘的部分。
  • “总”内存是除硬件保留之外的所有内存。

如果您想了解有关 Windows 7 中内存使用情况的更多信息,TechRepublic 有一篇很棒的文章

  • @JonofAllTrades 我同意。我链接的文章没有讨论的一件事是 SuperFetch(Windows 7 中的默认服务)。SuperFetch _before_ 将事物加载到内存中。它将使用模式记录在一个文件中,并需要多次重启/几天才能完全优化。 (3认同)

Pau*_*aul 16

如果操作系统只使用 8GB 中的 4GB,它的运行与使用 16GB 中 4GB 的机器没有什么不同。

未使用的 ram 对机器的性能没有影响。

然而,理想的情况是操作系统使用几乎所有可用的 RAM。操作系统和应用程序将请求他们需要的东西,剩余的 ram 应该用作缓存——如果应用程序需要更多的 ram,可能会有一部分空闲以避免交换。缓存仍然算作“已使用”,并将显示为在无内存工具中使用。

缓存需要时间来建立,所以你不会在启动时看到它。如果一段时间后,机器仍然没有使用超过 4GB 的空间,那么它可能正在运行无法寻址超过 4GB(通常)的 32 位操作系统。

  • 这取决于您是否将磁盘缓存视为“已使用”的 RAM。例如,Linux `free` 程序会以两种方式报告它。 (4认同)

Foo*_*oon 9

等式的另一部分是记忆棒的配置方式。具体来说,现代主板支持双通道内存,可让您将主板和内存之间的带宽加倍;如果你有配对的内存并且你取出每对中的 1 个,你就失去了这个,所以在进行大量内存传输时你的内存访问会减少,这应该导致操作需要更长的时间。(相反,如果您碰巧有 8 Gig 的较快内存与 8 Gig 较慢的内存配对并且仅使用 8 Gig,则取出较慢的 8 gig 并修复较快的应该可以让您运行得更快,因为您仍然可以获得双通道但不是它不需要减速到最慢的内存)

但是,总的来说,其他答案中提到的缓存内容将对整体性能产生更大的影响。