# Runtime Broker 占用 CPU 或内存高怎么办

Runtime Broker 是 Windows 的正常进程，也就是 `RuntimeBroker.exe`，它夹在商店类 App 和这些 App 要用的系统能力之间，比如定位和麦克风，平时几乎不占 CPU，内存也不多。它占用很高时，原因几乎总是某一个打包 App 一直在找它要东西，所以要做的是找到那个 App，结束 Runtime Broker 只能管几分钟。

## 正常的电脑上它是什么样

微软公开讲这个进程的内容不多，这里直接看一台 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 后 CPU 短暂升高几个百分点 | 正常的权限检查 | 不用管 |
| 开着某个 App 时 CPU 一直高 | 这个 App 在反复请求 | 更新、重置或者卸载它 |
| 内存一连几个小时往上涨，涨到几 GB | 这个副本或者它服务的 App 有内存泄漏 | 结束这个副本，再按上面的办法找 App |
| 没开 App 也一阵一阵升高 | 小组件、开始菜单或者系统提示 | 看下面 |

## 一个常被提到的设置

不少报告把 Runtime Broker 的 CPU 占用和 Windows 提示联系在一起，上面的办法都没用的话，可以关掉“设置 › 系统 › 通知 › 其他设置 › 使用 Windows 时获取提示和建议”。微软没有写过这层关系，它只是常见的说法，不算查实的原因，但试一下没有成本，一天之内就能看出有没有用。

## 它是不是病毒

真的文件在 `C:\Windows\System32`，有微软的签名。如果副本从别的地方运行，名字有细微差别，或者启动它的不是 `svchost.exe`，就用 Microsoft Defender 扫一遍，路径可以用上面的 PowerShell 命令查。

## 不要这样做

- 不要删除 `RuntimeBroker.exe`，也不要改它的所有者来拦它，依赖它的 App 会出问题，Windows 也会把文件缺失当成损坏。
- 不要照论坛的帖子改注册表禁用它，商店 App 需要它，症状没了，那个 App 还是没找到。
- 不要一遍遍结束它，结束一个副本问题不大，只是它服务的 App 可能出错或者关闭，需要时 Windows 还会再启动一个。
- 不要因为它去装“内存清理”工具，这类工具只是把内存暂时推到磁盘上，反而多了磁盘的活。

## Mole 能做什么

Mole for Windows 的状态页会把同一会话里的 Runtime Broker 合成一行，关 App 时可以盯着加起来的 CPU 和内存。在这一行的菜单里选“为什么在运行？”，会列出打开那一刻占用最高的几个副本，想比较就重新打开一次，还能看到“可执行文件”和启动它的进程，正好用来核对上面说的路径和父进程。Runtime Broker 从 Windows 文件夹运行，所以 Mole 把它标成系统进程，不提供“终止”和“强制退出”。Mole 也不管理 App 权限和系统提示。范围更大的问题可以看 [Windows CPU 占用高怎么查](/zh/windows/blog/windows-high-cpu-usage)、[Windows 内存占用高](/zh/windows/blog/windows-high-memory-usage) 和 [商店自己的进程 wsappx](/zh/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 吗？

不要禁用，商店 App 需要它，声称能禁用的注册表改法，只会留下一个出错的 App，原来的原因也还在。

### 为什么有好几个 Runtime Broker 进程？

不同的 App 有各自的副本，所以同时有几个是正常的，核对这篇文章时，一台闲着的测试笔记本上就有三个。


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