[轉貼] 系統資源記憶體不足 - 說明 & 處理 的幾個基本手法
記憶體不足說明:
「為什麼我的系統資源會不夠?」、「我什麼程式都沒跑,為什麼我的系統資源不是 100%?」
如果有人告訴你增加電腦的記憶體可以解決的話,那就是「胡說八道」了。
因為,所謂的系統資源(System Resourecs 註一)跟你電腦上的記憶體(System
Memory)的多少,可以說是風馬牛不相及,一點關係都沒有。
不管你今天 PC 上的記憶體有多少,16MB也好、512 MB 也好,所謂「系統資源」(System
Sources)永遠是記憶體中「固定的一小塊區域」,不會因為你的 RAM 特別多,System Sources 就會有特權,多一些。
System Resources 其實只有 64K可以利用,永遠就是這個數,不管你有多少記憶體,System Resources
就是64K,這是跟 CPU、還有實體的記憶體數量(Memory) 都沒有關係.
系統資源是什麼?系統資源就是用來處理選單、工具列、指標、還有繪圖方面的事情等等。例如?
像是記住螢幕上每個物件的顏色、按鈕圖案、所使用的字型種類、螢幕上每個按鈕的位置、選項有哪些、選項的狀態、螢幕上每個視窗的位置..等等,用來存放與管理這些東西的空間,就是「系統資源」(System
Resources)
所以在解了系統資源做哪些事之後,你應該知道,除非你不開機,否則系統資源絕對不可能達到
100%,不要認為系統資源被消耗掉是不正常的,這很正常,系統資源本來就是用來「消耗」的。
以下都是一些關於系統資源的基本常識:
System Resource 跟記憶體多寡沒有關係、另外,只要進入 Windows,有程式在跑,就會消耗系統資源。
除非作業系統告訴你系統資源不足了,否則,不要鑽牛角尖,一直 care 你現在的系統資源有多少,只要 Windows
沒有警告你,都不用去擔心。
只有系統資源為「0」的時候,才沒有辦法打開、或關閉應用程式,但是在這之前,Windows
絕對會警告你,所以你絕對有充分的時間存檔、重新啟動。(除非你根本不理會那些警告訊息)
怎麼樣可以少用一點系統資源?
前面說過,系統資源是用做選單、工具列、指標、繪圖.......這些方面的工作,所以,如果你的這類東西:桌面、圖示、工具列、背景、Active
Desktop..越少用,系統資源用掉的也越少。
Active Desktop 就會消耗不少的系統資源。
擁有炫麗UI介面的軟體也會比使用一般傳統介面的軟體會耗較多的系統資源。
例如:
有設有桌面背景圖案就會比沒有設要來得消耗系統資源、用最多色彩顯示圖示也會用較多的系統資源....諸如此類。
只要執行程式就會消耗系統資源,所以,一開機載入的程式越少,消耗得也越少,一些不是隨時要用的程式,就不需要讓它擺在系統列,我看過有人的系統列是長長的一大串,這也是會佔用不少系統資源的。
最後還是要提醒,只要執行程式,就會消耗系統資源,這是很正常的,只要Windows
沒有出現系統資源過低的訊息,你就不用去擔心,出現訊息,你還是有足夠存檔的時間,你不要一直盯著那系統資源數值一直看,那不是股票指數,一直盯著沒有什麼意義。
有時後你會發現某些程式已經關閉了,但是並沒有釋放系統資源,或是某個應用程式特別吃系統資源,這些現象都跟作業系統本身沒有什麼關聯,是那個應用軟體的問題,要由程式作者改善,你除了不執行之外,不能做什麼事。
註一:系統資源﹙System Resource﹚是Windows
作業系統的專有名詞,作業系統它有它自己的定義,你不能任憑自己想像來解釋,例如把「鍵盤」、「螢幕」、「滑鼠」、「記憶體」..等等這些只要是裝在電腦上的東西都當作是「系統資源」,這是你自己的定義,沒有人會承認。
什麼是「系統資源」(System Resources)?我在哪裡可以看到我的系統資源剩多少?為什麼叫做「資源」?
你在桌面上「我的電腦」圖示上按滑鼠右鍵選內容,到「效能」頁,其中有一項目叫做「系統資源」,它是以百分比來顯示,告訴你目前可用的資源有多少。
什麼叫做「系統資源」(System Resources)?在「系統資源與記憶體多寡沒有關係」一文中我已經有大略的講過,這邊我再解釋一次:
Windows
在記憶體中,需要一塊空間來追蹤、儲存你目前螢幕上以及正在執行的這些程式的狀態,這一塊空間,它有一個專有名詞:就叫做「系統資源」。
因為 Windows 把記錄與追蹤應用程式的工作(就是 User Resources 與 GDI
Resources),都放在這一塊特殊的地方,所以換個角度看,這空間要是塞滿了會怎樣?當然就沒有辦法執行程式了,因為沒有空間來記錄執行程式時的游標、按鈕、顏色..等等。(不管你 RAM 還剩多少)
而這塊叫做「系統資源」的空間,大致就是維持 64K 的大小,不管你實體的 RAM 有多少,Windows 作業系統就是劃這麼大塊地方來存放「系統資源」。
為什麼是 64K (Kilobytes)?
這跟「歷史」有關,你可以說他是歷史包袱,也可以稱之為 Windows 「原罪」。
時間必須往回追溯到 Windows 3.x 的時代,Windows 3.x 作業系統是以 Intel 286 的 CPU 架構為藍本發展而成,自然也就是個 16 bit 的作業系統,16 位元的二進位數運算能力是 64K,16 bit 所能記憶的容量也就限制在此,所以系統資源有了這種 64K 的限制,以當時的軟、硬體環境來說,只能做到如此。
Windows 95/98/Me 是 32 - bit 架構,32 位元的二進位數運算能力比 16-bit 高出了千百倍,「照理說」,應該不會再出現「系統資源不足」的夢靨,然而,事情不是這麼理想。
32 位元作業系統為了要向下相容(如果以前的程式不能跑了,你會買這種新的作業系統嗎),讓所有的 16 bit 程式、component 都可以順利在 32 bit 作業系統下運作,所以還是維持了這個系統資源 64K 的傳統。
Windows 9x 比起 Windows 3.x 改善了很多,不會一下子就把 System Resources 吃光,但是,舊的 16-bit 程式跟 32 bit OLE 仍然是會咬著系統資源不放,所以,系統資源還是會有耗盡的機會,只是機會不像以往舊Windows 時代那麼高而已。
應用程式吃系統資源的多寡,跟程式碼撰寫是否好壞有關係,有的應用軟體在結束之後,仍然抓著系統資源不放,這也是撰寫不良的程式。
隨著作業系統的差異,對於「低」系統資源 Windows 的忍耐限度也不同,像是同樣只剩 10%,在 Windows Me 底下的操作仍然會比 Windows 98 要順暢。
一般來講,一開機可以有 70% 左右的系統資源都算正常,如果你一進入 Windows 發現系統資源只有 50% 左右,這一定是你一開機就自動載入了一堆程式,你應該不可能有那麼多的程式需要一開機就載入,移除一些吧。
有些程式會佔用多一點的系統資源、有些軟體會用較少的系統資源,這是當然的,因為每個軟體的系統資源使用情況不可能完全一樣,你不可能經過任何的設定去要某個軟體少用一點的系統資源,除非,你改寫它的程式碼才有可能。
補充:我做哪些行為會佔用較多的系統資源?
先前說過,有程式執行,就會吃系統資源,這是一定的。但是,有哪些系統資源是在我們不經意的情況下,讓他被佔掉的呢?(或者說,就是你可以省下的)
佈景主題、桌面底圖、動畫游標、Active Desktop、還有 OFFICE 快捷列、還有擁有極度炫麗外表的視窗軟體。
前面提到的這類行為,因為有些一開機就會載入、有的是炫麗外表會佔用更多
GDI,再加上很多人都喜歡把桌面弄得「美美的」,所以與那些沒有使用這些功能的系統比起來,會佔多一點資源。
天下沒有白吃的午餐,要美麗、要方便,就要付出代價,你付的代價就是「系統資源」。
不過,我在這裡還是提醒讀者,凡事不要「本末倒置」,執行程式就會消耗系統資源,這是天經地義的,只要你覺得系統穩定、跑起來都很順、什麼感覺都沒有,使用佈景主題、Office 快捷列等等,並無傷大雅,你資源擺在那邊不用也是浪費。
處理「記憶體不足」的幾個基本手法
在Windows中,當你啟動程序或執行程序時,如果收到「記憶體不足」的錯誤消息,那麼請試試筆者以下所述的解決「記憶體不足」的辦法。
一、記事本佔用了太多的記憶體
實際上,記事本是記憶體中的一塊臨時區域,當你在程序中使用了「複製」或「剪下」指令後,Windows將把複製或剪下的內容及其格式等信息暫時存儲在記事本上,以供「貼上」使用。如果當前記事本中存放的是一幅圖畫,則記事本就佔用了不少的記憶體。這時,請按下述步驟清除記事本中的內容,釋放其佔用的記憶體資源:
1.按下「開始」,指向「程序」或「所有程式」,指向「附件」,指向「系統工具」,然後按下「記事本檢視程序」,開啟「記事本檢視程序」視窗。
2.在「編輯」功能表上,按下「刪除」指令。
3.關閉「記事本檢視程序」視窗。
為了與Microsoft Office程序提供的多重記事本相區分,上述所說的記事本,常被我們稱為系統記事本。如果你正在使用Micros OftOffice程序,而且使用了其多重記事本功能,那麼你應清空「Office記事本」上的項目,方法是:在「Office記事本」工作視窗(OfficeXP)或工作列(Office2000)上,按下「全部清空」或「清空『記事本』」。當清空「Office記事本」時,系統記事本也將同時被清空。
二、開啟的程序太多
如果同時開啟的我的文件過多或者執行的程式過多,就沒有足夠的記憶體執行其他程序。這時,對於多我的文件界面(MDl)程序,如Word、Excel等,請關閉當前我的文件外的所有我的文件,並退出當前未使用的程序,然後或許你就能夠繼續執行因「記憶體不足」而被中斷的工作。
三、重新啟動電腦
如果只退出程式,並不重新啟動電腦,程序可能無法將記憶體資源歸還給系統。請重新啟動電腦以釋放系統資源,然後再次執行程序或執行被中斷的工作。
四、自動執行的程式太多
如果在啟動Windows時自動執行的程式太多,那麼,即使重新啟動電腦,也沒足夠的記憶體用來執行其它程序。
(一)確定設定為自動執行的程式是否太多
1.按下「開始」,然後按下「執行」。
2.在「開啟」框中,鍵入「Msconfig」,按下「確定」按鈕,開啟「系統配置實用程序」視窗。
3.按下「一般」選項項,選「選項性啟動」複選鈕,清除「處理Win.ini文件」複選框和「載入啟動組項目」複選框。
4.按下「確定」按鈕,當系統提示重新啟動電腦時,請按下「是」按鈕。
重新啟動電腦後,如果記憶體不足的問題已經解決,你就可以將電腦配置為啟動時不開啟任何程序。
(二)配置電腦不自動開啟任何程序
1.恢復在Msconfig中所作的更改,方法是:在「系統配置實用程序」視窗,按下「一般」選項項,選項「正常啟動」,按下「確定」按鈕,然後重新啟動電腦。
2.刪除「啟動」資料夾中的所有建立捷逕
1按下「開始」,指向「設定」,然後按下「工作列和開始選單」,系統彈出「工作列內容」對話視窗。
2按下「開始選單程序」選項項,按下「刪除」按鈕。
3按下「啟動」資料夾旁的加號,以顯示設定為自動執行的程式列表。如果「啟動」資料夾旁沒有加號「+」,則表明沒有設定為自動執行的程式,請按下「關閉」按鈕以終止此程序。
4按下「啟動」資料夾中的每個建立捷逕,然後按下「刪除」按鈕。此操作將從「開始」功能表中刪除建立捷逕,但並不從硬碟中刪除相應的程序。對於0「啟動」資料夾中的每個建立捷逕,重複該步驟。
5按下「關閉」按鈕。
6按下「確定」按鈕。
3.禁用從Win.ini文件載入的所有程式
1如上所述開啟「系統配置實用程序」視窗。
2按下「Win.ini」選項項,雙按「[windows]」,然後清除「Load=」和「Run=」複選框。
3按下「確定」按鈕,當系統提示重新啟動電腦時,請按下「是」按鈕。
五、讓Windows管理虛擬記憶體設定
如果沒有設定讓Windows管理虛擬記憶體或者禁用虛擬記憶體,那麼電腦可能無法正常工作,也可能收到「記憶體不足」的消息,或在執行某程序時出現相同的錯誤消息。
1.按下「開始」,按下「設定」,按下「控制台」,然後雙按「系統」。
2.在「系統內容」對話視窗中,按下「效能」選項項,然後按下「虛擬記憶體」按鈕。
3.選「讓Windows管理虛擬記憶體設定—(推薦)」選項,將電腦中可作為虛擬記憶體使用的硬碟空間量設定為預設值。此時,虛擬記憶體分頁文件「win386.swp」能夠根據實際記憶體的使用情況動態縮小和放大,最小容量為0,最大容量為硬碟的全部可用空間。
4.按下「確定」按鈕。
六、增加可用磁牒空間
由於Windows以虛擬記憶體分頁文件的格式使用硬碟空間以模擬RAM(),所以,儘管已設定為讓Windows管理虛擬記憶體,但是當虛擬記憶體分頁文件所在的驅動器(預設為Windows系統所在的硬碟分區)沒有足夠的空間時,仍會出現「記憶體不足」的錯誤。此時,請執行以下一項或多項操作,增加Windows虛擬記憶體分頁文件所在驅動器上的可用空間:
1.清空資源回收桶,方法是:在桌面上,右鍵按下「資源回收桶」,再按下「清空資源回收桶」。
2.從磁牒中刪除臨時文件,方法是:開啟「Windows檔案總管」或「我的電腦」視窗,右鍵按下要釋放其空間的磁牒,然後按下「內容」,在「一般」選項項上,按下「清理磁碟」按鈕,選要刪除的不需要的文件前的複選框,可以閱讀列表下面區域中每個檔案類型的說明,按下「確定」按鈕。
3.從磁牒中刪除過期的文件或已存檔的文件。
4.刪除從未使用過的所有文件。
七、程式文件被毀壞
如果僅僅是使用某個程序時,系統提示記憶體不足,而其他程序可以正常執行,那麼可能的原因是該程式文件被毀壞,從而導致記憶體問題。然而Windows並沒有確切地提示表明該程序已損壞,所以請嘗試刪除並重新安裝該程序,然後重新執行該程序。如果系統不再提示記憶體不足,那麼說明原程式文件確實被損壞。
八、使用記憶體最佳化軟體
記憶體最佳化軟體有很多,比如RAM Idle和Memo Kit就是比較出色的兩個。這些軟體都可以設定自動清空記事本、釋放被關閉程序未釋放的記憶體、對Win386.swp文件進行重新組織等,從而免除你手工操作的麻煩,達到自動釋放記憶體的目的,不妨一試!
九、查殺病毒
系統感染電腦病毒也是導致記憶體不足的罪魁禍首,當系統出現「記憶體不足」的錯誤時,請使用最新的防毒軟體查殺病毒,或者在清除電腦病毒之後,就解決了「記憶體不足」的問題. 解決系統資源嚴重不足的方法... -------------------
每當windows執行一些應用程式時,已經將應用程式關閉, 但是記憶體可能還存在一些DLL檔案,可能會托慢了系統效能, 可以利用登錄編輯器按如下的方法自動的清除記憶體中的dll資料。
1、執行regedit,進入登錄編輯器。
2、找到「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\windows\ CurrentVersion\Explorer」
3、在右方窗格新增一個「AlwaysUnloadDll」「字串值」。
4、然後在「AlwaysUnloadDll」上按下滑鼠右鍵選擇「修改」。
5、將「值的資料」設為「1」。
6、重新開機即可完成上述動
沒有留言:
張貼留言