Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Windows 綜合教學 >> 系統最佳化

記憶體不足 (Out of Memory) 完整排查指南:DOS/Windows 双環境對應策略

編輯:系統最佳化

「記憶體不足」「Out of memory」錯誤在 DOS 年代與 Windows 環境成因截然不同。本文分環境深度解析,提供從 CONFIG.SYS 優化到現代記憶體管理的完整對策。

🖥 環境一:DOS / 16 位元應用程式 (經典年代,現仍用於嵌入式/舊設備維護)

記憶體架構速覽

  • 常規記憶體 (Conventional Memory): 0~640 KB,DOS 核心、TSR、驅動、應用程式主戰場,**最關鍵瓶頸**。
  • 上層記憶體區 (UMA, 640KB~1MB): 視訊 BIOS、擴充 ROM、EMS/UMB 窗口。
  • 擴充記憶體 (Extended Memory, >1MB): 286+ CPU 可定址,需 HIMEM.SYS 管理 (XMS 標準)。
  • 擴展記憶體 (Expanded Memory, EMS): 頁面框架在 UMA 映射 >1MB 實體記憶體,需 EMM386.EXE 模擬。

常見成因與對策

成因徵兆對策
EMS/UMB 未正確啟用大型程式 (WPS、WordStar、編譯器) 啟動失敗「Out of memory」CONFIG.SYS 確保:
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM (關鍵:RAM 參數啟用 UMB/EMS)
DOS=HIGH,UMB (DOS 核心上移、啟用 UMB)
TSR/驅動佔用過多常規記憶體MEM /C 顯示常規記憶體可用 < 500KB① 移除非必要 TSR (滑鼠、快取、防毒、選單程式)
② LOADHIGH (LH) 載入驅動/TSR 至 UMB
③ DEVICEHIGH 載入裝置驅動至 UMB
程式與 EMS/XMS 衝突啟用 HIMEM/EMM386 後特定程式跑不動① 程式需 EMS → 保留 EMM386 RAM
② 程式衝突 EMS → EMM386.EXE NOEMS (僅提供 UMB/XMS)
③ 程式需特定 UMB 區段 → EMM386.EXE I=B000-B7FF 排除衝突區段
④ 金山/WPS 經典案例:EMM386.EXE INT15=320 保留低端擴充記憶體給漢字庫
常規記憶體碎片化總可用夠但最大連續區塊太小MEM /C 觀察最大可用區塊 → 調整載入順序 (大佔用者優先 LH) 或使用 QEMM/386MAX 優化器 (歷史工具)

🪟 環境二:Windows (9x/NT/XP/7/10/11) 記憶體管理

核心概念

  • 虛擬記憶體 = 實體 RAM + 分頁檔 (pagefile.sys),每進程 4 GB (32 位) / 128 TB (64 位) 虛擬位址空間。
  • 工作集 (Working Set): 進程當前駐留實體 RAM 的頁面集合。
  • 提交充當 (Commit Charge): 已承諾分配的虛擬記憶體總量 (含分頁檔預留)。

常見成因與對策

成因徵兆對策
實體 RAM 物理不足常態提交充當 > 實體 RAM 80%、頻繁分頁、硬碟燈狂閃、系統卡頓① 加裝實體記憶體 (根治)
② 關閉不用程式/分頁/服務
③ 調整虛擬記憶體固定值 (參考文章 65615)
④ ReadyBoost (USB 3.0+ 隨身碟作分頁檔緩衝,效果有限)
記憶體洩漏 (Memory Leak)特定程式運行時間越長佔用越大、關閉後不釋放、重開機暫緩① 任務管理員/Resource Monitor 觀察「提交大小」持續增長
② 更新/重裝該程式
③ 開發環境:Visual Studio Diagnostic Tools / Valgrind / AddressSanitizer 定位洩漏點
剪貼板佔用大量記憶體複製大圖/長文本/大量檔案後記憶體飆升Win+V 開啟剪貼板歷史 → 「全部清除」;或複製少量文字覆蓋。
桌面壁紙/視覺效果佔用顯存/系統記憶體高解析度壁紙、動態主題、Aero/透明效果開啟個人化 → 背景 → 純色;系統屬性 → 效能 → 視覺效果 → 最佳效能/自訂保留字型平滑。
啟動項/服務過多佔用基準記憶體開機即佔用 3~4 GB+ (16 GB 機器)Autoruns/工作管理員停用非必要啟動項;services.msc 停用非必要服務 (SysMain, DiagTrack, WSearch, Print Spooler 等)。
大型文件編輯 (Word/Excel/PS/AE/PR)開啟百頁文件/高解析度專案時記憶體飆升Word 關閉即時拼寫檢查;PS/AE 調整「記憶體使用量」上限;分批處理/使用代理檔/縮圖。

🛠 統一排查 SOP (現代 Windows)

  1. Ctrl+Shift+Esc → 「效能」→「記憶體」→ 觀察「正在使用中」「可用」「提交充當」「快取」「分頁/非分頁集區」。
  2. 「詳細資料」→ 加入欄位:「提交大小」「工作集」「可分頁集區」「非分頁集區」→ 依「提交大小」降冪排序,鎖定大戶。
  3. 可疑進程 → 右鍵 → 「前往詳細資料」→ 檢查路徑、簽章、命令列。
  4. poolmon (Windows Driver Kit) 觀察 Non-paged Pool 標籤增長 → 對應驅動洩漏。
  5. !address -summary (WinDbg) 進階分析虛擬位址空間分佈。

💡 長效優化清單

  1. 實體 RAM 升級至 16 GB (主流) / 32 GB (重度) / 64 GB+ (專業) — 單一最高 ROI 投資。
  2. 虛擬記憶體固定值、放非系統盤 (文章 65615)。
  3. 精簡啟動項與服務 (Autoruns + services.msc)。
  4. 關閉視覺效果、動態壁紙、剪貼板歷史 (不需時)。
  5. 定期重開機 (釋放洩漏、重置工作集) — 伺服器排程每週重開機。
  6. 監控提交充當長期趨勢 (效能監視器計數器) — 趨勢上揚必有洩漏。

記憶體不足在 DOS 年代是「常規記憶體 640KB 爭奪戰」,在 Windows 年代是「實體 RAM + 分頁檔 總量 vs 提交充當」的博弈。**加裝實體 RAM 永遠是最直接、最有效、副作用最小的解法**。

Copyright © Windows教程網 All Rights Reserved