題 如果通常不使用所有內存,那麼具有更多RAM的計算機是否可能更快?


假設我有一台16 GB內存的計算機。如果我的計算機通常只使用大約4 GB而且永遠不會達到8 GB,那麼它是否比只有8 GB(相同類型)內存的計算機更快?通過移除16 GB的另一半而只剩下8 GB,我的計算機是否同樣快速運行?


85
2017-07-23 02:50


起源


這個問題的部分難點在於,對於具有虛擬內存和內存映射文件的任何現代操作系統來說,“使用中”很難定義。例如,執行程序的代碼(“text”)段是“used”還是“cache”? - R..
不同的操作系統管理內存不同。問題中未指明操作系統。術語“使用”也可能意味著不同的東西。不好的問題,更糟糕的答案選擇。 - Jason
較小的內存可能更快,因為內存地址驅動程序的負載較小。但實際上,我懷疑時鐘速度是否經過調整以考慮到這一點,所以沒有區別。 (這是假設“額外”的RAM只會像塊一樣坐在那里而不會以某種方式使用。) - Daniel R Hicks
這個問題確實需要“使用中”的定義。聲明緩存的每個答案(如當前接受的)都講述了a 使用 記憶這可能是更有用的定義,但分離不同的內存使用將是有幫助的。我想我們可能不想討論完全未使用的內存是否有幫助...... - Nanne
另請注意,具有額外的柱塞本身會使其更快,因為兩者都應該能夠並行訪問。 - Tyzoid


答案:


是的,因為操作系統可以使用額外的RAM作為磁盤緩存,從而加快對磁盤上數據的訪問。

但是,額外的RAM不會更快地進行CPU綁定計算(不涉及太多磁盤I / O)。


112
2017-07-23 02:52



任何未用於其他目的的RAM。 (除非你有比磁盤空間更多的RAM,這是不太可能的。) - Wyzard
Linux呢。如果Mac OS沒有這樣做,我會感到驚訝。不要傻到。 - Wyzard
“不顯示”在哪裡?跑 free 在Linux系統上查看“緩存”列。某些更高級別的應用程序(例如GNOME系統監視器)不會將緩存報告為“正在使用”,因為該RAM可供其他程序使用;內核可以隨時丟棄緩存。 - Wyzard
@PTwr - 在這種情況下操作系統應該緩存這些文件並且不應該提高速度 - 如果你正在編寫RAM磁盤可能會有所幫助 - 但是測量速度差異以確定它是否值得 - Mark
@khajvah linuxatemyram.com - Dan Neely


由於每個操作系統都以不同的方式管理內存,並且沒有給出任何內存,我將在Windows 7的上下文中回答。

以下是具有24GB RAM的計算機的示例。儘管當前僅將7 GB分配為“使用中”內存,但另外10 GB被分配為“待機”內存並包含可能會再次讀取或不會再次讀取的數據。如果它被讀取,它將使您的計算機“更快”。目前沒有利用“自由”記憶。

Resource Monitor

  • “可用”是待機和空閒內存。換句話說,目前不需要的所有內存。
  • “緩存”是待機和修改內存。用於緩存的所有內存,已修改為等待在進入待機狀態之前寫入磁盤的部分。
  • “總”存儲器是除硬件保留之外的所有存儲器。

如果您想了解有關Windows 7中內存使用情況的更多信息,TechRepublic有 一篇好文章


59
2017-07-23 22:20



那麼,如果這台計算機在這個負載下又增加了8 GB,會發生什麼?我懷疑“沒什麼”,但我也懷疑負載較重或正常運行時間較長的用戶會有更多的緩存。
@JonofAllTrades我同意。我鏈接的文章沒有談到的一件事是SuperFetch(Windows 7中的默認服務)。 SuperFetch將內容加載到內存中 之前 他們被訪問了。它記錄文件中的使用模式,並需要幾次重啟/天才能完全優化。 - Jason
這也發生在Linux中嗎? - Kin


如果操作系統僅使用8GB中的4GB,那麼對於使用16GB中的4GB的機器,它將沒有區別。

未使用的柱塞對機器的性能沒有影響。

但是,理想的情況是操作系統幾乎可以使用 所有 可用內存。操作系統和應用程序將請求他們需要的內容,剩餘的ram應該用作緩存 - 如果應用程序需要更多ram,則可以使用一部分空閒來避免交換。緩存仍被視為“已使用”,並且將顯示為在內存空閒工具中使用。

緩存需要一些時間來構建,因此您不會在啟動時看到它。如果過了一段時間,機器仍然沒有使用超過4GB,那麼它可能正在運行一個無法滿足超過4GB(通常)的32位操作系統。


