當前位置:編程學習大全網 - 腳本源碼 - 什麽是虛擬內存優化?有什麽用,怎麽做?

什麽是虛擬內存優化?有什麽用,怎麽做?

虛擬內存的合理設置

現在內存的價錢越來越便宜,很多新裝機的朋友都已經在使用1GB的內存,而還有很多人也在給老電腦的內存升級。在升級了物理內存之後,如何有效設置虛擬內存才能獲得最大限度的性能提升?網上流傳的壹些優化虛擬內存的方法真的有效嗎?這些就是本文將要討論的內容。

網上有很多廣泛流傳的關於虛擬內存優化的技巧,其實很多都是經不起推敲的。大家壹起來看看吧。

觀點壹:對於擁有大容量物理內存的用戶,可以完全禁用虛擬內存。要徹底了解這個問題,首先得明白什麽是虛擬內存,以及虛擬內存有什麽作用。在早期,因為內存價格非常昂貴,因此壹般電腦上都不會配置太多,那麽有時候如果操作系統和應用程序需要的內存數量超過了計算機中安裝的物理內存數量,操作系統就會暫時將不需要訪問的數據通過壹種叫做“分頁”的操作寫入到硬盤上壹個特殊的文件中,從而給需要立刻使用內存的程序和數據釋放內存。這個位於硬盤上的特殊文件就是分頁文件(也就是虛擬內存文件或叫做交換文件)。對於Windows 2000/XP/2003操作系統,分頁文件名為pagefile.sys,默認情況下位於操作系統所在分區的根目錄下。

既然知道了虛擬內存的由來和作用,那麽持這種理論的人認為,硬盤和內存的速度具有天壤之別,如果禁用了虛擬內存,系統就不需要花時間將內存中的數據分頁到硬盤上,從而提高了系統的運行效率。然而根據傳統的設計,Windows 的許多核心功能都需要使用分頁文件,而如果妳禁用了所有分頁文件,有些第三方的應用軟件都可能會遇到內存不足的錯誤。其實在不需要的時候,Windows並不會使用分頁文件,因此這樣調整系統妳並不能獲得任何性能上的提高。

觀點二:對於虛擬內存,建議的設置是物理內存數量的1.5-2倍(分別為虛擬內存的最小值和最大值)。在討論這個問題之前首先看兩種情況:有兩臺電腦,除了內存,其他所有配置都相同。電腦A擁有128MB內存,電腦B擁有1GB內存,這兩臺電腦都運行Windows XP操作系統。按照這個觀點的方法設置,電腦A的虛擬內存將會設置為192MB-256MB,而電腦B的虛擬內存將會設置為1.5GB-2GB。那麽實際使用中呢,電腦A很可能會在運行大型軟件或者遊戲的時候產生虛擬內存不足的問題,而電腦B則會因為設置了如此大的分頁文件而導致硬盤空間的浪費。如何根據實際情況設置虛擬內存,這個我們會在下文中介紹。

觀點三:我們可以使用內存釋放軟件將運行中的程序占用的內存釋放出來,提高系統運行效率。在否定這個觀點之前我們首先要明白壹件事,任何程序,只要被執行,就會占用壹定的內存空間(具體占用多少內存則取決於程序自己的體積以及載入的數據文件的大小),那麽這種所謂的內存釋放軟件是如何生效的?軟件並沒有退出,從哪裏釋放內存呢?原來這種“優化”軟件會把程序占用的內存全部分頁到虛擬內存中,從而造成了物理內存被釋放的“假象”。

安裝有這類軟件的朋友可以試試看,打開Windows任務管理器,打開進程選項卡,接著在“查看”菜單下選擇“選擇列”命令,在隨後出現的選擇列對話框中選中“虛擬內存大小”這壹選項。接著妳的任務管理器將會變成類似圖壹的樣子。

