3. 物理內(nèi)存充足時(shí)分頁文件工作嗎 雖然實(shí)測結(jié)果表明分頁文件對于目前的大內(nèi)存系統(tǒng)仍然有提高性能的作用,但我敢說,很多網(wǎng)友肯定還有另外一個(gè)疑慮——分頁文件到底和物理內(nèi)存是個(gè)啥關(guān)系?頻繁的硬盤讀寫難道真不會(huì)拖累系統(tǒng)運(yùn)行么?
要回答這個(gè)問題其實(shí)也很簡單,只要借助一款第三方軟件——AIDA64就可以了。上圖是硬件檢測軟件AIDA64對筆者電腦的檢測,可以看到當(dāng)前電腦的存儲系統(tǒng)是由4GB物理內(nèi)存、4GB分頁文件共同組成,其中物理內(nèi)存+分頁文件的總和被AIDA64稱作交換區(qū)(Windows稱“虛擬內(nèi)存”)。那么當(dāng)一款程序啟動(dòng)時(shí),它究竟會(huì)首先使用物理內(nèi)存?還是按照整個(gè)虛擬內(nèi)存的概念同步使用呢? 這里需要說明的是,微軟有關(guān)虛擬內(nèi)存的定義是與AIDA64不同的,它是將物理內(nèi)存+分頁文件視為一個(gè)虛擬內(nèi)存(相當(dāng)于AIDA64中的“交換區(qū)”),而AIDA64則是將物理內(nèi)存+交換區(qū)視為虛擬內(nèi)存。說實(shí)話AIDA64的這種劃分比較令人費(fèi)解,因?yàn)閷⒁粋(gè)現(xiàn)實(shí)數(shù)值(物理內(nèi)存)與一個(gè)虛擬數(shù)值(交換區(qū))合并原本就沒有什么實(shí)際意義。因此這里我們主要還是以微軟定義為準(zhǔn)。 最終答案非常明顯,就是當(dāng)物理內(nèi)存用盡后,Windows才會(huì)啟用分頁文件。如果你不信,不妨也像我一樣打開AIDA64(軟件支持實(shí)時(shí)更新,可以很直觀地看到各個(gè)數(shù)值的變化),然后隨意啟動(dòng)幾款程序,觀察一下“頁面文件”的數(shù)值變化。你會(huì)發(fā)現(xiàn)隨著程序啟動(dòng),物理內(nèi)存和交換區(qū)數(shù)值都在持續(xù)變化,唯獨(dú)頁面文件卻始終保持著0MB。 換句話說,在物理內(nèi)存可以滿足當(dāng)前需要時(shí),Windows并不會(huì)棄用高速內(nèi)存而選用速度更慢的硬盤文件(分頁文件),因此我們絲毫不必?fù)?dān)心開啟分頁文件會(huì)影響系統(tǒng)整體性能,除非是你的物理內(nèi)存真的無法滿足系統(tǒng)需要。 4. 分頁文件如何設(shè)置才合理 那么又一個(gè)問題來了,如果說分頁文件在現(xiàn)今的Windows中仍然有利無弊的話,那么我們究竟是應(yīng)該讓W(xué)indows自行管理,還是給它設(shè)定一個(gè)具體的數(shù)值呢? 有關(guān)這個(gè)問題,筆者曾經(jīng)和一位微軟工程師聊過,雙方的焦點(diǎn)在于,分頁文件是一項(xiàng)很古老的設(shè)置,最初是將其設(shè)定為一個(gè)可變量,官方推薦是物理內(nèi)存的1.5倍(即你在系統(tǒng)→分頁文件設(shè)置框內(nèi)看到的推薦值)。 但要注意的是,這條規(guī)則的設(shè)計(jì)背景是在數(shù)十年前,那時(shí)的內(nèi)存普遍只有幾十兆(服務(wù)器也不過如此)。但時(shí)至今日,當(dāng)物理內(nèi)存已經(jīng)跨入GB時(shí)代,甚至個(gè)別用戶已經(jīng)用上16GB以上的超大內(nèi)存,再去一昧照搬從前的標(biāo)準(zhǔn)顯然并不適合。
依然還是開頭圖書館的例子,現(xiàn)在的情形可以變更為館藏容量未變(10000本),但每人每次的可借閱數(shù)升級為15本(即物理內(nèi)存變大了),相應(yīng)門口小書架的圖書量也增加為500本(分頁文件按比例擴(kuò)大)。那么問題來了,如果說50本的小書架可以幫我們提高效率的話,那么500本書架所消耗的時(shí)間又是多少?如果碰巧這500本中仍然沒有你想要的,需要重新進(jìn)入圖書館(10000本)里繼續(xù)查找的話,系統(tǒng)效率不慢才怪。 回到現(xiàn)實(shí)版中來,小書架容量的暴增其實(shí)就相當(dāng)于分頁文件擴(kuò)張(比如16GB內(nèi)存按微軟標(biāo)準(zhǔn)計(jì)算就是16GB~24GB),那么在現(xiàn)行機(jī)械硬盤的讀取速度下(這里不考慮隨機(jī)讀取與線性讀取區(qū)別),若想遍歷一遍16GB或者24GB空間所花費(fèi)的時(shí)間,恐怕也是相當(dāng)大的。換句話說,如此一來分頁文件非但沒有提高系統(tǒng)性能,反而真的會(huì)成為系統(tǒng)性能的拖累! 為了更好地說明結(jié)果,我們?nèi)匀煌ㄟ^PCMark 7進(jìn)行了一次基準(zhǔn)測試。與先前測試略有不同的是,此次主要是對分頁文件的大小進(jìn)行了調(diào)整,根據(jù)測試機(jī)內(nèi)存劃分為“系統(tǒng)托管(實(shí)測為4GB)”、“512MB”、“2GB”、“4GB”幾檔,當(dāng)然也沒忘增加了一個(gè)大容量“12GB”。
最終結(jié)果一目了然,隨著分頁文件的增長,系統(tǒng)評分開始成比例提高,到達(dá)4GB時(shí)幾乎出現(xiàn)了此次評測最好的成績。但當(dāng)筆者人為將其升至12GB時(shí),整體評分又有了明顯下降,從而最終佐證了我們先前的推測。 雖然上述測試已經(jīng)大體推算出一個(gè)分頁大小,但我們并不建議所有用戶都采用這一設(shè)置。原因就是每個(gè)人的硬件配置各有不同,大鍋飯式設(shè)置并不一定適合每一個(gè)人?紤]到分頁文件大小可能對性能的影響,我們建議在用戶內(nèi)存不超4GB的情況下,可以選擇由Windows自行托管,而當(dāng)用戶內(nèi)存高于4GB,則應(yīng)使用手工設(shè)置的方法,將分頁文件限定在一個(gè)范圍之內(nèi)(建議不超6GB),這樣既可保證系統(tǒng)正常的吞吐需求,也不至于因分頁文件過大而拖累系統(tǒng)速度! 此外對于動(dòng)手能力較強(qiáng)的網(wǎng)友,也可自行通過“性能監(jiān)視器”(perfmon.msc)添加一個(gè)“Paging File Usage”來統(tǒng)計(jì)自己電腦中分頁文件的實(shí)際利用率,借此精確計(jì)算出自己的電腦究竟適合多大的分頁文件。只不過考慮到該步驟操作較為繁瑣,這里就不單獨(dú)介紹了。 寫在最后 事實(shí)上就像Windows中的很多組件一樣,虛擬內(nèi)存并不像大家想象得那樣簡單,除了眾所周知的補(bǔ)充內(nèi)存功能外(實(shí)際上現(xiàn)在這個(gè)用途已經(jīng)很少會(huì)用到了),它還承擔(dān)著提高物理內(nèi)存命中率及穩(wěn)定性的作用。甚至某些時(shí)候,Windows的一些核心功能也會(huì)用上虛擬內(nèi)存(如SuperPrefetch、內(nèi)存轉(zhuǎn)儲等)。 此外個(gè)別第三方軟件(如Photoshop、3Dmax等)也是虛擬內(nèi)存的忠實(shí)擁護(hù)者,強(qiáng)行關(guān)閉很可能導(dǎo)致運(yùn)行出錯(cuò)或崩潰。當(dāng)然考慮到硬盤開銷及整體運(yùn)行效能,用戶最好根據(jù)自身?xiàng)l件對分頁文件大小進(jìn)行限定,盡量不要讓分頁文件過于龐大?傊谶@個(gè)問題上,并沒有什么一定之規(guī),更多的是需要使用者靈活處理。
附:幾個(gè)小問題的解答: 1. 分頁文件移至別的分區(qū)是否可提高性能? 根據(jù)微軟的設(shè)計(jì),操作系統(tǒng)允許同時(shí)建立多個(gè)分頁文件,而且Windows會(huì)很智能地從中挑選出性能最高的進(jìn)行讀取。但要注意的是這個(gè)設(shè)計(jì)只針對于多塊硬盤,比如你的Windows裝在硬盤1,而分頁文件設(shè)在硬盤2,那么由于操作系統(tǒng)可以同時(shí)從兩塊硬盤上讀取數(shù)據(jù)(一塊讀取操作系統(tǒng),一塊讀取分頁文件),最終結(jié)果就是Windows的效率大增。但如果用戶只有一塊硬盤,將分頁文件由C盤轉(zhuǎn)移至其他分區(qū),理論上并不會(huì)有明顯改進(jìn),除非是你的C盤空間過于緊張! 2. 設(shè)固定大小可否減少硬盤碎片? 有人認(rèn)為Windows默認(rèn)的可變大小,常常是導(dǎo)致分頁文件出現(xiàn)碎片的主要原因,這個(gè)問題我們需要從另一個(gè)角度考慮。正如大家已知的,分頁文件的一個(gè)重要特性是作為內(nèi)存補(bǔ)充使用(雖然這種情況目前已經(jīng)很少,但不排除完全沒有),因此當(dāng)你偶然遇到一個(gè)極耗內(nèi)存程序時(shí),還是有可能將虛擬內(nèi)存耗盡并導(dǎo)致最終崩潰。那么此時(shí)如果使用的是默認(rèn)可變內(nèi)存,相當(dāng)于給了Windows一次騰挪輾轉(zhuǎn)的機(jī)會(huì),也許崩潰就不會(huì)發(fā)生。 當(dāng)然這里要特別說一句的是,如果你的虛擬內(nèi)存大小合理,一般情況下是不會(huì)導(dǎo)致Windows隨意調(diào)整分頁文件大小的,而這樣的話產(chǎn)生磁盤碎片的機(jī)率也就不是很多了。 |