# Runtime Broker 的 CPU 或記憶體使用率很高怎麼辦

Runtime Broker 是 Windows 的正常處理程序，檔案是 `RuntimeBroker.exe`，位於 Store 類 App 和它們要求使用的 Windows 功能之間，例如位置或麥克風。它平常多半閒置，只用很少的 CPU 和不多的記憶體。當它用掉很多其中任何一種時，原因幾乎都是某個封裝的 App 一直在向它要東西，所以解法是找出那個 App。結束 Runtime Broker 只能換來幾分鐘。

## 正常的電腦長什麼樣

Microsoft 公開的說明很少，所以這裡放的是 Windows 11 電腦實際看到的樣子。一台測試用的 ThinkPad 有三個副本在執行，每一個都像這樣：

```text
C:\Windows\System32\RuntimeBroker.exe -Embedding
Started by: C:\Windows\system32\svchost.exe -k DcomLaunch -p
```

有好幾個副本是正常的，因為每個 App 有自己的一個。你的數量可能不同，但路徑和父處理程序應該一致。用下面的指令列出你的：

```powershell
Get-CimInstance Win32_Process | Where-Object Name -eq 'RuntimeBroker.exe' | Select-Object ProcessId, ExecutablePath, CommandLine
```

## 找出背後的 App

Windows 沒有哪個資料行能直接標出每個副本背後是哪個 App，所以實際可行的做法是逐步縮小範圍：

1. 用 `Ctrl + Shift + Esc` 開啟工作管理員，在**處理程序**裡依 **CPU** 或**記憶體**排序。
2. 一次關閉一個封裝的 App，像相片、手機連結、小工具、Teams、郵件，或任何來自 Microsoft Store 的東西，看數字會不會在一分鐘內下降。
3. 如果數字下降了，就更新那個 App，或在**設定 › 應用程式 › 已安裝的應用程式 › （該 App） › 進階選項**裡重設它。同一頁的**終止**可以停掉它的背景處理程序。
4. 如果都沒有變化，就重新開機，看數字再次攀升時開著的是哪個 App。

在同一個**進階選項**頁面，有提供這個選項的 App，可以把**背景應用程式權限**設成**永不**，讓你用不到的 App 不在背景執行。

| 你看到 | 通常代表 | 試試看 |
| --- | --- | --- |
| 開啟 App 後 CPU 短暫出現幾個百分點 | 正常的權限檢查 | 什麼都不用做 |
| 開著某個 App 時 CPU 持續偏高 | 那個 App 一直在要求 | 更新、重設或移除它 |
| 記憶體爬升好幾個小時，到了好幾 GB | 某個副本或它服務的 App 有記憶體流失 | 結束那個副本，再照上面的方式找出 App |
| 沒開任何 App 卻出現高峰 | 小工具、開始功能表或提示 | 見下面 |

## 大家常提到的一個設定

很多回報把 Runtime Broker 的 CPU 和 Windows 提示聯想在一起。如果上面的方法都沒用，就關閉**設定 › 系統 › 通知 › 其他設定 › 使用 Windows 時取得提示和建議**。Microsoft 沒有記載過這個關聯，它是常見的回報，不是已證實的原因。試一下沒有任何成本，一天之內就能知道有沒有幫助。

## 它是病毒嗎

真正的檔案在 `C:\Windows\System32`，由 Microsoft 簽署。從其他地方執行的副本、名稱稍微有點不對，或由 `svchost.exe` 以外的東西啟動的副本，都值得用 Microsoft Defender 掃描。用上面的 PowerShell 指令檢查路徑。

## 不要這樣做

- 不要刪除 `RuntimeBroker.exe`，也不要取得它的擁有權來封鎖它。依賴它的 App 會失敗，Windows 也會把缺少的檔案視為損壞。
- 不要照論壇文章去改登錄來停用它。Store App 需要它，症狀消失了，卻沒找到真正的 App。
- 不要一次又一次結束它。結束一個副本算安全，但它服務的 App 可能出現異常或關閉，而且需要的時候 Windows 會再啟動一個。
- 不要因為這件事安裝「RAM 清理工具」。這類工具只是把記憶體暫時推到磁碟，反而增加磁碟的工作。

## Mole 能幫上什麼

Mole for Windows 的**狀態**頁會把 Runtime Broker 合併成每個工作階段一列，所以你可以邊關閉 App，邊看合計的 CPU 和記憶體。這一列的選單裡的**為什麼在執行？**會列出你打開當下最吃資源的幾個副本，要比較的話請重新打開它，並顯示**可執行檔案**和是誰啟動它的，可以快速檢查上面說的路徑與父處理程序。因為 Runtime Broker 從 Windows 資料夾執行，Mole 會把它標為系統項目，不提供**結束**或**強制結束**。Mole 不管理 App 權限或提示。想看更廣的問題，請見 [Windows 的 CPU 使用率偏高](/tw/windows/blog/windows-high-cpu-usage)、[Windows 的記憶體使用率偏高](/tw/windows/blog/windows-high-memory-usage)，以及 [Store 自己的處理程序 wsappx](/tw/windows/blog/wsappx-high-cpu-windows)。

## 常見問題

### Runtime Broker 是什麼？

它是替封裝的 App（例如來自 Microsoft Store 的 App）執行的 Windows 處理程序，處理它們對位置、麥克風這類功能的要求。檔案是 `C:\Windows\System32\RuntimeBroker.exe`。

### 為什麼 Runtime Broker 用掉這麼多記憶體？

通常是它服務的某個 App 一直在要求東西，或是執行很久的副本發生了記憶體流失。快速測試時，結束那個副本算安全。如果又爬升了，就一次關閉一個封裝的 App，找出是哪一個在推動它。

### 可以結束 Runtime Broker 嗎？

單一卡住的副本可以，但它服務的 App 可能關閉或出現異常，需要時 Windows 會啟動新的副本。這是一種測試，不是解法。

### 可以停用 Runtime Broker 嗎？

不要。Store App 需要它，聲稱能做到這件事的登錄修改，只會讓你得到壞掉的 App，原本的原因仍然存在。

### 為什麼有多個 Runtime Broker 處理程序？

不同的 App 各有自己的副本，所以同時有好幾個是正常的。本頁檢查時，一台閒置的測試筆電上就有三個在執行。


Canonical: https://mole.fit/tw/windows/blog/runtime-broker-high-cpu-memory