記住幾個占用內存比較多的進程各自使用的內存數和虛擬內存數,然後使用內存釋放軟件進行釋放。本文將會使用微軟發布的Windows Server 2003 Resource Kit工具empty.exe,該工具前段時間在網上非常風光,很多人都宣稱具有釋放空閑內存的作用(雖然還有其他釋放內存的工具,不過原理上都是壹樣的)。運行“empty *.*”,可以看到,在短時間內,之前占用了大量物理內存的進程占用的物理內存數量都變得很少,而虛擬內存用量增加了(圖二),但是這種現象只持續了很短的時間。馬上,這些進程占用的物理內存數量又開始回升了。

因此可以說,這類釋放內存的軟件根本沒有太大作用。相反,有些軟件可以在內存占用達到壹定程序之後自動釋放內存,這可能會對本身就已經很繁忙的計算機雪上加霜。想象這種情況,當妳內存數量不多,而又運行了比較大型的程序後,必然導致物理內存數急劇減少,而在這種情況下所謂的“優化軟件”開始自作聰明,把占用內存的數據往硬盤上進行分頁,而程序的運行需要這些數據,這可能導致了在同壹時間內,“優化軟件”試圖將數據分頁到硬盤,而操作系統試圖將數據從硬盤讀取到內存,極大增加了硬盤的讀寫。

其實在早期,這類程序還是有壹定作用的,那時候主流的Windows 9x操作系統本身在內存管理上存在問題,而且有些設計不嚴謹的程序也可能存在內存泄露的Bug,因此這類軟件應運而生。但是現在基於NT技術的Windows操作系統在內存管理上得到了極大提高,同時大部分軟件的設計也越來越合理,因此我們完全可以和這類軟件說再見了。

說了這麽多網上流傳的錯誤觀點,那麽我們該怎樣設置才能達到最佳性能呢?

首先看看如何確定虛擬內存的大小。在前面我們已經說過了,嚴格按照1.5-2倍的倍數關系來設置並不科學,因此我們可以根據系統的實際應用情況進行設置。在這過程中需要用到Windows 2000/XP Pro/2003自帶的性能監視器。

運行“perfmon.msc”打開性能監視器,展開左側的性能日誌和警報,並點擊選擇記數器日誌,在右側的面板中空白處點擊鼠標右鍵,選擇新建日誌設置,並命名為Pagefile,然後回車確認,然後會出現圖三所示的窗口。

在常規選項卡下,點擊添加記數器按鈕,在新彈出的窗口的性能對象下拉菜單中選擇Paging File,並選擇“從列表選擇記數器”,然後點擊% Usage Peak,在範例中選擇“_Total”,並接著點擊“添加”按鈕,完成的設置應該跟圖四壹樣。

然後關閉這個窗口,並點擊圖三中的“確定”按鈕。點擊“是”創建日誌文件。接著打開“日誌文件”選項卡,在日誌文件類型下拉菜單中選則“文本文件(逗號分隔)”,然後記住“例如”框中顯示的日誌文件的路徑。

這樣,點擊確定後這個記數器已經開始運行了,妳可以在電腦上進行妳的日常操作,並盡可能多的打開和關閉各種經常使用的應用程序和遊戲。經過幾個小時的使用,基本上記數器已經可以對妳的使用情況做出壹個完整的評估。

這時妳需要先停止這個記數器的運行,同樣是在記數器日誌窗口中,選中我們新建的Page File記數器,然後右鍵點擊,並且選擇停止。用記事本打開日誌文件,妳看到的結果應該跟圖六類似。我們根據這幅圖壹起來分析壹下分頁文件的使用。

需要註意的是,在日誌中的數值並不是分頁文件的使用量,而是使用率。也就是說,根據日誌文件的顯示,該系統壹般情況下的分頁文件只使用了25%左右,而系統當前設置的分頁文件足有2GB,那麽為了節省硬盤空間,完全可以把分頁文件最大值縮小為512MB大小。而對於最小值,可以先根據日誌中的占用率求出平均占用率,然後再與最大值相乘,就可以得到了。

