php小編草莓揭開了一個備受爭議的問題:「電腦加記憶體會變快嗎?」經過深入研究和實驗,我們終於揭曉了答案。增加記憶體確實可以讓電腦變快!記憶體是電腦中儲存和處理資料的重要元件,它的大小直接影響電腦的效能。透過增加內存,電腦可以更快地運行程式和處理任務,提高整體速度和響應速度。接下來,我們將詳細解釋記憶體對電腦效能的影響原理,並給出一些實用的建議。
今天聊一個簡單的問題,增加更多記憶體會讓你的電腦速度變快嗎?
要想解決這個問題,我們要知道cpu、記憶體與程式這幾者的關聯,其實非常簡單:
首先,可執行程式儲存在磁碟中,包括機器指令和相關資料。
程式運行時首先被載入(load)到記憶體中,被載入到記憶體中的程式搖身一變就成為了我們說的進程,當然,記憶體中還運行著另一種特殊的程式:操作系統。
只有當CPU真正執行機器指令時對應的進程才開始運行,此時CPU不斷的從記憶體中取出指令並執行指令,當然除了機器指令外還需要讀取記憶體中的資料。
可以看到,當程式運行時與CPU交互的是內存而不是磁盤,內存中存儲指令和數據、而CPU使用指令和數據,因此從這個角度看這是一個類似生產者與消費者問題,記憶體就好比主廚、CPU好比食客,如果主廚上菜太慢那麼食客就要挨餓。
除此之外,作業系統對記憶體的使用也不可忽略。
作業系統是如何利用記憶體的?
為充分利用記憶體與磁碟資源,現代作業系統中有很多非常聰明的設計。
由於CPU一次只能運行一個程序,即使在多核心系統中一般來說同時存在的進程數遠遠多於核數,也就是說在某一個時刻並不是所有的程序都在運行,即使對正在運行的進程來說由於局部性原理的存在,進程位址空間中總會有一部分指令或資料是暫時用不到的。
基於這些,作業系統先驅們看到了可以充分利用記憶體的機會,我們可以將暫時用不到的指令或資料放到磁碟上去(swap out),當使用這些資料或指令時再從磁碟載入到記憶體(swap in),這樣記憶體中不就有更多空間運行更多進程了嗎,這種想法在作業系統中被稱之為demand paging,屬於虛擬記憶體的一部分。
其次,作業系統會將剩餘的空閒記憶體當作磁碟緩存,有時當系統負載較低時我們的程式並不能充分利用內存,那麼這些空閒的內存就真的毫無用處了嗎?顯然不是的,我們知道磁碟是一種低速的儲存設備,既然這樣為什麼不把空閒的實體記憶體當作磁碟的快取呢?
大家可能都有這樣的體驗,開始開啟一個全新的檔案時通常會比較慢,但當你再次使用該檔案時將明顯感覺到速度會快很多,背後的原理就在於此,如果此時你的記憶體不足,那麼作業系統就沒有那麼多的空閒記憶體來做磁碟緩存,此時你將真正體驗到磁碟蝸牛般的速度。
現在,我們就可以回答開始提出的問題了,增加記憶體會加快電腦運行速度嗎?顯然這樣分為兩種情況來討論。
記憶體充足
如果你的記憶體本身就很充足,那麼在這種情況下增加更多記憶體將不會讓你的電腦跑的更快,因為CPU作為食客吃飯的速度是有限的,大廚做的菜再多也沒有,你也沒辦法讓食客吃的再快一些。
這就好比你問給一輛卡車裝更多輪子會讓卡車跑得更快嗎?
答案顯然不是的,儘管這並不能讓卡車跑得更快,但增加更多輪子會讓貨車有更高的載重。
對記憶體來說也是這樣,儘管增加更多記憶體並不能讓電腦跑得更快,但這顯然會讓我們可以同時運行更多程式。
增加更多記憶體意味著你可以同時開啟更多瀏覽器網頁、可以同時開啟更多虛擬機器、同時渲染更多高清影片、同時處理更多複雜的3D模型、同時訓練更多機器學習模型等等,此時你的記憶體不是瓶頸,CPU將很可能成為瓶頸,因為CPU的運行速度也就是每秒執行的機器指令數量是有限的。
內存不足
此時大廚上菜速度太慢,食客總是挨餓,因此大廚需要上更多的菜。
我們知道,大部分程式在運行過程中會頻繁地申請內存,申請內存是一項看似簡單實際上非常複雜的操作、尤其是在系統記憶體不足的場景下,此時申請記憶體往往涉及到更多複雜的查找或異常處理,這時我們的程式運行速度將會明顯變慢。
記憶體不足時磁碟與記憶體之間可能會有更多的交換,此時系統的速度將受限於磁碟,並且由於不能快取磁碟文件, 那麼我們開啟進程或開啟文件的速度將明顯變慢。
在這種情況下增加記憶體將更好地餵飽CPU,因此將顯著加快電腦的運行速度。
總結
從上述分析我們知道,關於增加記憶體是否可以加快電腦速度取決於你的場景,如果你的裝置記憶體充足,那麼此時增加記憶體不會明顯加快電腦運行速度
以上是電腦加記憶體會變快嗎 必看:增加記憶體會讓電腦變快,答案終於揭曉了的詳細內容。更多資訊請關注PHP中文網其他相關文章!