虛擬內存是什麼?現在還有必要存在了嗎?

用電腦的朋友應該都知道虛擬內存這個東西,它存在的時間比一些年齡小的朋友歲數還大,早在windows2000時代就已經存在虛擬內存選項,雖然我們總是看到這個東西但很多朋友並不明白虛擬內存到底有什麼用,所以虛擬內存到底是什麼?

虛擬內存是什麼?現在還有必要存在了嗎?

其實虛擬內存最開始存在的起因是因為當時的電腦內存有限,系統和CPU均為32位,而32位支持物理內存的極限為3.25G,在應對一些大型應用的時候經常會捉襟見肘,於是虛擬內存便應運而生。虛擬內存其實就是將一部分硬盤空間劃分出來當做內存來使用,放在內存讀取順序的最末端優先度上,應用程序認為自己是在一個連續完整的物理內存空間上,而實際上該程序已經被分割成為多個物理內存的碎片,一部分碎片被存放在虛擬內存也就是硬盤的預留空間上,在將要被使用時這部分數據被重新提取到內存中,於是呈現出一種內存大小提高的假象,提高運行速度。

虛擬內存是什麼?現在還有必要存在了嗎?

那麼只有windows有這個功能嗎?其實在linux上同樣也存在這個功能,只不過它的名字不叫虛擬內存,而是叫做“交換空間”,原理和作用都是一樣的。那麼它詳細的原理是什麼?我們知道即使開了虛擬內存,硬盤上也不會出現一大堆文件,其實原理是這樣的:CPU先查詢應用程序的數據是否存在於物理內存上,如果存在的話就直接調用,沒有的話就放入硬盤中,而這些文件並不會直接放進硬盤的正常位置,而是放進一個名為Pagefile.sys的文件中;當該程序需要的數據在物理內存中無法尋找到時,虛擬內存中的文件便會被調動回物理內存。

虛擬內存是什麼?現在還有必要存在了嗎?

說了這麼多,虛擬內存該怎麼設置?根據目前的建議來看虛擬內存大多數情況下建議設置1.倍到3倍於物理內存的大小,雖然windows會自動為你設置虛擬內存的大小,不過你依然可以手動設置。那麼如今大家早已進入64位時代,每個人的電腦內存容量都越來越大,16G已經成為了正常水平,虛擬內存是否還有存在的必要?

其實是有的,但不是所有情況。在我們日常使用過程中16G內存足夠支撐我們完成絕大多數工作,但虛擬內存的存在有時候和物理內存的大小無關,例如深度學習、科學實驗計算等應用程序,他們的軟件會自動將大量數據放入虛擬內存中,細心且用過這類軟件的用戶應該會發現不論自己內存有多大,在虛擬內存中總會有幾個G的數據。

虛擬內存是什麼?現在還有必要存在了嗎?

這部分數據不放進內存的原因很簡單:需要調用的次數並不多且佔用空間極大,軟件會自動為你放入虛擬內存來節省物理內存空間,這種做法從某種程度上來說是雙刃劍,如果你關閉了虛擬內存反倒會讓軟件產生不適應從而出現問題;除此之外高運算的軟件都會非常吃內存,虛擬內存的存在就是為了滿足這類軟件的內存攝入,甚至有的軟件對虛擬內存有著針對性需求,如果沒有打開虛擬內存軟件就會報錯。

虛擬內存是什麼?現在還有必要存在了嗎?

總體來說虛擬內存已經成為了我們系統使用過程中的一個重要功能,不少軟件就算只能用得上1G內存也非要分出一點佔用在虛擬內存中,如果關閉的話甚至會導致軟件崩潰,以目前我們內存容量來說8G的內存建議分配20G虛擬內存,而16G內存的話分配24G就足夠了,如果分的太大反而會因為硬盤的大規模連續讀寫而導致硬盤壽命嚴重降低。


分享到:


相關文章: