記憶體不足錯誤疑難排解

文章翻譯 文章翻譯
文章編號: 112676 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

您會收到記憶體不足錯誤中 Windows 或 Windows 的工作群組當您嘗試執行的應用程式或執行工作。特定錯誤訊息會有所不同,但與下列類似:
應用程式執行錯誤
記憶體不足,無法執行這個應用程式。請結束一或多個 Windows 應用程式,然後再試一次。
-或者-
沒有足夠的記憶體可用。

發生的原因

這些錯誤的原因可能是下列其中一項:

  • 全域堆積中的記憶體不足
  • Windows 系統資源不足
  • 檔案損毀、 應用程式的問題或組態問題
  • 下方 1 百萬位元組 (MB) 的記憶體不足
  • 低 Windows 選取器
  • BIOS 的設定不正確的系統
每個這些問題和可能的解決方法是下面討論。 雖然它們是最有可能發生順序列出這些問題,Windows 中的記憶體不足錯誤疑難排解不一定單純的逐步程序。若要增加您的主要問題的知識,並減少您解決問題的時間,就要讀取整個本文,再繼續進行。

解決方案

全域堆積中的記憶體不足

Windows 會控制在整個記憶體區域稱為全域記憶體 」 或 「 全域堆積 」。全域堆積開始在其中 MS-DOS 第一次載入 Windows 記憶體且結束於最常在實體記憶體的頂端時的可用記憶體的最上方的位置。如果之後交換,全域堆積中的可用記憶體數量不足以執行應用程式或執行選取的工作,以 Windows 為基礎的應用程式會傳回記憶體不足,無法錯誤。

