跳到內容

Windows 中實際能釋放多少記憶體

本頁內容

實際上能釋放的記憶體比「記憶體最佳化工具」所承諾的要少。在這項實驗中,關閉背景元件釋放了 1.0–1.5 GB 的可用記憶體,並在系列 2 中將認可量(commit)減少了 52 %。但熱門的快速方法並無效:終止殼層處理程序——Windows 會在大約 20 秒內自行重新啟動它們;清除 working set——被卸出的分頁仍以快取形式留在 RAM 中;記憶體管理員的登錄參數——沒有已證實的效益。在已最佳化的系統上進行針對性關閉,只帶來誠實的 +22–30 MB。待命清單中的記憶體是快取,且已計入「可用」之中。

狀態: 最終數字是在配備 8 GB RAM、執行 Windows 11(26H2,build 26300.9457)的虛擬機中取得的。方向已由 Microsoft 文件與我們的可控實驗證實;在其他組態上的絕對數值將會不同。

我們檢驗了四項陳述:

  1. 終止「不需要的」背景處理程序能釋放記憶體。
  2. 清除 working set 或待命清單(「RAM 最佳化工具」的機制)能釋放記憶體。
  3. 記憶體管理員的登錄參數能明顯釋放記憶體。
  4. 關閉背景元件能釋放大量記憶體。
  • Windows 11 Pro,build 26300.9457(26H2);虛擬機,8 GB RAM;
  • 同一安裝的兩種狀態:原始(「之前」)與套用 BoosterX 最佳化設定檔之後——測量在兩個獨立系列中進行(詳細協定與其餘指標見「安靜閒置:最佳化前後的 Windows 背景」);
  • 在「之後」狀態之上——一組針對性關閉背景來源的套件(ETW 診斷自動記錄器、通知服務、陰影複製與更新協調器服務);
  • 指標:可用與已用記憶體、認可量(commit)、nonpaged/paged pool、各處理程序的 working set 與 private bytes、分頁錯誤(hard faults)。

未納入:實體硬體、其他 RAM 容量的系統、停用 pagefile 的實驗,以及第三方「記憶體最佳化」工具。

  • 記憶體清單在穩定閒置狀態下取得:系統計數器(可用、已用、commit、集區)以及含 working set 與 private bytes 的處理程序清單。
  • 「終止殼層處理程序」的可控實驗:停止兩個介面處理程序(SearchHost.exe 與 StartMenuExperienceHost),在 20 秒與 40 秒後檢查狀態;commit 在之前與之後均有記錄。
  • 針對性關閉套件套用於「之後」狀態,接著重新開機,並與同一狀態在沒有該套件下的四次對照開機進行比較;開機測試檢查了效能是否出現退步。
  • 測量層本身(追蹤、計數器、收集指令碼)也佔用記憶體——在個別測量中 working set 可達上百 MB 甚至更多;這點已在限制中說明。

閒置狀態下的清單快照(系列 1):

之前 之後 變化
總 working set,MB 3 841 1 868 −51 %
總 private bytes,MB 1 524 660 −57 %
可用記憶體,MB 5 490 6 518 +1 028

系列 2:已用記憶體 3 017 → 1 538 MB,可用 5 174 → 6 653 MB,認可量 2 617 → 1 249 MB。方向在兩個系列中一致:背景元件佔用了此設定檔已用記憶體的大約一半。

在「之後」狀態中,記憶體分布如下(總 working set,系列 1):

  • 殼層(檔案總管、DWM、「開始」功能表搜尋、工作階段主機)——約 640 MB;
  • 背景服務——約 640 MB(39 個裝載器處理程序中的 57 個服務);
  • 搜尋的網頁元件——約 320 MB;
  • 核心集區——約 167 MB,其中約 76 MB 由登錄集區佔用。

