Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

「記憶體不足」錯誤成因與 DOS/Windows 環境分層解決方案

編輯:Windows XP 系統介紹

錯誤定義

執行程式時出現 Out of memory 或「記憶體不足」,指系統無法分配足夠可用記憶體給應用程式。

一、DOS 環境記憶體不足

檢查項目

  1. CONFIG.SYS 載入 HIMEM.SYS 並啟用 EMM386.EXE RAM 參數,提供擴充記憶體 (EMS) 支援。
  2. 使用 MEM /C /P 檢視傳統記憶體 (640KB 以下) 使用情況,找出佔用大戶 (TSR 程式、驅動程式)。
  3. 調整載入順序:DOS=HIGH,UMB 將 DOS 核心移入高記憶體區 (HMA) 騰出傳統記憶體。

案例:金山 WPS 字庫衝突

現象:載入 HIMEM.SYS + DOS=HIGH 後 WPS 無法啟動,提示記憶體不足。
原因:WPS 字庫需使用 INT 15h 傳統擴充記憶體低端區域,與 DOS 核心衝突。
解決:

  1. 移除 DOS=HIGH,讓 DOS 核心留在傳統記憶體。
  2. 或修改 DEVICE=HIMEM.SYS /INT15=320 預留 320KB 給 INT 15h 介面,字庫與 DOS 核心共存。

二、Windows 環境記憶體不足

虛擬記憶體設定

  • 「系統內容」→「進階」→「效能設定」→「進階」→「虛擬記憶體變更」。
  • 建議:固定大小 = 實體記憶體 1.5-2 倍,放在非系統槽、空間充足、非壓縮/加密分區。

常見原因與對策

原因對策
實體記憶體過小 (XP 建議 ≥1GB, Win7 建議 ≥4GB)加裝記憶體條,最具成效
開機啟動項目過多佔用記憶體msconfig 精簡、移除常駐軟體
記憶體洩漏程式 (Firefox 舊版、某些驅動)更新軟體/驅動、定期重開機
虛擬記憶體設定過小或放在慢速磁碟調整大小、移至 SSD/快速機械硬碟
32 位元系統 4GB 限制升級 64 位元作業系統

快速緩解指令

建立批次檔 freemem.bat:

@echo off
rundll32.exe advapi32.dll,ProcessIdleTasks
empty.exe *  (需下載 Windows 2000 Resource Kit 工具)

執行可釋放待用記憶體,緩解當下壓力。

Copyright © Windows教程網 All Rights Reserved