# Mac 优化软件：一个词底下的三件不同的活

> 收回容量、清掉常驻负载和修复出错的行为是三个互不相干的问题，需要三套互不相干的工具。哪款应用诚实地服务哪一件，以及优化软件对硬件做不到什么。

Published: 2026-08-19 | Updated: 2026-08-22

「优化」这个词底下装着三件互不相干的活，那么多优化类应用跑完什么都没变，原因就在这里。一件是存储问题，一件是「没让它跑它却在跑」的问题，一件是某个子系统出错之后的修复。三者症状不同、机制不同、工具也不同，在一台健康的 Mac 上把三件全跑一遍，很有可能让它更慢。判断自己碰上的是哪一件，用机器上现成的软件几分钟就够，所以先分类。

## 共用一个词的三件活

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/optimization-three-meanings.webp" width="1360" height="454" loading="lazy" alt="「优化」这个词分成三件独立的活：在快满的卷上收回容量、清掉登录项与 launchd 代理这类常驻后台负载、以及修复 Spotlight 索引失效这类子系统故障。">
  <figcaption>三者共用一个营销词，除此之外毫无关系，跑错那一件，费时间还没收益。</figcaption>
</figure>

**收回容量**是一个穿着性能外衣的存储问题。Mac 慢不是因为它脏，而是因为 macOS 为了完成每一次写入，多做了很多事。

**清掉常驻负载**针对的是你没打开、它却存在的那些进程：登录项、后台助手、launchd 代理、更新器、浏览器辅助进程。收益是真的，但有上限，它体现在登录速度和待机功耗上，不在峰值性能上。

**恢复正确行为**指的是各种修复：重建 Spotlight 索引、清空 DNS 缓存、重置卡住的预览缓存。它们修的是一个答错了的子系统，不是加速，所以在一台好好的 Mac 上跑，纯亏。

## 容量：披着性能外衣的存储问题

APFS 是写时复制的。改一个文件不会就地覆盖它的数据块，而是分配新块再把元数据指过去，所以哪怕文件没变大，编辑一个大文件也可能需要空闲块。快照存在期间，旧块还会被继续引用着。macOS 还要给交换、临时文件以及一份完整暂存的系统更新留地方，所以有时候卷上的剩余空间明明比下载体积还大，更新照样装不上去。

空间紧张时，一次分配就不再是瞬间完成的，因为系统会先回收：逐出缓存、把符合条件的快照变薄、清掉云端已优化的内容，这些都是真实的 I/O，而且要赶在你那次写入完成之前做完。闪存底下还压着第二层，它的擦除单位比写入单位大得多，主控手里空闲块不多时，得先把有效数据搬到一起才能擦。这一层在 macOS 里观察不到，就当成一个别贴着上限过日子的理由。

到处能读到的那条规则是留 10%、15% 或者 20% 空闲，这些没有一个是 Apple 的规格，Apple 自己那句「启动磁盘将满」的提示触发点也从没公布过。比百分比更诚实的说法是留一份余量，日常最大的那件事要占多少就留多少，对多数人来说就是一次 macOS 更新的暂存。

```
df -h /
diskutil info / | grep -i "Container"
```