處理程序的 working set 不等於可釋放的記憶體:它包含共享分頁(系統程式庫的程式碼、共用資料),這些分頁會同時計入每個處理程序。在系列 1 的「之後」狀態中,75 個處理程序的 working set 總和為 1 868 MB,而 private bytes 總和為 660 MB;在針對性關閉實驗的對照開機中,總 working set 為 2 036 MB。最大的介面處理程序(系列 2):

處理程序 Working set,MB Private,MB
SearchHost.exe(搜尋) 187 80
explorer.exe(檔案總管) 167 36
StartMenuExperienceHost 107 24
dwm.exe(DWM) 73 34

在「之後」狀態中,待命清單為 711 MB。這不是遺失的記憶體,而是快取:待命已計入「可用」,當應用程式需要記憶體時,Windows 會立即重新使用這些分頁。

在停止 SearchHost.exe 與 StartMenuExperienceHost 之後(系列 2):

  • 兩個處理程序都在大約 20 秒內以新的識別碼自動重新啟動;40 秒後它們仍在執行;
  • 認可量並未下降,反而增加了 12.6 MB(從 1 386.9 到 1 399.5 MB)——殼層處理程序的重新啟動本身就會產生新的工作;
  • 「可用」記憶體短暫增加 93 MB 並非節省:目標處理程序已回來,commit 也增加了。

在個別測量中終止檔案總管(系列 1)同樣未帶來可用記憶體的穩定成長:在這個時間窗內,可用記憶體甚至減少了 97 MB,而待命增加了 13 MB——被卸出的分頁仍以快取形式留在系統中,而殼層與相關處理程序繼續運作。

實驗結論:強制終止系統處理程序不會釋放記憶體。Windows 會自動重新啟動殼層元件,你得到的不是節省,而是額外的負載。

其機制已有 Microsoft 文件記載。將分頁從 working set 卸出(例如使用 EmptyWorkingSet 函式,或使用「空」大小的 SetProcessWorkingSetSize——「RAM 最佳化工具」所用的正是這些)會使分頁進入過渡狀態:它們仍以快取形式留在 RAM 中,直到再次被需要或被重新使用。處理程序下一次存取這類分頁時,會發生軟性分頁錯誤並回到 working set。

因此,清除 working set 只會改變計數器中的「可用」數字,並不會產生實體可用的記憶體:分頁不會消失,而再次存取它們反而更昂貴。清除待命清單同樣沒有意義:待命本來就是系統可用的記憶體。在我們的測量中,兩種狀態下都不存在記憶體壓力(hard faults 維持在低水準),因此額外的卸出並未改善任何東西。

我們從這項實驗得出的準則:評估「釋放記憶體」的結果,應依據 commit、分頁錯誤,以及再次使用記憶體時的延遲,而不是「可用」那一行的短暫上升。

在「之後」狀態之上,我們關閉了九個 ETW 診斷自動記錄器與四個背景服務(通知、陰影複製、更新協調器),並將結果與四次對照開機比較:

指標 對照開機 使用套件 差異
可用記憶體,MB 6 664–6 674 6 696 +22…+30
Nonpaged pool,MB 69.8–71.8 58.7 −11…−13
總 working set,MB 2 036 1 959 −77
測試效能 無變化 無變化 —

只有自動記錄器帶來了 −13.2 MB 的 nonpaged pool(另行測量)。重要的是:依清單,被關閉元件的 working set 總和約為 78 MB,而可用記憶體的實際增益為 +22–30 MB。差異之所以出現,是因為部分「被關閉的」元件本來就沒有執行。這正是針對性關閉在不移除系統元件下的誠實界線;附帶地,同一套件還將閒置背景活動再降低了 24 %。

