最近大家都經常談論的話題,就是DDR內存的大降價,DDR266從400多元的位置暴跌到200元左右,很多人都用上了512MB甚至1GB的內存,於是有一種觀點也在部分玩家中流行起來,說是禁用虛擬內存、禁止Windows頁面文件交換、強行命令數據在內存中處理,可以加快數據讀寫效率,是不是真的這樣呢?
根據應用需要設置
筆者認為,這種說法要分情況對待,不能隨便就說禁用是好事。
首先,要搞清楚什麼是“大內存配置。當初設計Windows使用虛擬內存本身是因為物理內存很貴,一般都不會超過128MB容量,需要硬盤空間作臨時緩沖――也就是說,你應該把應用時需要多少物理內存和自己實際擁有的內存作一個比較,如果實際擁有的內存少於應用峰值,就會遇到麻煩了。
一般來說,如果要進行平面大圖、3D動畫渲染等數據量很大的任務,不應禁用虛擬內存;如果經常要打印帶大量圖片的文檔,禁止虛擬內存也會讓程序出現錯誤。因為像Word一類軟件打印之前要生成緩沖文件,再傳輸到打印機上,圖片尺寸較大、分辨率較高時,需要的緩沖區容量也很大,筆者以前幫助廣告美工出設計圖時,就遇到打印一張圖生成將近300MB臨時文件的情況。因為Windows和應用程序本身也是需要一定內存來運行的,如果你是512MB的配置,禁用了虛擬內存,很有可能中途報告虛擬內存不足,強行退出造成打印紙張及油墨的浪費。
所以,必須根據你的任務應用環境,來決定是否禁用虛擬內存。即使是把虛擬內存大小固定設置,也必須謹慎,否則在運行大型應用軟件的時候才出現虛擬內存不足的提示,整個系統會因為CPU的占用率極高而變得很慢,此時再改動就沒那麼方便了。
考慮操作系統的因素
在不同的操作系統下,虛擬內存的設置或禁用也是不同的,不能一概而論。
因為架構問題,Windows 9x/Me對大於256MB的內存有先天的不足,大於這個數量的內存,Windows 98會出現不穩定及啟動速度變慢的情況。如果使用了大內存加上禁用虛擬內存,不穩定的因素將會進一步增加。Windows 2000/XP可有效管理的內存容量為1GB左右,大於這個數目也會出現不穩定的情況,而且視主板BIOS型號及芯片組性能而不同。
另外,Windows本身的設計就是,一旦發現有進程轉入不活躍狀態,就會把分配給它的內存空間映射到交換文件中,盡可能空出物理內存給其它活動的線程,並不是用完物理內存才開始動用交換文件。因為如果等到物理內存用完再調用,就已經太遲了,在配置較低的機器上勢必造成數據傳輸和處理停滯。所以禁止虛擬內存從原則上來講,最容易引起Windows異常,即使不出現運行不了的故障,也會頻繁地提示虛擬內存不夠,請重新設置雲雲,讓你不勝其煩。
如何禁用虛擬內存
對於擁有很大容量內存的朋友,如果真想禁用虛擬內存加快運行速度,其實可以用折中的辦法“騙過Windows,就是把物理內存劃出一部分來虛擬成物理硬盤:
1.Windows 98
可以在Config.sys裡加入一句:
DEVICE=C:/WINDOWS/RAMDRIVE.SYS 23000 /E(請根據自己的Windows所在分區適當設置)
這句話就是利用內存由Ramdrive.sys虛擬出一個分區,其中23000是你希望使用多少物理內存,單位是KB,如果你有1GB,可以把這個數字設到300000到500000左右,即300~500MB,然後把虛擬內存設置到該虛擬出的分區上,程序就完全在物理內存中運行了。
2.Windows 2000/XP
必須依靠第三方的工具軟件來虛擬物理硬盤,然後再把Pagefile.sys頁面文件設到該虛擬盤上,實現同樣效果;或者可在System.ini中的“[386enh]底部加入一句,ConservativeSwapfileUsage=1,讓Windows優先使用物理內存,盡量不要強行直接禁用虛擬內存交換文件。
結論
筆者認為,禁用虛擬內存達到的加速效果很有限,加上一般Windows的默認設置比較適當,尤其是Windows 2000/XP默認設置對虛擬內存的管理很好,盡量不要隨意更改,否則出了問題你很難判斷和分析。
題外話:有關內存的一些故障分析
有時,Windows出現一些和內存有關的故障提示,不一定是和內存有關;而一些看似和內存無關的故障,卻真是內存引起的,很有隱蔽性。
比如:你用PQ分區大師之類的工具改過分區簇的大小,當簇小於默認值時,Windows 98運行磁盤掃描就可能會報內存不足,而在Windows 2000和Windows XP下則正常――也就是說,這跟內存根本沒關系。
再比如:有時開機進入Windows時,系統會提示你注冊表錯誤,是否恢復,當你選恢復後,再次重啟,還是同一個提示,這種故障,卻多半是內存條或散熱方面出了問題引起的,需要更換內存或是風扇了。
所以,Windows的提示有時會誤導用戶,如果反復出現同一種故障,按其提示解決不了,應考慮Windows誤報的可能性。