如果通常不使用所有内存,具有更多RAM的计算机是否可能会更快?


85

假设我有一台具有16 GB内存的计算机。如果我的计算机通常仅使用大约4 GB的内存而从未达到8 GB,它是否比仅具有8 GB(相同类型)内存的计算机快?通过删除16 GB的剩余一半而仅剩下8 GB,我的计算机是否能以同样快的速度运行?


17
这个问题的部分困难在于,对于任何具有虚拟内存和内存映射文件的现代操作系统,很难定义“使用中”。例如,正在执行的程序的代码(“文本”)段是“已使用”还是“缓存”?
R..

5
不同的操作系统对内存的管理方式不同。问题中未指示任何操作系统。术语“使用”也可以表示不同的事物。不好的问题,甚至选择了更差的答案。
杰森

较小的内存可能会更快,因为内存地址驱动程序上的负载较小。不过,实际上,我怀疑是否已调整时钟速度以考虑到这一点,因此不会有任何区别。(这是假设“额外的” RAM会像块一样坐在那里,并且不会以某种方式使用。)
Daniel R Hicks

3
这个问题确实需要“使用中”的定义。声明缓存的每个答案(作为当前接受的答案)都说明了内存的使用。这可能是更有用的定义,但是将不同的内存使用分开会有所帮助。我认为我们可能不想讨论完全未使用的内存是否有帮助……
Nanne 2014年

还要注意,由于可以同时进行访问,因此拥有额外的挺杆本身可以使其速度更快。
Tyzoid 2014年

Answers:


112

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

不过,额外的RAM不会使CPU约束的计算(不涉及大量磁盘I / O)更快。


31
没有用于其他目的的任何RAM。(除非您有比磁盘空间更多的RAM,否则不太可能。)
Wyzard 2014年

30
Linux确实如此。如果Mac OS不能做到这一点,我会感到惊讶。不这样做真是愚蠢的。
Wyzard 2014年

9
“不显示”在哪里?free在Linux系统上运行,然后查看“已缓存”列。一些更高级别的应用程序(例如GNOME系统监视器)不会将高速缓存报告为“正在使用”,因为该RAM可供其他程序使用。内核可以随时丢弃缓存。
Wyzard 2014年

4
@PTwr-在这种情况下,操作系统应该缓存这些文件并且不应提供太大的速度-如果您正在写入,则RAM磁盘可能会有所帮助-但要测量速度差以查看是否值得
user151019 2014年


59

由于每个操作系统对内存的管理方式都不一样,因此没有给出任何答案,因此我将在Windows 7的背景下进行回答。

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

资源监控器

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

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


那么,如果这台计算机在此负载下又增加了8 GB,将会发生什么情况?我怀疑“什么也没有”,但我也怀疑负载较重或正常运行时间较长的用户将有更多的缓存。

3
@JonofAllTrades我同意。我链接的文章中没有提到的一件事是SuperFetch(Windows 7中的默认服务)。SuperFetch 在访问之前将其加载到内存中。它将使用模式记录在一个文件中,并需要数天重新启动才能完全优化。
杰森

在Linux中也会发生这种情况吗?
卡斯珀

16

如果操作系统仅使用8GB中的4GB,则其运行方式与使用16GB中4GB的计算机没有什么不同。

未使用的柱塞不影响机器的性能。

但是,理想的情况是OS使用几乎所有可用的RAM。操作系统和应用程序将请求它们所需的内容,剩余的RAM应该用作缓存-如果应用程序需要更多RAM,则可以留出一部分空闲空间以避免交换。高速缓存仍算作“已使用”,将显示为在无内存工具中使用。

缓存将需要一些时间来建立,因此您在启动时将看不到它。如果过一会儿,该计算机仍未使用超过4GB的内存,则可能是它运行的32位操作系统无法处理超过4GB的内存(正常情况下)。


4
这取决于您是否将磁盘缓存视为“已用” RAM。例如,Linux free程序会同时报告这两种情况。
Wyzard 2014年

我认为gui代表用户的情况与实际情况可能有所不同。不管用户界面工具是否向用户隐藏了事实,都会使用用于缓存的RAM。
Paul