記憶體管理員的登錄參數(集區大小、系統快取及類似項目)在這項實驗中甚至未被視為收益來源:其讀取與實際用處已在「Memory Manager 與系統 cache」中分析——它們對釋放 RAM 沒有已證實的效益。

  • 已重現(兩個系列):關閉背景元件釋放 1.0–1.5 GB 可用記憶體;總 working set 減少 51 %(系列 1),已用記憶體減少 49 %,認可量(commit)減少 52 %(系列 2)。
  • 已測量: 被停止的殼層處理程序會在 20 秒內自動重新啟動;commit 並未因此下降(在我們的實驗中增加了 12.6 MB)。
  • 已測量: 終止檔案總管不會帶來可用記憶體的穩定成長;被卸出的分頁仍留在待命中。
  • 已有文件記載: 將分頁從 working set 卸出會使其進入過渡狀態,並以快取形式留在 RAM 中;待命記憶體會計入可用記憶體。
  • 已測量: 在已最佳化的系統上進行針對性關閉,可在效能不變下帶來 +22–30 MB 可用記憶體;被關閉元件的 working set 總和不等於可用記憶體的增益。
  • 第三方「RAM 最佳化工具」未直接測試:檢驗的是它們所依據的機制(清除 working set)。
  • 停用 pagefile 未經測量;只知道 pagefile 是 crash dump 與記憶體認可上限所必需的。
  • 將數值推論到其他 RAM 容量、其他組建與實體硬體的機器。
  • 節省在長時間窗內的持續性:測量是在穩定閒置狀態下進行的。
  • 配備 8 GB RAM 的虛擬機:絕對數字與此組態綁定;背景元件較多的設定檔會釋放更多,「安靜」的系統則較少。
  • 各處理程序的 working set 總和會因共享分頁而高估唯一足跡;我們正是因此並列 private bytes。
  • 測量層本身佔用了可觀的記憶體(在個別測量中 working set 可達數百 MB)——狀態數字包含了測量的存在。
  • 實驗中沒有記憶體壓力(hard faults 偏低),因此我們未檢驗節省是否能在 RAM 不足時減少 thrashing。
  • 部分釋放來自關閉 Microsoft Defender 的保護元件——這是與安全性之間的取捨,而不是免費得到的記憶體。

本研究與所使用的工具均屬於 BoosterX 開發者,而 BoosterX 是 Windows 最佳化工具,因此測量最佳化效果是它的直接利益所在。方法與適用範圍已於上文說明,結論可依公開資料與所列公開來源加以檢驗。關於熱門「釋放記憶體」方法的負面結果,與正面結果一同發表。

依這項實驗,真正能釋放記憶體的做法:

  • 關閉未使用的應用程式——它們的 private bytes 會完整釋放;
  • 關閉確實不需要的背景元件——測得的綜合效果見「安靜閒置」;這是已檢驗方法中唯一帶來數 GB 的一種,而其代價是失去相應功能;
  • 依 commit 與可用記憶體(工作管理員 →「效能」→「記憶體」)評估結果,而不是依「可用」那一行。

無效的做法:

  • 強制終止系統處理程序:Windows 會在數秒內重新啟動它們,commit 上升;
  • 「RAM 最佳化工具」與清除待命:被卸出的分頁仍以快取形式留在 RAM 中,而讓它們重新投入工作要付出軟性分頁錯誤的代價;
  • 記憶體管理員的登錄參數。

待命記憶體不是問題,而是快取在運作:「可用」已經包含它。pagefile 請交由系統管理:它是記憶體認可上限與當機傾印所必需的。

實驗是在隔離的虛擬機中、於測試狀態分支上進行的;測量之後測試分支已重設,機器已還原至原始狀態。本文不建議終止系統處理程序或停用 pagefile,因此在使用者電腦上不需要額外的還原動作。

  • 2026-09-20: 數字已與各系列表格一致:系列 1 的「之後」為 1 868/660 MB,各指標與系列的百分比歸屬已釐清;利益衝突聲明已強化為完整表述。
  • 2026-09-20: 首次發布——兩個系列的記憶體清單、關於終止處理程序與清除的負面實驗、針對性關閉的誠實增益。