在設置虛擬內存的時候還需要註意,如果妳有超過壹塊硬盤,那麽最好能把分頁文件設置在沒有安裝操作系統或應用程序的硬盤上,或者所有硬盤中速度最快的硬盤上。這樣在系統繁忙的時候才不會產生同壹個硬盤既忙於讀取應用程序的數據又同時進行分頁操作的情況。相反,如果應用程序和分頁文件在不同的硬盤上,這樣才能最大程度降低硬盤利用率,同時提高效率。當然,如果妳只有壹個硬盤,就完全沒必要將分頁文件設置在其他分區了,同壹個硬盤上不管設置在哪個分區中,對性能的影響都不是很大。

虛擬內存的設置並不麻煩,但是要用好虛擬內存卻還有很多事情需要註意。

我們已經知道,操作系統運行的過程中會把內存中的壹些數據分頁到硬盤上,但是默認情況下,系統關閉的時候,這些數據並不會被自動刪除。因此,如果妳在電腦上處理了機密數據,隨後妳可能使用加密,或者將數據轉移到其他介質上的方法保證了其他人無法讀取機密文件的內容。但是妳可能忘了,在分頁文件中可能還遺留有該文件的某些數據,而借助專用的程序,任何人都可以分析分頁文件,從中讀出保存的數據。因此為了實現最大程度的安全,我們最好通過設置讓Windows在關閉的時候自動刪除分頁文件(這不是壹般意義的刪除,而是使用無意義的數據填充整個分頁文件,這樣即便使用反刪除軟件也無法恢復)。運行Gpedit.msc打開組策略編輯器,在左側面板中定位到“計算機配置/Windows設置/安全設置/本地策略/安全選項”,然後啟用右側面板中“關機:清理虛擬內存頁面文件”這壹策略。不過要註意,啟用該策略將會延長Windows關閉所需的時間,因此如果不是必要請不要啟用該策略。

我們都知道硬盤使用時間長了將會出安生文件碎片,而碎片太多就會影響運行效率,因此最佳做法是定時整理硬盤碎片。不過妳可能不知道,因為在Windows運行的情況下pagefile.sys文件會被鎖定,因此該文件中的碎片並不會被整理。要整理分頁文件中的碎片,我們有三種方法。

第壹種方法雖然不需要任何額外的工具,不過操作上有點麻煩。假設妳的操作系統和分頁文件都位於C盤,首先請將分頁文件移動到D盤或者E盤等非系統盤(為使設置生效,設置好之後需要重啟動系統)。然後使用Windows自帶的磁盤碎片整理程序對C盤整理磁盤碎片,妳可能需要多次整理才能完成的比較徹底。待整理完之後重新將分頁文件設置到C盤,因為C盤已經進行過了完整的碎片整理,因此重新在C盤創建的分頁文件將會是連續的,也就避免了碎片的產生。

第二種方法使用簡單,但是需要借助其他軟件。這裏我們使用的是壹個叫“PageDefrag”的免費軟件。該軟件可以在這裏下載:/Utilities/PageDefrag.html ,運行之後將會看到圖七所示界面。從圖中可以看到,不僅pagefile.sys,該軟件還可以整理很多其他平時因為被系統鎖定而無法整理的系統文件。由於軟件不能在系統運行的時候對分頁文件進行獨占性訪問,因此整理工作會在下壹次啟動系統的時候進行。妳可以按照需要,設置下次啟動時整理(Defragment at next boot),或者每次啟動時整理(Defragment every boot)。

最後,如果妳使用第三方的磁盤碎片整理軟件,例如O&O Defrag,那麽這類軟件自帶的Offline Defrag(脫機整理,或者其他類似的稱呼)也可以在系統重啟動的時候整理這些被鎖定的系統文件。

  • 上一篇:用IP雷達如何辨別木馬?
  • 下一篇:2020-2021北京衛視跨年演唱會嘉賓北京衛視跨年演唱會在哪裏舉辦
  • copyright 2024編程學習大全網