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 文件與我們的可控實驗證實;在其他組態上的絕對數值將會不同。
可檢驗的陳述
Section titled “可檢驗的陳述”我們檢驗了四項陳述:
- 終止「不需要的」背景處理程序能釋放記憶體。
- 清除 working set 或待命清單(「RAM 最佳化工具」的機制)能釋放記憶體。
- 記憶體管理員的登錄參數能明顯釋放記憶體。
- 關閉背景元件能釋放大量記憶體。
- 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 甚至更多;這點已在限制中說明。
背景佔用多少
Section titled “背景佔用多少”閒置狀態下的清單快照(系列 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。方向在兩個系列中一致:背景元件佔用了此設定檔已用記憶體的大約一半。
已用記憶體的結構
Section titled “已用記憶體的結構”在「之後」狀態中,記憶體分布如下(總 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 會立即重新使用這些分頁。
實驗:終止殼層處理程序
Section titled “實驗:終止殼層處理程序”在停止 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 會自動重新啟動殼層元件,你得到的不是節省,而是額外的負載。
清除 working set 與待命清單
Section titled “清除 working set 與待命清單”其機制已有 Microsoft 文件記載。將分頁從 working set 卸出(例如使用 EmptyWorkingSet 函式,或使用「空」大小的 SetProcessWorkingSetSize——「RAM 最佳化工具」所用的正是這些)會使分頁進入過渡狀態:它們仍以快取形式留在 RAM 中,直到再次被需要或被重新使用。處理程序下一次存取這類分頁時,會發生軟性分頁錯誤並回到 working set。
因此,清除 working set 只會改變計數器中的「可用」數字,並不會產生實體可用的記憶體:分頁不會消失,而再次存取它們反而更昂貴。清除待命清單同樣沒有意義:待命本來就是系統可用的記憶體。在我們的測量中,兩種狀態下都不存在記憶體壓力(hard faults 維持在低水準),因此額外的卸出並未改善任何東西。
我們從這項實驗得出的準則:評估「釋放記憶體」的結果,應依據 commit、分頁錯誤,以及再次使用記憶體時的延遲,而不是「可用」那一行的短暫上升。
針對性關閉:誠實的增益
Section titled “針對性關閉:誠實的增益”在「之後」狀態之上,我們關閉了九個 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 沒有已證實的效益。
已證實的部分
Section titled “已證實的部分”- 已重現(兩個系列):關閉背景元件釋放 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 總和不等於可用記憶體的增益。
未證實的部分
Section titled “未證實的部分”- 第三方「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,因此在使用者電腦上不需要額外的還原動作。
公開一手來源
Section titled “公開一手來源”- Microsoft: Working Set——working set 的組成、分頁卸出、以快取形式留在 RAM 中的過渡分頁,以及
EmptyWorkingSet/SetProcessWorkingSetSize函式;已於 2026-09-20 查核。 - Microsoft: EmptyWorkingSet——「記憶體最佳化」工具所使用的 API;已於 2026-09-20 查核。
- Microsoft: About Memory Management——虛擬記憶體與共享分頁模型;已於 2026-09-20 查核。
- Microsoft: Introduction to the page file——commit charge、認可上限與 pagefile 的角色;已於 2026-09-20 查核。
- Memory Manager 與系統 cache——記憶體管理員登錄參數的研究。
- 安靜閒置:最佳化前後的 Windows 背景——測量協定與同一實驗的其餘指標。
- 我們如何研究 Windows——證據等級與測量規則。
- 2026-09-20: 數字已與各系列表格一致:系列 1 的「之後」為 1 868/660 MB,各指標與系列的百分比歸屬已釐清;利益衝突聲明已強化為完整表述。
- 2026-09-20: 首次發布——兩個系列的記憶體清單、關於終止處理程序與清除的負面實驗、針對性關閉的誠實增益。