16
2017-07-23 03:10



這取決於您是否將磁盤緩存視為“已使用”RAM。 Linux free 例如,程序以兩種方式報告。 - Wyzard
我認為gui對用戶來說代表什麼,實際情況可能會有所不同。無論userland工具是否將該事實隱藏給用戶,都使用用於緩存的RAM。 - Paul
“如果一段時間後機器仍未使用超過4GB ......”  - >再次,磁盤緩存很棒,但是如果你有很多可以從磁盤緩存的東西,它就不會真正填滿你所有的空閒內存 - 它只能緩存 你實際使用過的,現在卻不是除非你的正常活動包括大量的photoshop等,或者計算機是一個擁有大量靜態文件的繁忙服務器,否則它可能不會超過幾GB。 - goldilocks
@goldilocks顯然“過了一段時間”是模糊的,但意味著“經過這樣的持續時間,Windows和應用程序已經導致加載足夠的數據超過4GB”。我的使用是相當常規的,並且經常超出這個範圍。關鍵在於,如果達到此限制,則可能是解決約束而不是不需要更多緩存。 - Paul


等式的另一部分是如何配置記憶棒。具體來說,現代主板支持雙通道內存,可以讓你的主板和內存之間的帶寬加倍;如果你有配對的內存並且你拿出了每對中的1個,那麼你已經丟失了這個,因此在進行大量內存傳輸時你的內存訪問將會減少,這會導致操作花費更長的時間。 (相反,如果你碰巧有8千兆的快速內存搭配8 Gigs較慢的內存並且只使用8個演出,那麼取出8個慢速並且修復速度更快的應該可以讓你跑得更快,因為你還有雙通道但不是它不需要放慢到最慢的記憶)

但是,總的來說,其他答案中提到的緩存內容將會對整體性能產生更大的影響。


9
2017-07-23 16:55





卸下16GB內存的一半會降低計算機速度。

即使您從未使用接近8GB的內存,也可以使用此功能。

其他答案涵蓋了它的軟件方面,歸結為操作系統選擇使用RAM而不是磁盤。

但是,通過將可用RAM量減半,您可能會看到硬件驅動的性能損失。 原因是RAM總線使用多通道架構,這意味著計算機可以同時在多個RAM模塊之間傳輸數據。

可能你的電腦是雙通道的。在這種情況下,您可以刪除4個4GB RAM模塊中的2個,而不會影響硬件性能。但是,從2個8GB RAM模塊中刪除1個將影響性能。

如果你有一個四通道RAM架構,即使你的RAM是4GB模塊,你也會看到一個性能命中。


3
2017-07-28 07:09





如果內存最大或99%,由於頁面文件位於硬盤上,您將失去速度。硬盤甚至無法接近RAM的速度,因為CPU根據總線速度直接訪問RAM。

Windows使用大約3-4 GB的ram空閒時間而不計算其他應用程序。我多年來一直運行16 GB,實際上從未需要超過8 GB。實際上,平均PC用戶從不使用超過4-6 GB的遊戲。我只看到它壓縮電影一次接近12 gb或做一些RAM密集型通常與多媒體有關,多核CPU將是你需要超過8GB的唯一方法。是的,它會以同樣快的速度運行。 IMO。

1天正常運行後閒置: enter image description here enter image description here

2天正常運行後空閒: enter image description here enter image description here

Windows內存越多,它似乎使用的內存越多。

enter image description here

在Windows 7中,利用RAM來使某些進程更快,這是一個例子。

enter image description here

Chkdsk最大化RAM以加速緩存反過來加快了性能和磁盤檢查時間,所以在這種情況下更多事實上=更快...


2
2017-07-23 04:51



Windows 7的?即使有很多東西,我也很難超過2G。 - Simon Kuang
Windows 7擁有的RAM越多,它將使用的越多......超時它會因你打開的程序而波動,並且當前打開,直到服務和應用程序釋放內存它會穩定地波動..關於實際問題。 8GB是否會快到16GB是和否取決於您使用計算機的用途。在正常情況下,如果用於遊戲或網頁瀏覽等常見用途,則不應超過8GB,並且不會發現真正的性能損失。 - MORBiD


在實踐中,答案更可能是所述問題的“否”。 Q.說“(使用)永遠不會達到8 GB”,並提到“相同類型的內存”,因此影響速度(磁盤緩衝)的最可能因素不會受到影響。一個常見的實際例子是具有足夠內存來緩衝整個硬盤的數據庫服務器 - 例如,4GB的文件和2GB的進程/系統分配的內存不會受益於超過8GB的內存。