“如果过了一会儿,机器仍未使用超过4GB的内存...” ->同样,磁盘缓存非常棒,但是如果您有很多可以从磁盘缓存的内容,它将无法真正填满所有可用的RAM- -它仅缓存您实际使用的内容,现在不使用,这可能不会超过GB,除非您的正常活动包括大量的photoshop等,或者计算机是一台繁忙的服务器,并且静态文件。
goldilocks 2014年

@goldilocks显然,“一段时间后”是模糊的,但它的意思是“在Windows和应用程序已造成足以加载超过4GB的数据的持续时间之后”。我的用法很常规,超出了常规范围。关键是,如果达到此限制,则可能是在解决约束,而不是不需要更多缓存。
保罗

9

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

但是,总的来说,其他答案中提到的缓存内容将对整体性能做出更大的贡献。


3

删除一半的16GB内存会降低计算机的速度。

即使您从未使用过将近8GB的内存,这仍然适用。

它的软件方面包含在其他答案中,并归结为OS选择使用RAM而不是磁盘。

但是,通过将可用RAM数量减半,您可能会看到硬件驱动的性能下降。原因是RAM总线使用多通道体系结构,这意味着计算机可以同时在多个RAM模块之间传输数据。

可能您的计算机是双通道的。在这种情况下,您可以删除4个4GB RAM模块中的2个,而不会影响硬件性能。但是,从2个8GB RAM模块中删除1个会影响性能。

如果您具有四通道RAM体系结构,则即使您的RAM是4GB模块,您也会看到性能上的提升。


2

如果内存已用完或达到99%,则由于硬盘上的页面文件,您将失去速度。硬盘甚至无法接近RAM的速度,因为取决于总线速度,CPU可以直接访问RAM。

Windows使用大约3-4 GB的ram空闲空间,不计算其他应用程序。我已经运行16 GB多年了,实际上从未需要超过8GB。实际上,平均PC用户使用的游戏从来没有超过4-6 GB。我只看到它在压缩电影或做与多媒体有关的RAM密集型工作时一次接近12 gb,而多核CPU将是您需要超过8 gb的唯一方法。是的,它会以同样快的速度运行。海事组织。

正常运行1天后空闲: 在此处输入图片说明 在此处输入图片说明

2天正常运行时间后空闲: 在此处输入图片说明 在此处输入图片说明

Windows拥有更多的RAM似乎要使用更多的RAM。

在此处输入图片说明

就Windows 7利用RAM使某些进程更快而言,这里是一个示例。

在此处输入图片说明

Chkdsk最大化RAM来加快缓存速度,从而提高性能和磁盘检查时间,因此在这种情况下实际上更多=更快...


1
Windows 7的?即使有很多东西,我也几乎不会超过2G。
西蒙匡2014年

Windows 7拥有的RAM越多,它将使用的内存就越多...由于您打开并当前打开了哪些程序,加班时间会波动,直到服务和应用程序释放内存后,它才会稳定波动..关于实际问题。8GB的速度将与16GB的速度一样,并且取决于您使用计算机的目的。在正常情况下,如果用于游戏或Web浏览等常见用途,则应该不超过8GB,并且不会造成实际性能损失。
MORBiD 2014年

2

在实践中,答案很可能是对所述问题的“否”。Q.说“(使用)永远不会达到8 GB”,并提到“相同类型的内存”,因此影响速度(磁盘缓冲)的最可能因素不会受到影响。一个常见的实际示例是数据库服务器具有足够的内存来缓冲整个硬盘-例如,具有4GB的文件和2GB的进程/系统分配的内存不会受益于超过8GB的内存。

例外情况:

更多的内存可以减慢休眠速度-在具有32GB内存和SSD磁盘的系统上,冷启动要比从休眠状态唤醒要快得多,因为它可以节省整个32GB的休眠时间,但是冷启动需要的读取内容少得多。减少内存将加快系统速度。

如果您访问更多的硬盘,并且大多数人的磁盘使用量比剩余的内存要多,它将更快,因此额外的内存会有所帮助。同样,许多O / S仅将部分使用情况报告为“使用情况”,其余部分则记为缓冲而非“使用情况”。(Linux报告使用率包含和不包括缓冲)。

内存通道会影响性能:[如果删除内存意味着您减少了正在使用的内存通道的数量,则系统将按照Foon正确指出的那样放慢速度]

[编辑:] David Schwartz评论说,降低内存可减少Windows下私有,可修改的内存映射的限制。Windows显然将这些预留的总和限制为内存加交换的总和,因此即使报告了“可用内存”,您也可以用尽该资源(因为在访问页面之前不会分配实际内存/交换,因此不会计算为内存使用量)。Linux的行为有所不同-每个进程最多可以分配内存和交换大小的总和,并且所有进程的总数可以超过内存加交换的总和。


1
您基本上只是断言“否”是正确的答案,但不说原因。
David Schwartz 2014年

这是对已接受的答案的回应-我没有代表点可以直接对其进行评论-对您的困惑感到抱歉。要澄清的是,在不太明显的情况下,您只使用与实际读取或写入的一样多的内存来进行硬盘缓冲-如果没有那么多的磁盘使用量,或者从不访问它,那么多余的内存就不会使用有所作为。
iheggie 2014年

1
我给出的数据库服务器示例是一个示例,其中额外的内存几乎没有什么不同-使用中的所有磁盘都得到缓冲。
iheggie 2014年

那么,更多的RAM意味着更多的后备存储,这可能会允许操作系统允许它本来会拒绝的分配呢?
David Schwartz 2014年

在我的数据库服务器示例中,没有任何区别,因为它永远不会由于缺少可用内存而拒绝分配。如果a。操作系统将拒绝什么分配。内存中的所有进程; b。整个磁盘已经在内存中缓冲了; c。它具有可用内存和d。是否没有其他限制(例如最大进程/缓冲区/可寻址大小限制)?
iheggie 2014年

0

内存碎片是拥有额外内存的另一个原因。如果您有8GB的RAM,并且倾向于保持80%的利用率,特别是在现代用例中(具有大量的内存交换,例如通过打开和关闭浏览器选项卡进行交换),您最终会得到很大的支离破碎。

添加额外的8GB RAM可使操作系统更有可能找到连续的可用内存空间,这意味着需要较少的重启频率来避免性能下降。


我的理解是,内存碎片是一种可能在进程的内存空间中发生的事情,该内存空间在典型的现代系统上是虚拟的,并且通常不适用于该系统。由于物理内存分为页面,这些页面分别映射到进程的虚拟内存空间,因此碎片化将是一个毫无意义的概念。如果我有误解,请指正。
Thomas Padron-McCarthy 2014年

0

可能但不一定。RAM允许计算机执行的其中一项操作是允许应用程序分配可能永远不会使用的内存。如果系统没有足够的后备存储(包括RAM)来允许它到目前为止已发出的每个分配消耗尽可能多的内存,则操作系统将不得不拒绝这些分配或过量使用。某些操作系统从未过量使用,并且几乎所有现代操作系统都限制了它们所允许的过量使用量。

因此,未使用的内存可以通过允许可能需要RAM的操作成功(否则会失败)来提高性能。


-1

更多的ram不能提高计算机的速度。较少的ram会“减慢”计算机的速度。

计算机具有物理上的最高速度(这也包括超频),没有什么可以使它们更快。


3
如Wyzard的回答所示,整个“计算机”包括磁盘访问,更多的RAM会导致更多的缓存并因此加快速度。
请删除我

您是说我们可以通过在计算机上添加TB级的ram来提高计算机的物理速度限制吗?
Xtro

是的,考虑到硬盘驱动器。
请删除我

顺便说一句,更少的RAM并不一定总是会降低计算机的速度。L3高速缓存由于高速缓存未命中而多次降低了计算机的速度
请删除我

2
我发现你的回答是重言式的。是的,CPU的“最大速度限制”是CPU的最大速度。不错的秀。但是,从实际的角度来看,与仅具有足够RAM的PC相比,具有过多RAM的PC的性能会更快一些。
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.