Windows記憶體釋放不必急著關程式,先看清楚誰在占用、需不需要常駐更重要。贊贊小屋以Windows 11的實際操作畫面,從工作管理員查看CPU與記憶體,再檢查登入自動啟動與背景服務,分清楚停用啟動、停止服務與修改啟動類型各自改變什麼,再依使用需求決定哪些要留。
一、從工作管理員查看CPU與記憶體占用
按下Ctrl+Shift+Esc就能直接開啟「工作管理員」。贊贊小屋先切到左側的「處理程序」,右上方兩個欄位標題分別顯示整體的CPU使用率54%、記憶體使用率68%;下方的清單依記憶體由大到小排列,最上面四個項目是Google Chrome(35)使用12.8% CPU與3,490.3 MB、Claude(12)使用2.4%與1,723.9 MB、ChatGPT(15)使用11.0%與1,230.3 MB,以及Google Drive(2)使用10.5%與625.6 MB。想換個角度看,只要點選「CPU」或「記憶體」欄位標題,清單就會依運算負載或記憶體用量重新排序,用量最高的程式一眼就能找到。
CPU與記憶體看的是兩件不同的事。可以把CPU想成廚房裡負責料理的廚師,記憶體則是讓食材與工具暫時擺放的流理台:CPU使用率反映處理器當下的運算負載,記憶體則用來容納執行中的程式與資料。程式暫時沒有明顯運算,仍可能把資料留在記憶體裡,所以電腦正在忙、操作變慢時,先依CPU排序,看誰正在運算;同時開了很多工具、切換程式容易卡頓時,再依記憶體排序,看資源怎麼分配。另外,光憑68%這個數字,不能直接斷定記憶體不足,還要搭配「效能」頁面的時間曲線,觀察用量是短暫升高,還是持續不降。
名稱後面括號裡的數字,是該應用程式群組底下的處理程序數量,Google Chrome(35)並不是開了35個分頁。Chrome採用多處理程序架構,瀏覽器主程序、網頁呈現與其他功能各由不同的處理程序負責,分頁與處理程序之間也不是一對一的關係。點開名稱左邊的箭頭展開群組,才看得到裡面的各個項目;Claude(12)與ChatGPT(15)也是同樣的道理。
Google Chrome、Claude與ChatGPT的「狀態」欄位,還出現了綠色葉子的符號,這是Windows 11用來標示「效率模式」的記號,目的是改善能源效率,並讓前景應用程式維持順暢。葉子代表該項目目前的執行模式,不代表程式已經關閉,也不代表記憶體已經釋放,千萬別把它誤認成「已經處理完成」的標記。
二、找出持續占用記憶體的常駐程式
繼續檢查處理程序清單。贊贊小屋另一次操作時的畫面,整體CPU為63%、記憶體為34%;清單最上方是「贊贊小屋 語音輸入(2)」,使用49.3% CPU與428.0 MB記憶體,往下依序是Vaydeer keyboard(8)的303.2 MB、Microsoft Defender Antimalware Service的295.9 MB,以及Node.js JavaScript Runtime的257.7 MB。再往下的四個項目是Microsoft.PowerBI.EnterpriseGateway的257.7 MB、mpdwsvc Application的235.2 MB、Typeless(8)的212.1 MB,以及RSService的172.7 MB;這四項的CPU都是0%,卻各自占用了超過170 MB的記憶體。
CPU顯示0%,並不代表沒有占用資源。Typeless的CPU是0%、記憶體卻有212.1 MB,兩者並不矛盾:程式當下幾乎沒有在運算,不表示它沒有把資料留在記憶體裡。同一個畫面裡,語音輸入的49.3% CPU也不能直接視為異常,因為這只是當下這一刻的數字,是否有問題,要看當時是否正在進行語音辨識或處理文字。換句話說,判讀工作管理員的數字,必須同時對照當時正在做什麼,而不是看到高數字就下結論。
這些常駐程式大多有存在的理由。語音輸入工具與快捷鍵軟體需要隨時待命,雲端硬碟與資料閘道這類程式要在背景持續同步或等待連線;所以真正該問的,是「這個功能我現在需不需要」,而不是看到名稱陌生、記憶體偏高就先關掉。對於不熟悉的項目,例如mpdwsvc Application與RSService,單從名稱與數字無法判斷用途,比較穩當的做法是先查它的檔案位置與發行者資訊,工作管理員的右鍵選單與「啟動應用程式」頁面都有「開啟檔案位置」,確認來源之後再決定要不要處理。
還有一點要注意:這兩次畫面的整體記憶體使用率分別是68%與34%,CPU則是54%與63%,但目前無法確認兩次操作之間關閉了哪些程式,以及工作條件是否相同。這組數字只能當成兩個時間點的觀察,不適合直接解讀成調整之後記憶體少了一半的成效。
三、從軟體設定關閉登入自動啟動
想讓某個程式不要一登入Windows就跟著開啟,最先要看的,是軟體自己有沒有提供選項。以語音輸入軟體Typeless為例,開啟後先點左側選單的「設定」,往下捲到「一般」區塊,最下方是「登錄時啟動應用程式」,說明文字寫著「當您的電腦啟動時自動打開 Typeless。」贊贊小屋的設定畫面裡,這個開關是灰色的關閉狀態;要調整時,點一下右側的開關就能切換。
這個設定控制的是下次登入Windows時,會不會自動把軟體開起來,並不會把目前正在執行的程式關掉。所以關閉開關之後,如果Typeless已經在背景執行,仍要自行結束它,記憶體才會跟著減少。這也是「記憶體釋放」常被混淆的地方:結束目前的程式,是減少現在的用量;關閉登入啟動,則是減少之後每次登入時的常駐,兩者影響的時間點不同,不能互相取代。
各家軟體實作登入啟動的方式不盡相同,設定關閉之後實際會改變哪些項目,也取決於軟體本身,所以不要預設它一定會清除所有相關設定。比較務實的做法,是先在軟體自己的設定裡確認登入啟動的選項,再用Windows「啟動應用程式」頁面集中查看與管理。
四、用工作管理員管理啟動應用程式
回到工作管理員,點選左側的「啟動應用程式」,頁面上方有「啟用」「停用」「內容」三個按鈕,右上角寫著「最後一個 BIOS 時間:12.8 秒」。清單的欄位依序是「名稱」「發行者」「狀態」「啟動影響」:ChatGPT、贊贊小屋 語音輸入、ZanzanScreenshotTool、Vaydeer keyboard與Google Drive的狀態都是「已啟用」,啟動影響都是「未測量」;相對的,已經停用的XBOX,啟動影響顯示為「無」。
贊贊小屋在Google Drive這一列按下右鍵,跳出的選單有「停用」「開啟檔案位置」「線上搜尋」與「內容」四個選項,同一區塊還可以看到Tailscale GUI client(發行者Tailscale Inc.)與launcher(發行者Synology Inc.)。選「停用」,是告訴Windows之後登入時不要自動啟動這個項目;選「開啟檔案位置」,則會帶到執行檔所在的資料夾,能看出它究竟是哪個軟體。Google Drive目前仍為「已啟用」;選擇「停用」後,可再查看狀態是否更新為「已停用」。
「停用」不等於解除安裝:軟體仍然留在電腦裡,需要時隨時能手動開啟;它也不一定會馬上結束目前正在執行的程式,影響的是之後登入時的自動啟動。依微軟支援的〈設定Windows中的啟動應用程式〉說明,「啟動影響」欄位的「未測量」代表沒有可用來測量的資料,不能解讀成沒有影響。右上角的「最後一個 BIOS 時間」,是電腦上次開機時韌體啟動所花的時間,和登入之後載入哪些程式是不同的階段。還有一個重要的邊界:這個頁面列出的是登入時自動啟動的項目,並不涵蓋所有在背景運作的服務,要管理背景服務,得改用服務管理工具。
五、開啟服務管理工具並找到背景服務
按下Win+R開啟「執行」對話框,視窗上的說明寫著「輸入程式、資料夾、文件或網際網路資源的名稱,Windows 會自動開啟。」;在「開啟」欄位輸入 services.msc,再按下「確定」,就會進入Windows的「服務」管理工具。
「服務」視窗左側是「服務 (本機)」,右邊的清單欄位有「名稱」「描述」「狀態」「啟動類型」與「登入身分」。贊贊小屋往下捲到On-premises data gateway service,這一列的狀態是「執行中」,啟動類型是「自動」;選取之後,左側會出現這項服務的說明,以及「停止」「重新啟動」的連結。在它上面按右鍵,選單裡的「啟動」「暫停」「繼續」是灰色的,可以選的有「停止」與「重新啟動」,最下方的「內容」則是進入詳細設定的入口。清單中的其他服務各有不同的狀態與啟動類型,像OpenSSH Authentication Agent是「已停用」,Power BI Report Server是「自動」,可見每一項都要個別判斷。
services.msc 是開啟Windows服務管理主控台的指令,.msc 則是微軟管理主控台使用的檔案格式。服務和啟動應用程式有本質上的差別:啟動應用程式是跟著使用者登入而啟動,服務則由Windows的服務控制管理員管理,可以在沒有人登入桌面時執行,通常也沒有視窗,所以在工作管理員的「啟動應用程式」裡看不到它們。On-premises data gateway service就是這類服務,它是Power BI的本地資料閘道,在本機執行,讓雲端的Power BI服務可以連接內部網路的資料來源,支援需要透過閘道進行的查詢與更新。因此遇到陌生的服務,先辨識它的用途,再決定怎麼處理,不要只因為名稱陌生就直接停用。
六、看懂服務狀態與啟動類型
在On-premises data gateway service上選「內容」,會開啟標題為「On-premises data gateway service 內容 (本機電腦)」的視窗,上方有「一般」「登入」「復原」「相依性」四個頁籤。「一般」頁面最上面是「服務名稱」PBIEgwService與「顯示名稱」On-premises data gateway service:顯示名稱是服務清單裡看到的名稱,服務名稱則是系統用來辨識這項服務的名稱,用指令工具管理服務時,通常是以服務名稱為準。
往下的「可執行檔所在路徑」,指向 C:\Program Files\On-premises data gateway 資料夾裡,以Microsoft.PowerBI.EnterpriseGa開頭的執行檔,這一欄能確認這項服務實際執行的是哪一支程式,遇到不熟悉的服務時,是追查來源的依據。再往下的「啟動類型」目前是「自動」,下拉選單展開後有「自動 (延遲啟動)」「自動」「手動」「已停用」四個選項;「服務狀態」則是「執行中」,下方的「啟動」「停止」「暫停」「繼續」四個按鈕中,只有「停止」可以按。
四種啟動類型的差別,可以這樣理解:
- 「自動」:Windows啟動時,就會跟著啟動這項服務。
- 「自動 (延遲啟動)」:仍會自動啟動,通常安排在其他自動啟動服務之後再延後啟動,實際時間沒有固定保證;服務啟動後仍會使用資源,因此這項設定主要調整啟動時機,不等於釋放記憶體。
- 「手動」:不會僅因設定為手動就隨Windows自動啟動,但仍可由使用者或具備權限的應用程式啟動,也可能因服務相依關係或觸發事件而啟動,包括在開機期間;目前是否執行,仍要查看「服務狀態」。
- 「已停用」:服務無法啟動,必須先改回可以啟動的類型。
啟動類型與「停止」按鈕,改變的是兩件不同的事。「停止」改變的是目前的執行狀態,並不會改變之後怎麼啟動;修改啟動類型,影響的是之後的啟動方式,也不代表目前的服務已經停止。贊贊小屋的這個畫面裡,啟動類型仍是「自動」、服務狀態仍是「執行中」,也就是目前這項服務仍會自動啟動,而且正在執行;若要調整之後的啟動方式,與停止目前的服務,需要分別操作。至於Power BI閘道要不要調整,要看使用情況:如果只是偶爾測試Power BI,值得重新確認是否需要讓閘道持續執行;如果有依賴這台電腦的排程更新,停止服務就可能讓更新無法完成,這是依閘道的功能推得的影響,仍須先確認實際的使用情況。
七、依使用需求管理SQL Server服務
服務清單裡連續出現了17個與SQL Server相關的項目,從「SQL Full-text Filter Daemon Launcher」到「SQL Server VSS Writer」。其中「SQL Server (MSSQLSERVER)」「SQL Server Agent (MSSQLSERVER)」「SQL Server Analysis Services (MSSQLSERVER)」「SQL Server Integration Services 15.0」「SQL Server PolyBase 引擎 (MSSQLSERVER)」等多數項目,啟動類型是「手動」;「SQL Server Browser」是「已停用」;只有「SQL Server VSS Writer」的啟動類型是「自動」,狀態欄也只有它顯示「執行中」。
安裝一套資料庫或開發工具,往往會同時留下好幾個服務,而且各有分工。從清單的描述欄來看,「SQL Server (MSSQLSERVER)」負責資料的儲存、處理和控制存取,「SQL Server Agent (MSSQLSERVER)」執行工作、監控SQL Server並引發警示,「SQL Server Analysis Services」提供線上分析處理,「SQL Server Integration Services」提供封裝的儲存與執行支援,「SQL Server Browser」則提供用戶端電腦的SQL Server連線資訊。也就是說,同樣是SQL Server,不同服務扮演的角色並不一樣,不能把整組清單當成「全部都可以關掉」。
清單上出現某個服務,不代表它正在執行;要同時看「狀態」與「啟動類型」兩欄才完整。這份清單裡,除了「SQL Server VSS Writer」之外,其他項目的狀態欄都是空白,也就是目前沒有執行,「手動」的設定則讓它們在需要時仍然可以被啟動。判斷要不要調整,依據是自己的使用需求:如果只是偶爾做資料庫實作,平常用不到,維持「手動」,需要時再啟動,能減少常駐的記憶體;但如果這台電腦要持續提供資料庫服務,或是靠SQL Server Agent執行排程工作,就必須讓相關服務維持執行,因為SQL Server Agent要在執行中,排程的工作才會自動運作。所以偶爾實作與持續提供服務是兩種不同的需求,不能一律改成「手動」。
先問需不需要,再決定關或留
回頭看這一整串操作,會發現Windows記憶體釋放其實不是把清單上的項目一個個關掉,而是先把兩個問題分開:一個是「現在有沒有在執行」,一個是「之後怎麼啟動」。結束程式、停止服務,處理的是前者;關閉登入啟動、停用啟動應用程式、修改服務的啟動類型,處理的是後者。把這兩件事分清楚,就不會把「已經停用啟動」誤當成「記憶體已經釋放」,也不會因為清單上數字偏高,就急著停掉其實還在提供功能的服務。
同樣一個項目,在不同人的電腦上,答案也可能不同。以Power BI閘道與SQL Server為例,偶爾測試、平時用不到的人,可以考慮讓它們只在需要時啟動;每天靠排程更新或資料庫服務運作的人,則必須讓它們維持執行。工作管理員與服務管理工具提供的,是看清楚用量與設定的視窗,真正的判斷依據,永遠是這台電腦平常在做什麼。
