
什么是虛擬內(nèi)存?現(xiàn)在有必要存在嗎?
使用電腦的朋友應(yīng)該知道虛擬內(nèi)存。它比一些年輕的朋友更老。早在windows2000年代,就有虛擬內(nèi)存選項(xiàng)。雖然我們總是看到這個(gè)東西,但很多朋友不明白虛擬內(nèi)存的用途,那么什么是虛擬內(nèi)存呢?
事實(shí)上,虛擬內(nèi)存最初存在的原因是當(dāng)時(shí)計(jì)算機(jī)內(nèi)存有限,系統(tǒng)和CPU有32位,支持物理內(nèi)存的32位極限為3.25G。在處理一些大型應(yīng)用程序時(shí),虛擬內(nèi)存往往會(huì)出現(xiàn)。虛擬內(nèi)存實(shí)際上是硬盤空間的一部分作為內(nèi)存使用,在內(nèi)存讀取順序的最終優(yōu)先級(jí),應(yīng)用程序認(rèn)為他們是在一個(gè)連續(xù)完整的物理內(nèi)存空間,實(shí)際上程序已經(jīng)分為多個(gè)物理內(nèi)存碎片,部分碎片存儲(chǔ)在虛擬內(nèi)存,即硬盤預(yù)留空間,將使用這部分?jǐn)?shù)據(jù)提取到內(nèi)存,因此呈現(xiàn)出提高內(nèi)存大小、提高運(yùn)行速度的錯(cuò)覺。
只有windows有這個(gè)功能嗎?事實(shí)上,這個(gè)功能也存在于linux上,但它的名字不是虛擬內(nèi)存,而是“交換空間”,其原理和功能相同。那它的詳細(xì)原理是什么呢?我們知道,即使打開虛擬內(nèi)存,硬盤上也不會(huì)有很多文件。事實(shí)上,原理是:CPU首先檢查應(yīng)用程序的數(shù)據(jù)是否存在于物理內(nèi)存中。如果存在,則直接調(diào)用。如果沒有,則將其放入硬盤中。這些文件不會(huì)直接放入硬盤的正常位置,而是放入一個(gè)名為Pagefile的文件.在sys文件中;當(dāng)程序所需的數(shù)據(jù)無法在物理內(nèi)存中找到時(shí),將虛擬內(nèi)存中的文件調(diào)動(dòng)回物理內(nèi)存。

說了這么多,如何設(shè)置虛擬內(nèi)存?根據(jù)目前的建議,在大多數(shù)情況下,建議將虛擬內(nèi)存設(shè)置為物理內(nèi)存的1.倍至3倍。雖然windows會(huì)自動(dòng)為您設(shè)置虛擬內(nèi)存的大小,但您仍然可以手動(dòng)設(shè)置。所以現(xiàn)在我們已經(jīng)進(jìn)入了64個(gè)時(shí)代,每個(gè)人的計(jì)算機(jī)內(nèi)存容量都在增加,16G已經(jīng)成為一個(gè)正常的水平,虛擬內(nèi)存仍然需要存在嗎?
事實(shí)上,有一些,但不是所有的情況。在我們的日常使用過程中,16G內(nèi)存足以支持我們完成大部分工作,但虛擬內(nèi)存的存在有時(shí)與物理內(nèi)存的大小無關(guān),如深度學(xué)習(xí)、科學(xué)實(shí)驗(yàn)計(jì)算等應(yīng)用程序,他們的軟件將自動(dòng)將大量數(shù)據(jù)放入虛擬內(nèi)存,小心使用這些軟件的用戶應(yīng)該發(fā)現(xiàn),無論他們的內(nèi)存有多大,虛擬內(nèi)存中總會(huì)有幾個(gè)G數(shù)據(jù)。
這部分?jǐn)?shù)據(jù)不放入內(nèi)存的原因很簡(jiǎn)單:需要調(diào)用次數(shù)少,占用空間大,軟件會(huì)自動(dòng)放入虛擬內(nèi)存,節(jié)省物理內(nèi)存空間,在某種程度上是一把雙刃劍,如果你關(guān)閉虛擬內(nèi)存會(huì)使軟件不適應(yīng)和問題;此外,高操作軟件會(huì)吃內(nèi)存,虛擬內(nèi)存的存在是為了滿足這些軟件的內(nèi)存攝入,有些軟件甚至對(duì)虛擬內(nèi)存有針對(duì)性的要求,如果不打開虛擬內(nèi)存軟件就會(huì)報(bào)錯(cuò)。
一般來說,虛擬內(nèi)存已經(jīng)成為我們系統(tǒng)使用過程中的一個(gè)重要功能。即使許多軟件只能使用1G內(nèi)存,它們也必須在虛擬內(nèi)存中占用一點(diǎn)。如果關(guān)閉,甚至?xí)?dǎo)致軟件崩潰。就目前的內(nèi)存容量而言,8G內(nèi)存建議分配20G虛擬內(nèi)存,16G內(nèi)存足以分配24G,如果分?jǐn)?shù)太大,硬盤的壽命會(huì)因?yàn)橛脖P的大規(guī)模連續(xù)讀寫而嚴(yán)重降低。