萬盛學電腦網

 萬盛學電腦網 >> 內存故障 >> 剖析Windows用1G內存還慢的原因

剖析Windows用1G內存還慢的原因

現在的內存基本達到了1元/MB的均價,不少朋友的電腦告別了可憐的64MB、128MB內存,256MB已經成為標准配制,512MB甚至1GB的內存也不再是"聳人聽聞"。但是有一件事情讓很多朋友疑惑:"為什麼使用1G內存我的Windows啟動、軟件運行速度還是這麼慢" 

  安裝大容量內存後,系統、程序運行效率沒有得到大幅度提高,這是因為系統本身運行機制限制了其管理和運用硬件資源的能力。所以縱然硬件資源非常豐厚,如果超出了Windows管理的范圍,那麼性能也不會得到明顯提升。 

  內存和硬盤 

  許多菜鳥常常將物理內存和硬盤混淆在一起,因為兩(電腦沒聲音)者的容量都是用MB或GB這類的單位表示,說明物理內存和硬盤之間關系的最好比喻是:一個帶一張桌子和一個文件櫃的小辦公室。 

  文件櫃就像硬盤,程序和數據可以長期安全地存放在那裡(電腦自動關機),桌面代表物理內存,允許在辦公桌上工作的人(作用和處理器相同)直接用放在桌面上的任何文件(程序和數據)。為了對一個特定文件進行操作,首先必須從文件櫃中取出文件並放在桌面上。如果桌面夠大,可以在桌面上同時打開多個文件。類似地,如果你有更多物理內存,那麼可以運行更多或更大的程序並對更多或更大的資料進行處理。 

  給電腦增加硬盤空間就好比在辦公室裡(電腦自動關機)放一個更大的文件櫃,而增加更多內存就好比得到一個更大的辦公桌,可以同時對更多程序和數據進行操作。 

  一、Windows這樣使用內存 

  想要知道為什麼系統速度提升不再明顯,必須先理解Windows 怎樣使用內存。這裡(電腦自動關機)要涉及一個概念——資源。 

  這不是平http://www.xsyzj.cn時所說的CPU資源,內存資源或統一的"系統"資源。我們接下來要講到的"資源"就是程序可以操縱的Windows物件。舉例來說,屏幕上顯示的每個窗口都是一個資源,每幅圖片也都可以能是一個資源。如果一個應用程序打開了磁盤上的一個文件,那麼這個被打開的文件也是一個資源。以此類推,如果一個應用程序需要使用一個資源,它就會向操作系統提出請求,要求新建一個或從存儲器裡(電腦自動關機)調用。 

  1.情景再現:程序與系統的對話 

  程序說:"嗨,Windows,我要新建一個300像素寬,200像素高的窗口,ok"於是,Windows立即按要求創建或調用這個資源進內存,然後反饋給應用程序一個代號:"好,我已經創建好你要的窗口,它的代號是#38710。"此後,需要用到新建的這個窗口時,應用程序都用Windows反饋的代號代表這個資源。"Windows,麻煩你在顯示屏幕左上角顯示#38710。""好!"最後,當應用程序不需要用到該資源的時候,它會要求Windows去除這個資源。"OK,請你刪除#38710。""好!"。 

  2.指針——內存中的郵政編碼 

  那麼這個代號是依據什麼標准生成的呢在絕大多數操作系統中,它是靠一種叫做"指針"的東西來確定的。你可以把整個內存想像成一個郵局,郵遞員把需要寄往各地的信件分類放到很多個不同的信箱裡(電腦自動關機)。信箱一個接一個,足足占據了一堵牆。每個心細那個都裝了一些信件,包含要送往一個特定地區的信息。而且,就好像每個地區都有郵政編碼一樣,每一塊可以存儲數據的內存空間也有一個地址——指針。代表這個存儲空間的一串數字。內存中某部分數據的"指針",也就是這些數據占據的第一處內存空間的地址。所以,如果我是一個普通的操作系統,有一個應用程序要求我調用一個窗口,我就會按照它告訴我的要求調用這個窗口進內存,如果這個資源的數據在內存中存儲的地址開始於#1234567,那麼我就會返回一條信息給應用程序:"好了,我調出了這個窗口,它是#1234567。" 

  3.解決指針帶來的問題 

  在PC中,這種指針有4個字節長。所以如果一個應用程序需要給內存裡(電腦自動關機)的某個數據配一個指針,那就需要4字節的內存空間。這樣的工作方式給早期的Windows設計者帶來了不小的麻煩,因為那時制作工藝尚不發達,內存非常昂貴,一台電腦上有8MB的內存就足以讓用戶無數次從夢裡(電腦自動關機)笑醒了,大多數電腦只能配制4MB內存。在內存如此緊張的情況下,一個應用程序卻經常需要用到幾百萬個資源。要用這些資源,就要個每個資源配發一個指針。每個指針占據4個字節,幾百萬個指針,就會消耗掉數量客觀的一塊內存空間。這就好比一份錢很少,但如果要發給全國人民每人一份錢,那就是至少一千三百萬元的巨款了。 

  所以,Windows設計者采用了另外一種替代方案。他們創建了資源表。就是把當前調入內存的所有資源的信息登記到一個清單。這樣一來,當應用程序要求系統調用一個資源時,系統調用後就不給它配發指針了,而是直接告訴應用程序該資源在資源表中的序號。"好了,我已經調用了你需要的資源,它在資源表裡(電腦自動關機)面的序號是#383"因為需要不是內存地址,所以就可以用一個只需占用2字節的數字表示。這只是兩(電腦沒聲音)個字節的差距。但當你只有幾MB內存,而你運行的程序動咎調用大量資源時,這兩(電腦沒聲音)字節的差距就會帶來很大的優勢。