例外:

更多內存可以減慢休眠 - 在我的系統上使用32GB內存和SSD磁盤時,冷啟動比從休眠狀態喚醒它要快得多,因為它可以節省整個32GB的休眠時間,但冷啟動需要的內存要少得多。減少內存會加快系統速度。

如果您訪問更多的硬盤會更快,並且大多數人擁有的磁盤使用量比剩餘的內存用於緩衝更多,因此額外的內存會有所幫助。此外,許多操作系統僅將部分使用情況報告為“使用”,其餘部分計為緩衝而非“使用”。 (Linux報告使用包括在內並且不包括緩衝)。

內存通道會影響性能:[如果刪除內存意味著減少使用的內存通道數量,那麼系統會因為Foon正確指出而減慢速度]

[編輯:] David Schwartz評論說,降低內存可以減少Windows下私有的,可修改的內存映射的限制。 Windows顯然將這些保留的總數限制為內存加交換的總數,因此即使報告了“空閒內存”,您也可能會耗盡此資源(因為在訪問頁面之前未分配實內存/交換,因此不是算作內存使用情況)。 Linux的行為方式不同 - 每個進程可以分配最多的內存和交換大小,並且所有進程的總數可以超過內存和交換的總和。


2
2017-07-23 13:38



你基本上只是斷言“不”是正確的答案但不說明原因。 - David Schwartz
這是對接受的答案的回應 - 我沒有代表點直接評論它 - 抱歉混淆。為了澄清,如果不是很明顯,你只使用與實際讀取或寫入一樣多的內存用於硬盤緩衝 - 如果沒有那麼多磁盤使用,或者從未訪問過,那麼額外的內存就不會有所作為。 - iheggie
我給出的數據庫服務器示例是一個示例,其中額外的內存沒什麼區別 - 所有使用中的磁盤都被緩衝。 - iheggie
事實上,更多的RAM意味著更多的後備存儲可能允許操作系統允許分配它否則會拒絕? - David Schwartz
在我的DB服務器示例中 - 沒有任何區別,因為它永遠不會因為缺少可用內存而拒絕分配。如果a,O / S拒絕分配什麼。記憶中的所有過程,b。整個磁盤已經緩存在內存中,c。它有免費記憶和d。沒有超出其他一些限制(例如最大過程/緩衝區/可尋址大小限制)? - iheggie


內存碎片是額外內存的另一個原因。如果你有8GB的RAM,並且你傾向於使用80%,特別是在現代使用情況下(有大量的內存交換,例如打開和關閉瀏覽器標籤),你最終會得到重大的碎片。

添加額外的8GB RAM使操作系統更有可能找到連續的可用內存空間,這意味著需要不太頻繁的重新啟動來避免性能下降。


0
2017-07-26 03:31



我的理解是,內存碎片可能發生在進程的內存空間中,這在典型的現代系統上是虛擬的,並且它通常不適用於系統。由於物理內存被分為多個頁面,這些頁面被單獨映射到進程的虛擬內存空間中,因此碎片化將是一個無法解決的概念。如果我誤解了某些內容,請糾正我。 - Thomas Padron-McCarthy


可能,但不一定。除此之外,RAM允許計算機做的事情之一是允許應用程序分配他們可能永遠不會使用的內存。如果系統沒有足夠的後備存儲(包括RAM)來允許它到目前為止發出的每個分配消耗盡可能多的內存,操作系統將不得不拒絕這些分配或過度使用。有些操作系統從不過度使用,幾乎所有現代操作系統都限制了它們允許的過度使用量。

因此,未使用的內存可以通過允許可能需要RAM成功的操作來提高性能,否則它們將失敗。


0
2017-07-26 18:38





更多ram不會加速計算機。較少的ram“減慢”計算機的速度。

計算機具有物理最大速度(這也包括超頻),沒有什麼能比它更快。


-1
2017-07-23 15:06



如Wyzard的回答所示,“計算機”作為一個整體,包括磁盤訪問,其中更多ram提供更多緩存,因此加快了速度。 - please delete me
你的意思是我們可以通過在其上添加數TB的ram來增加計算機的物理速度限制嗎? - Xtro
考慮到硬盤驅動器,是的。 - please delete me
順便說一句,較少的RAM也不總是減慢計算機的速度。 L3緩存很多次 放緩 計算機因緩存未命中而導致。 - please delete me
我發現你的答案是同義的。是的,CPU的“最大速度限制”是CPU的最大速度。不錯的表演。但是,從一個 實際的 與具有足夠RAM的PC相比,具有多餘RAM的PC將表現得更快一些。 - Joe