Windows Explorer 為提升啟動速度,默認在內存中緩存已加載的 DLL (動態鏈接庫)。程序退出後 DLL 不立即卸載,導致內存佔用持續增長、版本更新後舊 DLL 仍駐留。啟用 AlwaysUnloadDLL 強制 Explorer 在程序結束時卸載無引用 DLL。
# 註冊表路徑
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer
# 創建/修改 DWORD 值
名稱:AlwaysUnloadDLL
類型:REG_DWORD
數值:1 (啟用) / 0 (禁用,默認)
# 命令行一鍵設置 (管理員 PowerShell)
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" -Name "AlwaysUnloadDLL" -PropertyType DWord -Value 1 -Force
| 場景 | 效果 | 建議 |
|---|---|---|
| 內存 ≤ 4GB / 老舊機械硬盤 | 明顯緩解內存壓力、減少換頁 | 強烈推薦啟用 |
| 內存 ≥ 16GB / NVMe SSD | 效果邊際化,可能增加啟動延遲 | 可不啟用,或針對性優化 |
| 終端服務器 / 多用戶環境 | 顯著減少會話佔用內存總和 | 推薦啟用,配合 Fair Share CPU Scheduling |
| 舊版應用 (VB6/Delphi 等) | 可能導致併發運行異常 | 測試驗證後再決定 |
# 同路徑下相關優化項
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer
# 禁用縮略圖緩存 (釋放磁盤/內存)
DisableThumbnailCache = 1 (DWORD)
# 增加圖標緩存大小 (默認 500KB,現代高分屏不足)
Max Cached Icons = "4096" (STRING, KB)
# 禁用預讀 (針對特定場景)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
EnablePrefetcher = 0 (僅禁用預讀,不影響 Superfetch/SysMain)
註冊表優化是精準手術刀而非核武器。`AlwaysUnloadDLL` 在資源受限環境有奇效,現代硬件下收益有限。真正的內存優化:升級物理內存、關閉無用啟動項/服務、避免內存洩漏軟件、使用輕量級替代方案。