你知道嗎  

  微軟64位操作系統沒1GB內存就別玩  

  在32位Windows 2000/XP中,最大支持4GB的內存,每個應用程序最多只能使用2GB內存,因為另一半的內存也留給系統使用了。而在64位WindowsXP中,這個限制沒有了,每個程序能完全使用4GB內存,除Windows,微軟還在開發64位版本的SQL Server 2000和Windows Server2003,不過要運行這些應用程序,需要你的電腦至少得有1GB內存。  

  4.時過境遷,妙計成缺陷  

  但這種方法也有它的弊端——兩(電腦沒聲音)個字節能夠表現的不同數字非常有限  

  我們可以做個實驗:請你寫不同的數字。如果只准你寫一位數,那就只能寫出十個不同數字。如果限制寫兩(電腦沒聲音)位數,雖然能寫出更多,但總數仍然有限。以此類推,允許位數越多,能寫出的不同數字就越多。但只要位數有限制,寫出的不同數字的總數就始終有限。同理,如果允許系統使用4字節的序號,那麼在這個"位數限制"下,可以有幾十億個不同的序號可供使用。但如果只准系統使用2字節序號,能用的序號就會銳減到65536個。於是,前面我們講的資源表就不能無限的拉長。其中的序號最多只有65536個  

  於是問題來了。當調用了65536個資源後,再想調用更多的資源,縱然內存空間還有1GB,足以存儲數百億個資源,但只有2字節的資源表卻無法生成更多的序號!沒有序號,就意味著無法將各資源區分開來,應用程序自然無法使用這些沒有"戶口"的資源!事實上,因為沒有序號可用,系統根本無法同時調用65536個以上的資源。  

  但在10MB內存都是奢望的年代,要同時調用數十萬個資源根本就是"無稽之談"。所以當時的Windows設計者們沒有把這個問題放在心上,果斷地選用了資源表,選用了2字節序號。  

  今天,操作系統算是得到報應了。內存便宜了,資源表和2字節序號仍然給我們節省了內存空間,但它帶來的壞處卻遠遠超過了它帶來的好處。我們有足夠的內存空間,可以調用數百萬個資源,但資源表裡(電腦自動關機)面只有65536個序號!所以同一時間內,內存中只能有65536個資源!還有1GB內存空間可用等著吧!  

  5.真正"耗資源"的是誰  

  明白了上面的道理,就不難分辨除了大個文件,大個程序外,真正消耗系統資源的是哪些程序了:  

  ★ 調用大量細小資源,把桌面裝飾的花裡(電腦自動關機)胡哨的軟件  

  ★ 各種多媒體播放軟件  

  ★ 監視系統的工具軟件  

  ★ 能在字體菜單裡(電腦自動關機)面預覽字體的應用程序(如MS Office)  

  另外,在Windows 9x n/Me中運行16位程序(如DOS程序)時,Windows會劃定一塊內存供所有這類程序使用。除非所有16位程序都已經關閉,這塊內存是不會被釋放的。  

  6.大內存的優勢到底在哪裡(電腦自動關機)  

  難道大內存就沒有作用了嗎內存廠商在騙錢當然不是。當一個應用程序被啟動後,Windows的一些組件也隨之被啟動,這是很常見的事情。當應用程序被關閉,Windows會保留那些組件不關閉,因為可能很快還要用到。同理,程序啟動時調進內存的少數資源,也不會隨著程序關閉而退出內存。  

  這時,大內存的有時正可以得到體現了。一方面,大內存可以一次性容納大量數據,減少使用性能遠不如內存的硬盤作為虛擬內存使用的幾率,提高數據調用速度。另一方面,關閉程序過後,更多的常用數據會有充足的空間保留在內存中不被清除。一旦重啟程序,你會發現明顯比使用小內存時快!  

  二、大內存使用精要  

  1.把內存變成你的硬盤  

  如果你的內存實在富裕,那麼可以使用微軟專門為Windows2000設計的RAMDISK,它能把部分內存虛擬成一塊硬盤,把本來保存在硬盤的數據虛擬到內存中。比如,將Windows的臨時文件,Internet的臨時文件放置到這個虛擬磁盤中。大家知道,內存的速度要比硬盤速度快多了,這樣能大幅提高數據讀取速度,使Windows運行更加高效,同時,由於數據實際保存在內存中,所以在關機後,其中的數據就會消失,因此能在一定程度上加強http://.系統安全性。  

  第一步:從http://www.download.mocrosoft.com/download/win2000ddk/sample01/1/nt5/EN-US/ramdisk.exe下載RAMDISK。並將其解壓縮到一個臨時文件夾中,比如C:RAMDISK  
copyright © 萬盛學電腦網 all rights reserved