如果要判斷多少記憶體可用全域記憶體堆積中,先到控制台中 386 增強虛擬記憶體] 對話方塊中的 [無設定 Windows 交換檔,而後選擇 [從程式管理員] 中 [說明] 功能表的 [關於程式管理員。報告的記憶體值是全域堆積中的可用記憶體。如果應用程式所需要的更多的記憶體大於可用全域堆積中可能會收到 「 超出記憶體 」 錯誤訊息。增加交換檔大小可能會允許 Windows 交換到磁碟] 釋放全域堆積的記憶體不足,無法資訊。

解決方案:

若要釋放更多的記憶體,為您的應用程式、 關閉一個或更多的 Windows 架構應用程式或增加您永久的交換檔的大小。如果這樣無法更正不足的記憶體錯誤,您可能需要更新您的系統與其他的 RAM。

Windows 系統資源不足

原因:

Windows 會計算系統資源不足存在執行所需的作業,也會發生記憶體不足錯誤。

狀態: 在 Windows 3.1] 和 [工作群組的 Windows 系統資源是取決於下列四種堆積:
  • GDI.EXE (64 千位元組 [K] 資料區段)

    GDI.EXE 堆積包含如畫筆、 筆刷、 游標、 字型、 圖示、 按鈕、 捲軸列和等等的圖形物件的相關資訊。 在 Windows 3.1 和工作群組的 Windows,GDI 堆積可能是瓶頸,因此,關閉大量圖形導向的應用程式產生的 GDI 資源被釋出。
  • USER.EXE (64K 資料區段)

    USER.EXE 堆積中存在,對話框中對話方塊方塊等控制項目前包含在視窗的相關資訊。
  • 功能表 (64K 資料區段)
  • 功能表字串 (64K 資料區段)

    功能表和功能表字串堆積是新 Windows 3.1 中。設計這些堆積原先結合 USER.EXE 下 Windows 3.0 中釋出 USER 堆積的空間。這些堆積以動態方式建立 (也就是在執行階段) 由 USER 堆積。這些不包含在任何.EXE 檔,可每限於 64 K。
當您從 [說明] 功能表中選擇關於程式管理員時 Windows 和工作群組的 Windows 報告堆積 (Heap) 以最小可用的數量的可用系統資源的數量。

若要維護回溯相容性較早版本的 Windows 和 Windows 架構應用程式,所有四個堆積每一個設計與 64K 資料區段限制。

解決方案:

某些應用程式可能不釋放之後,他們就會關閉它們使用的所有系統資源。如果您有日積月累的問題,與一或多個應用程式,請連絡應用程式的製造商,如需詳細資訊。

需要一些 16 位元 Windows 應用程式 (例如 Windows 的 Microsoft Word,Microsoft Access,Microsoft Visual Basic 和 Microsoft Excel) 充裕免費大量的同時 USER.EXE 和 GDI.EXE 堆積因為需要圖形化使用者介面 (GUI)。如果這些應用程式找不到他們的資訊載入這些堆積的可用空間,它們產生的記憶體不足的錯誤 (或類似的錯誤)。大型的 Excel 活頁簿和執行高解析度的視訊驅動程式的電腦上的大型圖形影像依賴大量 GDI 資源因為的圖形化本質。

如果您的系統資源通常都很低的保持幾個執行的應用程式可能是最佳的解決方案 ; 但是,您可能也想請嘗試下列方法:

  • 最小化不常使用的群組,以節省系統資源。
  • 不要使用底色圖案,或使用小型點陣圖和並排顯示它。
  • 不嘗試開啟有許多圖示的群組。
  • 如果您在執行使用系統資源,每次執行的應用程式嘗試保持開啟而非關閉並重新開啟它的次數。
  • 試著不要載入,則不需要的字型。
  • 請檢查您的螢幕保護裝置,以確定過度它們不使用資源。

檔案損毀、 應用程式的問題或組態問題

原因:

當兩個時,可能會發生錯誤的記憶體不足或更多記憶體常駐程式或驅動程式衝突時 Windows 存取損毀的檔案或執行包含仍在壓縮的表單或應用程式中問題時您的檔案。

解決方案:

請試著找出特定的應用程式問題所在。初始狀態啟動電腦,以便只有必要 Windows 和特定應用程式的裝置驅動程式及終止和-保持-常駐 (TSR) 程式載入 CONFIG.SYS 和指令檔中。如需有關 「 初始狀態開機 」 Windows 和 Windows 為工作群組,下列字 「 Microsoft 知識庫 」 中的查詢:
清除和開機與附加
停用自動啟動,當您啟動的 Windows (檢查 WIN.INI 檔案並啟始群組)、 執行 Windows 安裝程式,並將變更為標準的 Windows 驅動程式 (VGA 否滑鼠否網路) 並程式管理員 (PROGMAN.EXE) 作為 Windows 殼層任何應用程式。

如果只在特定的應用程式中,發生記憶體不足錯誤,請嘗試重新安裝應用程式到新的目錄,或者以手動方式展開任何必要的檔案,排除檔案損毀。

如果應用程式永遠不會完成之後,有可能在原始的安裝磁碟上的檔案已損毀。嘗試使用相同的磁碟的另一台電腦上安裝有問題的應用程式。

如果這些程序執行不排除問題,請連絡造成這項錯誤的應用程式的製造商。

下方 1 百萬位元組 (MB) 的記憶體不足

原因:

當 Windows 就會建立新的工作 (也就是開始新的應用程式) Windows 載入器會為它建立工作資料庫 (TDB)。[TDB 包含等其目前的目錄,執行個體控制代碼以及等等之工作的重要資訊。若要維護與 16 位元 Intel 處理器與 MS-DOS 相容性,Windows 會建立 [TDB 1 MB 以下全域堆積中的記憶體中。因為只有記憶體 1 MB 以下全域堆積中的傳統記憶體必須建立 [TDB 下方 640 K (傳統記憶體)。

狀況說明:

下方 1 MB 的記憶體有限,而且應該盡量不要使用。TDBs 不是記憶體的唯一的可能會得到以下 1 MB 區塊。應用程式 (例如 Microsoft Word Windows、 Microsoft 遠端存取服務 (RAS)、 Microsoft Anti-Virus、 Microsoft 郵件、 Microsoft Schedule + 和多媒體套件是.DLL 檔案載入到記憶體時載入或執行某些作業的第一個 1 MB 的應用程式的範例。

Windows 全域堆積中的每個區段是以告訴 Windows 如何管理區段某些屬性標記。首先,foremost,區段標記為固定或 Moveable。固定的線段永遠位於相同的實體記憶體位置就已先配置位置 (雖然它可以分頁如果它是不 」 頁面-鎖定 」)。可移動的程式碼可以移動,或標記為可捨棄程式碼。這表示 Windows 可以移動可移動的區段在記憶體中如有必要,讓出空間給其他記憶體配置或如果程式碼標示為 Discardable,Windows 藉由判斷"至少會有最近的使用 」 的 (LRU) 可捨棄的區段可以捨棄程式碼。Windows 可以稍後重新可捨棄的程式碼載入藉由存取應用程式之.EXE 檔。

增強的模式的全域堆積 (Heap) 是由一系列的可用,並儲存在記憶體中連續的中使用區塊所組成。當 Windows 詢問由應用程式配置的記憶體區塊時,開頭或結尾的全域堆積的類型而定的 KRNL386.EXE 啟動應用程式的載入的程式碼,以及逐一每個區塊直到它找到適當大小的可用區塊。

KRNL386.EXE 會開始從底部配置固定的區段向上全域堆積中。全域堆積頂端 Windows 會配置可捨棄的區段。[固定和可捨棄] 區段之間 Windows 會配置可移動的區段。應用程式啟動和 Windows 需要配置固定的區段時, Windows 就會啟動搜尋從針對夠大可用區塊區域下方的可移動區段底部。這是為了避免記憶體分散。如果它找不到區段大型夠它開始向上移可移動的區段,以挪出空間的記憶體中。如果所無法使用 Windows 就會開始捨棄可捨棄的區段。

TDBs 必須位於下方 1 MB,但是修正並可移動的記憶體區段不進行。當您嘗試啟動應用程式時,便會出現一個記憶體不足錯誤可能是因為會載入從全域堆積,以避免記憶體分散底部開始的固定的區段得到的第一個 1 MB 的載入。如果這些 「 頁面鎖定 」,因此它們可能耗用 Windows 否則使用載入 TDBs KRNL386.EXE 想?保持固定的記憶體越低,為可能的衝突,而需維持下方儘量 1 MB 的記憶體的記憶體空間無法移動這些定量的記憶體區段。

是由於方式,Windows 會配置記憶體,下方 1 MB 的記憶體會是有限的資源,即使您執行 Windows 架構應用程式。程式開發人員都該確保他們的程式及.DLL 檔案做不使用此空間不必要的。不可使用定量的記憶體區段,除非絕對必要。

解決方案:

如果要疑難排解這個問題,最佳化盡可能的傳統記憶體。如果您 MS-DOS 6.0 或 6.2 版使用 [最佳化傳統記憶體的 [MemMaker]。您也可能要變更您的程式或驅動程式載入的順序。這可能會改變固定的程式碼取得位於,最小化記憶體分散。對於一的解決方法建立多重開機設定,以最小化什麼載入特定作業的傳統記憶體。這或許可以釋放出足夠的空間,讓 Windows 可以載入 [TDBs。

停用自動啟動,當您啟動的 Windows (檢查 WIN.INI 檔案,並啟始群組)、 執行 Windows 安裝程式,並將變更為標準的 Windows 驅動程式 (VGA 否滑鼠否網路) 並程式管理員 (PROGMAN.EXE) 作為 Windows 殼層任何應用程式。若是疑難排解,請藉由重建將 WIN.INI] 和 [SYSTEM.INI 檔移除任何協力廠商的 Windows 驅動程式或虛擬裝置驅動程式 (VxD)。如需有關此程序在下列字 「 Microsoft 知識庫 」 中的查詢:
win.ini 和 win.sr_ 並建立
-以及-
system.ini 和 system.sr_ 並建立

低的選取器

原因:

不包含在可用的系統資源百分比的 Windows 架構應用程式的記憶體管理一個重點是選取器的數目。選取器是消耗與 Windows 架構應用程式所做的每個記憶體配置的記憶體指標。Windows 有固定的數目的選取器 (4096 在標準模式下 8192 中 386 增強模式)。如果 Windows 架構應用程式會配置非常大量的小型資料物件,則可能選取器用完。這也會產生記憶體不足,無法訊息。

解決方案:

這些問題都是特定的應用程式。撰寫 Windows 架構應用程式來處理它自己的資料物件更有效率地可協助在這種情況下。如果您遇到日積月累的問題與特定的應用程式時沒有任何或幾個其他應用程式就會載入,且電腦是以初始狀態開機,請連絡應用程式廠商。請務必廠商成為注意的問題,以便盡可能更正。

BIOS 的設定不正確的系統

如果您的 BIOS 設定不正確的軟式磁碟機,您可能會收到上述錯誤訊息,當您嘗試安裝軟體。比方說,如果您有安裝一個 1.44 百萬位元組 3.5 吋軟式磁碟機,且為 1.2 百萬位元組 5.25 吋磁碟機設定 BIOS,則可以發生錯誤。

其他相關資訊

如果您嘗試載入應用程式透過網路在網路嚴重擁塞時執行 MS-DOS 的網路用戶端的 Windows 電腦上執行,您也可以收到記憶體不足的錯誤訊息。 要求做為記憶體不足,無法條件的 「 應用程式載入時的逾時錯譯在本機上。

而且,您可以收到這個錯誤訊息,如果從包含應用程式的網路共用中移除 「 執行 」 權限。

?考

「 Windows 3.1 技術參考手冊 」

「 Microsoft 系統日誌"十月 1993年網頁 69 75

「 程式設計 Windows 3.1"查爾斯 Petzold 由頁面 271 303

屬性

文章編號: 112676 - 上次校閱: 2005年7月7日 - 版次: 2.1
這篇文章中的資訊適用於:
  • Microsoft Windows 3.0 Standard Edition
  • Microsoft Windows 3.1 Standard Edition
  • Microsoft Windows 3.11 Standard Edition
  • Microsoft Windows for Workgroups 3.1
  • Microsoft Windows for Workgroups 3.11
關鍵字:?
kbmt KB112676 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:112676
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com