Mac 优化软件:一个词底下的三件不同的活
「优化」这个词底下装着三件互不相干的活,那么多优化类应用跑完什么都没变,原因就在这里。一件是存储问题,一件是「没让它跑它却在跑」的问题,一件是某个子系统出错之后的修复。三者症状不同、机制不同、工具也不同,在一台健康的 Mac 上把三件全跑一遍,很有可能让它更慢。判断自己碰上的是哪一件,用机器上现成的软件几分钟就够,所以先分类。
共用一个词的三件活
收回容量是一个穿着性能外衣的存储问题。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 里是「分析」,它把整个卷画成矩形树图,占地大户就成了一个方块而不是一次猜测,然后交给「清理」去处理它能叫出名字的缓存候选。手动路线见怎么找出大文件。
常驻负载:你没打开却在跑的东西
这里其实混着四类东西:设置为登录时打开的应用、通过 Service Management 注册的后台项、自带 plist 的 launchd 代理与守护进程,以及应用自己派生出来的助手进程,比如浏览器给每个站点开的渲染进程。
「我退出了它又回来了」为什么是正常的
launchd 并不会让每个后台任务一直跑着。对大多数任务,它只是登记一个条件然后等待:一个进来的套接字连接、被监视路径的一次变化、一条 XPC 请求、一个日历周期。条件触发时 launchd 才把任务拉起来,任务空闲下来就允许退出。所以正在运行的那一组会随着一天推移不断变化,强制退出其中一个进程,只意味着它会在下一次触发时重新起来。
所以杀进程不是优化。去系统设置 > 通用 > 登录项与扩展里,或者在所属应用自己的偏好设置里把这一项关掉,然后测一测它提供的那个功能还在不在。
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 然后删掉它。完整做法见怎么关掉开机启动项。
对收益要诚实。清掉四个闲着的助手进程,换来的是登录快一点、待机功耗低一点,不是编译快一点,而一个备份代理或同步客户端,通常值它占的那点资源。
修复:让行为回到正确,不是额外加速
下面每一项修的都是一个具体的错误答案:
- 重建 Spotlight 索引修的是本该搜到却搜不到的情况。先用
mdutil -s /看状态,一次完整重建要花掉数小时的 CPU、发热和电量,除了搜索结果正确之外没有任何收益。 - 清空 DNS 缓存修的是换了坏的 DNS 服务器或者切换 VPN 之后残留的解析结果:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder。它不会重建路由表,刷新路由的影响面大得多,可能直接断掉正在用的隧道或系统代理。 - 重置卡住的预览缓存修的是预览渲染错乱,代价是接下来几次预览会慢一点,因为缓存要重新填。
这里没有一项能让健康的 Mac 变快,要跑就针对一个叫得出名字的症状跑,把这些打包成定期任务卖给你的,卖的是仪式感。
Mole 的「优化」把这些收进一轮能逐条审的执行里,跳过的工作会连原因一起报出来,包括在 VPN 或系统代理开着时它拒绝执行的网络类操作。一个带原因的跳过,胜过一个把决定藏起来的对勾。
优化不可能做到什么
没有软件能加内存,Apple 芯片用的是出厂就焊死的统一内存。没有软件能解开温度墙,芯片一热就会自己降频,kernel_task 占用飙升正是 macOS 在有意逼它降下来。也没有软件能修复闪存磨损,或者让 CPU 每秒多跑几条指令,它被造出来就是那个水平。
优化类应用至今最爱讲的就是内存那条,而它恰好是反的。macOS 会用文件缓存把闲置内存填满,程序一需要空间就立刻释放,所以「已用内存」数字高,正说明系统在正常工作。真正预测 Mac 用起来什么感受的是内存压力,而交换也不是故障,内核会把长时间没被碰过的页写出去,哪怕内存还很宽裕。内存清理工具丢掉的那些缓存,是系统花了代价才建起来的,所以仪表读数好看了,接下来几分钟反而更慢,内存压力到底是什么讲的就是这件事。
先诊断,再挑工具
复现症状,并且在它正在发生的时候取读数,事后再看一眼的快照什么都证明不了。容量看 df -h /,CPU 被谁吃掉看 top -o cpu,记录到的热状态看 pmset -g therm,再加上活动监视器里的内存压力曲线,这一项没有同样好读的命令行版本。然后把看到的对上号:
| 观察到什么 | 属于哪件活 | 该做什么 |
|---|---|---|
| 剩余空间很少,保存和更新都很吃力 | 容量 | 删真实数据,不是删缓存 |
| 登录慢,冒出不认识的助手进程,空闲时 CPU 一直下不来 | 常驻负载 | 逐个厂商审一遍登录项和后台项 |
| 搜索结果不对,预览坏掉,解析结果是旧的 | 修复 | 只跑对应的那一项,然后停手 |
| 日常使用时内存压力就是黄色或红色 | 三件都不是 | 加内存,或者换更轻的活 |
| CPU 被某个具名进程占满 | 三件都不是 | 去处理那个负载本身 |
kernel_task 很高,机器很烫 |
三件都不是 | 看散热或负载,软件永远解决不了 |
六行里有三行的结论是「优化工具帮不上你」,这张表就是为这件事做的。把这些读数拼在一起的是 Mole 的「状态」:大约九块面板,覆盖健康度、CPU、内存、GPU、磁盘 I/O、网络、电池、温度与风扇以及运行时长,每块带一条 60 秒趋势线,下面是每秒刷新的进程列表。60 秒不是历史存档,它也没打算冒充历史。
按各自服务哪件活来看这些工具
Mole,适合还不确定是哪一件的时候
Mole 是这里唯一把三种含义都覆盖到的工具,更有用的是它把三者分开放,而不是揉进同一个按钮。「清理」管容量,「软件」管应用和启动项,「优化」管修复,「状态」告诉你到底有没有问题。
在容量这件事上,顺序比总数更重要。「清理」先扫描,把每个候选项连同准确的路径、归属和大小都摆出来,在这之前什么都不会动。拿不准的一律不勾选,所以默认动作永远是更小的那个。普通删除进废纸篓而不是直接 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,通过 brew install mole 安装,采用 GPL-3.0 免费开源,每条破坏性命令都支持 --dry-run。
iStat Menus,适合长期观察负载和容量
Bjango 的 iStat Menus 三件活一件都不干,它告诉你自己碰上的是哪一件,而且在这件事上是最深的选择:带历史曲线的分核 CPU、含压力的内存占用、压缩内存与交换、磁盘空间与活动加 S.M.A.R.T. 状态、按应用拆分的网络带宽、传感器和电池状态。7.3 版需要 macOS 11 或更高版本,以买断方式出售,分单人版和家庭版,有限时试用,也上了 Setapp,具体条款以官网为准。
历史曲线和按应用的带宽正好对应第二件活,一个整夜悄悄用网的应用,在这里看得见,别处看不见。它不清理、不卸载、也不修任何东西,这份专注本身就是优点,iStat Menus 之外把这一点讲透了。
Sensei,适合看硬件健康顺带做清理
Cindori 的 Sensei 站在诊断和容量之间。官网写着它提供 CPU、GPU 和电池统计、温度与风扇监控、S.M.A.R.T. 硬盘健康、电池循环次数、磁盘速度跑分、SSD Trim 开关和一个状态栏监视器,另外带清理和应用卸载功能。它的商店页提供年度订阅和一次性授权,都最多可用于三台 Mac,没有写明 macOS 版本下限。如果主要吸引力在硬盘和电池健康,可以考虑它,是否合适在 Sensei 之外里有更细的判断。
TG Pro,专门回答温度这个问题
Tunabelly Software 的 TG Pro 是这里读传感器读得最广的:Apple 芯片上的分核 CPU、GPU、通过 S.M.A.R.T. 读的存储、电池健康,以及随机型而异的主板传感器,另外还有按温度触发的 Auto Boost 规则、报警、CSV 记录和诊断报告。它标注支持 macOS 10.13 到 macOS 26,一次性买断,常见问题页写明一份授权在个人使用下最多覆盖三台 Mac,且 2.x 的更新一直免费。
它回答的是三件活都没覆盖的一个问题:如果 Mac 慢是因为烫,清理和精简启动项做多少都不管用。风扇控制要走一个特权助手,这份权限值得慎重给。
OnyX,适合执行叫得出名字的修复操作
Titanium Software 的 OnyX 免费,附带捐赠请求,直接服务第三件活,把维护做成明确的开关而不是一堆建议:校验系统文件结构、清理、卸载应用、删除缓存、重建数据库与索引,以及配置访达、程序坞、Safari 浏览器和 Apple 自家应用。它为每个 macOS 大版本单独出一个构建,并且说得很直白:「每个操作系统大版本都有对应版本的 OnyX,请使用正确的版本,不要试图使用为更早系统准备的版本。」只跑你叫得出名字的那一项。
活动监视器,多数人该先试的免费基准
Apple 的活动监视器覆盖 CPU、内存、能耗、磁盘、网络和缓存活动,是这台机器上关于进程最权威的视图。第一件和第二件活的诊断步骤,它自己就能收尾:内存页里有压力曲线,CPU 页能点出是哪个进程,能耗页能揪出空闲时还在耗电的助手,磁盘页能看到卡顿期间的 I/O。
它的弱项在拼装,不在能力。它是一扇要坐下来看的窗,不是一眼扫过去的东西,也不会把某个藏在资源库里的目录归到某个所属应用头上。打算买优化工具的人,先在这里花十分钟,能不花钱就把「我碰上的是哪件活」定下来。
快速对比
| 工具 | 服务哪件活 | 授权方式(以官网现行条款为准) |
|---|---|---|
| Mole | 三件都有,且分开放 | 买断,两台 Mac |
| iStat Menus | 诊断,带历史存档 | 买断,单人版或家庭版 |
| Sensei | 硬件健康加清理 | 订阅或买断,三台 Mac |
| TG Pro | 温度与传感器的深度 | 买断,三台 Mac |
| OnyX | 修复,每一项都具名 | 免费,请求捐赠 |
| 活动监视器 | 诊断,只有实时数据 | macOS 自带 |
常见问题
Mac 优化类应用真的有用吗
诚实的那些能把一件有边界的事做好。释放容量有用,因为存储是真的约束,清掉常驻负载在登录速度和待机功耗上有用,修复在东西真坏了的时候有用。不管用的是营销底下那句承诺,说给一台本来没毛病的 Mac 扫一遍,它就能变快。
Mac 应该留多少空闲空间
没有官方数字,你读到的每一个百分比都是某个人的经验法则。更有用的说法是预留而不是比例:够一次完整的 macOS 更新暂存,再加上你日常负载下交换需要的余量。改动前后各用 df -h / 量一次,判据是那件原本失败的任务现在成不成。
一个应用退出后又自己起来了,是恶意软件吗
几乎从来不是。launchd 对多数后台任务是由触发条件拉起、空闲后放它退出的,退掉进程并不会动那条注册记录。去登录项与扩展里,或者在所属应用的设置里把这一项关掉,别去杀进程,先确认归属可以看怎么关掉开机启动项。
为了性能重建 Spotlight 索引值得吗
不值得。重建只修错误或缺失的搜索结果,别的什么都不改,代价是数小时的后台索引,跑的过程中 Mac 反而更慢。触发之前先看 mdutil -s /,并且排除掉排除列表和隐私设置的因素,也永远不要把它设成定期任务。
接下来看什么
如果还不知道是哪种资源被打满了,Mac 为什么这么慢按顺序走了一遍各个瓶颈。如果让你不安的读数是内存曲线,内存压力到底是什么讲清了为什么「已用内存」是个看错了的数字。如果答案是常驻负载,怎么关掉开机启动项给的是不会弄坏同步、备份和 VPN 的那套做法。