把数字记下来，做一次改动，再读一次。判据是那件原本失败的任务现在成不成，不是那个比例。同一件事在 [Mole](https://mole.fit/zh/) 里是「分析」，它把整个卷画成矩形树图，占地大户就成了一个方块而不是一次猜测，然后交给「清理」去处理它能叫出名字的缓存候选。手动路线见[怎么找出大文件](https://mole.fit/zh/blog/how-to-find-large-files-on-mac)。

## 常驻负载：你没打开却在跑的东西

这里其实混着四类东西：设置为登录时打开的应用、通过 Service Management 注册的后台项、自带 plist 的 launchd 代理与守护进程，以及应用自己派生出来的助手进程，比如浏览器给每个站点开的渲染进程。

### 「我退出了它又回来了」为什么是正常的

launchd 并不会让每个后台任务一直跑着。对大多数任务，它只是登记一个条件然后等待：一个进来的套接字连接、被监视路径的一次变化、一条 XPC 请求、一个日历周期。条件触发时 launchd 才把任务拉起来，任务空闲下来就允许退出。所以正在运行的那一组会随着一天推移不断变化，强制退出其中一个进程，只意味着它会在下一次触发时重新起来。

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/launchd-on-demand.webp" width="1360" height="454" loading="lazy" alt="launchd 位于中心，随着触发条件到来按需拉起小服务，可能是一个连接、一个文件、一条 XPC 消息，空闲后又让它们退出，所以运行中的那一组一直在变。">
  <figcaption>按需启动是设计，不是症状。真正的开关是让这个任务变得可启动的那条注册记录，不是你刚杀掉的那个进程。</figcaption>
</figure>

所以杀进程不是优化。去**系统设置 > 通用 > 登录项与扩展**里，或者在所属应用自己的偏好设置里把这一项关掉，然后测一测它提供的那个功能还在不在。

### `launchctl print-disabled` 到底显示了什么

```
launchctl print-disabled gui/$(id -u)
```

```
disabled services = {
	"com.raycast.macos.RaycastLauncher" => enabled
	"com.apple.Siri.agent" => disabled
	"ddddxxx.LyricsXHelper" => enabled
}
```

标题虽然这么写，它却不是一份已禁用服务的列表，而是某一个域的持久化覆盖记录，凡是被显式启用或禁用过的标签都在里面，当时定的是启用还是禁用也一并记着。多数条目读出来是 `enabled`，而一个不在列表里的标签只是没有覆盖记录，这和「没装」不是一回事。

所以它回答的是「我或者某个应用明确关掉了什么」，不是「什么正在跑」。`launchctl print gui/$(id -u)` 才是当前用户域的只读视图，而且服务标签未必和文件名或应用名对得上，所以绝不要从进程名去推一个 plist 然后删掉它。完整做法见[怎么关掉开机启动项](https://mole.fit/zh/blog/how-to-disable-startup-programs-on-mac)。

对收益要诚实。清掉四个闲着的助手进程，换来的是登录快一点、待机功耗低一点，不是编译快一点，而一个备份代理或同步客户端，通常值它占的那点资源。

## 修复：让行为回到正确，不是额外加速

下面每一项修的都是一个具体的错误答案：

- **重建 Spotlight 索引**修的是本该搜到却搜不到的情况。先用 `mdutil -s /` 看状态，一次完整重建要花掉数小时的 CPU、发热和电量，除了搜索结果正确之外没有任何收益。
- **清空 DNS 缓存**修的是换了坏的 DNS 服务器或者切换 VPN 之后残留的解析结果：`sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder`。它不会重建路由表，刷新路由的影响面大得多，可能直接断掉正在用的隧道或系统代理。
- **重置卡住的预览缓存**修的是预览渲染错乱，代价是接下来几次预览会慢一点，因为缓存要重新填。

这里没有一项能让健康的 Mac 变快，要跑就针对一个叫得出名字的症状跑，把这些打包成定期任务卖给你的，卖的是仪式感。

<figure class="blog-diagram">
  <img src="https://mole.fit/img/en/optimize.webp" width="2584" height="1741" loading="lazy" alt="Mole 正在执行一轮维护，每一步都有名字并单独打勾，计数器显示二十三步里的第十步正在进行。">
  <figcaption>一轮修复应该给每一步命名，并说明跳过了什么、为什么跳过，一个成功动画什么可操作的信息都没给你。</figcaption>
</figure>

[Mole](https://mole.fit/zh/) 的「优化」把这些收进一轮能逐条审的执行里，跳过的工作会连原因一起报出来，包括在 VPN 或系统代理开着时它拒绝执行的网络类操作。一个带原因的跳过，胜过一个把决定藏起来的对勾。

## 优化不可能做到什么

没有软件能加内存，Apple 芯片用的是出厂就焊死的统一内存。没有软件能解开温度墙，芯片一热就会自己降频，`kernel_task` 占用飙升正是 macOS 在有意逼它降下来。也没有软件能修复闪存磨损，或者让 CPU 每秒多跑几条指令，它被造出来就是那个水平。

优化类应用至今最爱讲的就是内存那条，而它恰好是反的。macOS 会用文件缓存把闲置内存填满，程序一需要空间就立刻释放，所以「已用内存」数字高，正说明系统在正常工作。真正预测 Mac 用起来什么感受的是**内存压力**，而交换也不是故障，内核会把长时间没被碰过的页写出去，哪怕内存还很宽裕。内存清理工具丢掉的那些缓存，是系统花了代价才建起来的，所以仪表读数好看了，接下来几分钟反而更慢，[内存压力到底是什么](https://mole.fit/zh/blog/mac-memory-pressure-explained)讲的就是这件事。

## 先诊断，再挑工具

复现症状，并且在它正在发生的时候取读数，事后再看一眼的快照什么都证明不了。容量看 `df -h /`，CPU 被谁吃掉看 `top -o cpu`，记录到的热状态看 `pmset -g therm`，再加上活动监视器里的内存压力曲线，这一项没有同样好读的命令行版本。然后把看到的对上号：

| 观察到什么 | 属于哪件活 | 该做什么 |
|---|---|---|
| 剩余空间很少，保存和更新都很吃力 | 容量 | 删真实数据，不是删缓存 |
| 登录慢，冒出不认识的助手进程，空闲时 CPU 一直下不来 | 常驻负载 | 逐个厂商审一遍登录项和后台项 |
| 搜索结果不对，预览坏掉，解析结果是旧的 | 修复 | 只跑对应的那一项，然后停手 |
| 日常使用时内存压力就是黄色或红色 | 三件都不是 | 加内存，或者换更轻的活 |
| CPU 被某个具名进程占满 | 三件都不是 | 去处理那个负载本身 |
| `kernel_task` 很高，机器很烫 | 三件都不是 | 看散热或负载，软件永远解决不了 |

六行里有三行的结论是「优化工具帮不上你」，这张表就是为这件事做的。把这些读数拼在一起的是 [Mole](https://mole.fit/zh/) 的「状态」：大约九块面板，覆盖健康度、CPU、内存、GPU、磁盘 I/O、网络、电池、温度与风扇以及运行时长，每块带一条 60 秒趋势线，下面是每秒刷新的进程列表。60 秒不是历史存档，它也没打算冒充历史。

## 按各自服务哪件活来看这些工具

### Mole，适合还不确定是哪一件的时候

[Mole](https://mole.fit/zh/) 是这里唯一把三种含义都覆盖到的工具，更有用的是它把三者分开放，而不是揉进同一个按钮。「清理」管容量，「软件」管应用和启动项，「优化」管修复，「状态」告诉你到底有没有问题。

在容量这件事上，顺序比总数更重要。「清理」先扫描，把每个候选项连同准确的路径、归属和大小都摆出来，在这之前什么都不会动。拿不准的一律不勾选，所以默认动作永远是更小的那个。普通删除进废纸篓而不是直接 unlink，出了错是从废纸篓里拖回来，不是从备份里恢复，每一次文件操作都会追加到 `~/Library/Logs/mole/operations.log`。真正的功夫在保护清单里：`~/.ollama/models`、`~/.lmstudio/models` 和 `~/.cache/huggingface` 永远不会成为候选，因为这些工具在模型之间共享内容寻址的数据块，只有它们自己知道哪个块还被引用着。`~/.codex/sessions` 和 `~/.claude/projects` 下的会话记录，不管多旧都不碰。

在常驻负载这件事上，「软件」把应用清单、更新状态和启动项放在同一屏，一个条目要能对上已验证的 launchd 任务或系统注册的登录项，它才去动那个开关。凡是它证明不了的，都把你引到系统设置去，而不是去写一个受保护的数据库，或者凭空编一个服务标签。

实际用法是：先读「状态」的面板，再打开和你看到的现象对应的那个页面。盘满就去「清理」，登录慢就去「软件」，搜索或预览坏了就去「优化」。

Mole 的边界说白了：不是恶意软件处置，不是备份，也替代不了带驱动、VPN 组件或系统扩展的软件自带的卸载器。

价格是 $19 买断，终身免费更新，一份授权两台 Mac，需要 macOS 14 或更高版本，14 天可退。扫描一直免费，每个付费工具还能免费用两次，所以上面这些说法掏钱之前都能验，全部在本地跑，没有遥测。终端里可以用 [Mole CLI](https://github.com/tw93/Mole)，通过 `brew install mole` 安装，采用 GPL-3.0 免费开源，每条破坏性命令都支持 `--dry-run`。

### iStat Menus，适合长期观察负载和容量

Bjango 的 [iStat Menus](https://bjango.com/mac/istatmenus/) 三件活一件都不干，它告诉你自己碰上的是哪一件，而且在这件事上是最深的选择：带历史曲线的分核 CPU、含压力的内存占用、压缩内存与交换、磁盘空间与活动加 S.M.A.R.T. 状态、按应用拆分的网络带宽、传感器和电池状态。7.3 版需要 macOS 11 或更高版本，以买断方式出售，分单人版和家庭版，有限时试用，也上了 Setapp，具体条款以官网为准。

历史曲线和按应用的带宽正好对应第二件活，一个整夜悄悄用网的应用，在这里看得见，别处看不见。它不清理、不卸载、也不修任何东西，这份专注本身就是优点，[iStat Menus 之外](https://mole.fit/zh/blog/istat-menus-alternative)把这一点讲透了。

### Sensei，适合看硬件健康顺带做清理

Cindori 的 [Sensei](https://cindori.com/sensei) 站在诊断和容量之间。官网写着它提供 CPU、GPU 和电池统计、温度与风扇监控、S.M.A.R.T. 硬盘健康、电池循环次数、磁盘速度跑分、SSD Trim 开关和一个状态栏监视器，另外带清理和应用卸载功能。它的[商店页](https://cindori.com/store/sensei)提供年度订阅和一次性授权，都最多可用于三台 Mac，没有写明 macOS 版本下限。如果主要吸引力在硬盘和电池健康，可以考虑它，是否合适在 [Sensei 之外](https://mole.fit/zh/blog/sensei-alternative)里有更细的判断。

### TG Pro，专门回答温度这个问题

Tunabelly Software 的 [TG Pro](https://www.tunabellysoftware.com/tgpro/) 是这里读传感器读得最广的：Apple 芯片上的分核 CPU、GPU、通过 S.M.A.R.T. 读的存储、电池健康，以及随机型而异的主板传感器，另外还有按温度触发的 Auto Boost 规则、报警、CSV 记录和诊断报告。它标注支持 macOS 10.13 到 macOS 26，一次性买断，[常见问题页](https://www.tunabellysoftware.com/support/faq/)写明一份授权在个人使用下最多覆盖三台 Mac，且 2.x 的更新一直免费。

它回答的是三件活都没覆盖的一个问题：如果 Mac 慢是因为烫，清理和精简启动项做多少都不管用。风扇控制要走一个特权助手，这份权限值得慎重给。

### OnyX，适合执行叫得出名字的修复操作

Titanium Software 的 [OnyX](https://titanium-software.fr/en/onyx.html) 免费，附带捐赠请求，直接服务第三件活，把维护做成明确的开关而不是一堆建议：校验系统文件结构、清理、卸载应用、删除缓存、重建数据库与索引，以及配置访达、程序坞、Safari 浏览器和 Apple 自家应用。它为每个 macOS 大版本单独出一个构建，并且说得很直白：「每个操作系统大版本都有对应版本的 OnyX，请使用正确的版本，不要试图使用为更早系统准备的版本。」只跑你叫得出名字的那一项。

### 活动监视器，多数人该先试的免费基准

Apple 的[活动监视器](https://support.apple.com/guide/activity-monitor/welcome/mac)覆盖 CPU、内存、能耗、磁盘、网络和缓存活动，是这台机器上关于进程最权威的视图。第一件和第二件活的诊断步骤，它自己就能收尾：内存页里有压力曲线，CPU 页能点出是哪个进程，能耗页能揪出空闲时还在耗电的助手，磁盘页能看到卡顿期间的 I/O。

它的弱项在拼装，不在能力。它是一扇要坐下来看的窗，不是一眼扫过去的东西，也不会把某个藏在资源库里的目录归到某个所属应用头上。打算买优化工具的人，先在这里花十分钟，能不花钱就把「我碰上的是哪件活」定下来。

## 快速对比

| 工具 | 服务哪件活 | 授权方式（以官网现行条款为准） |
| --- | --- | --- |
| Mole | 三件都有，且分开放 | 买断，两台 Mac |
| iStat Menus | 诊断，带历史存档 | 买断，单人版或家庭版 |
| Sensei | 硬件健康加清理 | 订阅或买断，三台 Mac |
| TG Pro | 温度与传感器的深度 | 买断，三台 Mac |
| OnyX | 修复，每一项都具名 | 免费，请求捐赠 |
| 活动监视器 | 诊断，只有实时数据 | macOS 自带 |

## 常见问题

### Mac 优化类应用真的有用吗

诚实的那些能把一件有边界的事做好。释放容量有用，因为存储是真的约束，清掉常驻负载在登录速度和待机功耗上有用，修复在东西真坏了的时候有用。不管用的是营销底下那句承诺，说给一台本来没毛病的 Mac 扫一遍，它就能变快。

### Mac 应该留多少空闲空间

没有官方数字，你读到的每一个百分比都是某个人的经验法则。更有用的说法是预留而不是比例：够一次完整的 macOS 更新暂存，再加上你日常负载下交换需要的余量。改动前后各用 `df -h /` 量一次，判据是那件原本失败的任务现在成不成。

### 一个应用退出后又自己起来了，是恶意软件吗

几乎从来不是。launchd 对多数后台任务是由触发条件拉起、空闲后放它退出的，退掉进程并不会动那条注册记录。去登录项与扩展里，或者在所属应用的设置里把这一项关掉，别去杀进程，先确认归属可以看[怎么关掉开机启动项](https://mole.fit/zh/blog/how-to-disable-startup-programs-on-mac)。

### 为了性能重建 Spotlight 索引值得吗

不值得。重建只修错误或缺失的搜索结果，别的什么都不改，代价是数小时的后台索引，跑的过程中 Mac 反而更慢。触发之前先看 `mdutil -s /`，并且排除掉排除列表和隐私设置的因素，也永远不要把它设成定期任务。

## 接下来看什么

如果还不知道是哪种资源被打满了，[Mac 为什么这么慢](https://mole.fit/zh/blog/why-is-my-mac-so-slow)按顺序走了一遍各个瓶颈。如果让你不安的读数是内存曲线，[内存压力到底是什么](https://mole.fit/zh/blog/mac-memory-pressure-explained)讲清了为什么「已用内存」是个看错了的数字。如果答案是常驻负载，[怎么关掉开机启动项](https://mole.fit/zh/blog/how-to-disable-startup-programs-on-mac)给的是不会弄坏同步、备份和 VPN 的那套做法。

---

Canonical HTML page: https://mole.fit/zh/blog/mac-optimization-apps
Blog index for agents: https://mole.fit/zh/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
