← 专题目录

第 5 章 性能、存储与电池

2026-10-06 约 12 分钟

「Mac 变慢了」这句话,背后的原因基本只有四类:储存空间快满了、内存被压在交换上、 某个进程卡住了、或者机器在过热降频。这一章按这四类讲怎么判断、怎么处理。

一、先学会看内存:不要看「已用内存」

活动监视器(/Applications/Utilities/,或 ⌘Space 搜)里, 很多人盯着「内存使用」那条柱子,看到用了 80% 就开始焦虑。这是一个误解。

macOS 会把空闲内存主动用来做缓存——文件缓存、程序预加载。 这些内存在需要时随时可以让出来。所以「用得多」本身不是问题。

真正该看的是「内存压力」那张图。

  • 绿色——正常,不用管。
  • 黄色——开始吃紧,系统在压缩内存、把不活跃的页换到磁盘。此时能感觉到切换程序有延迟。
  • 红色——已经不够了,系统在频繁换页。这时候才是真的需要关程序或者加内存。

另一个关键指标是「交换使用」(Swap Used)。

# 看内存压力的整体评估
memory_pressure

# 看交换空间使用情况
sysctl vm.swapusage

# 看虚拟机统计(pageins/pageouts 增长快说明在频繁换页)
vm_stat

判断标准:交换使用长期在几百 MB 以内是正常的;持续超过 2–4GB 并且不断增长,说明内存真的不够。

Apple 芯片的内存是统一内存,买了就不能加。所以买机器时内存的余量比硬盘更值得多花一点钱——硬盘可以外接,内存不行。

二、储存空间:那个「其他」是什么

系统设置 → 通用 → 储存空间,会看到一个彩色条。分类大致是: 应用程序、文稿、系统数据(旧版本叫「其他」)、照片、音乐、邮件、信息、缓存。

「系统数据」经常莫名其妙地涨到几十上百 GB,让人以为系统出问题了。实际构成主要是这几块:

  • 本地时间机器快照——这是最大的一块。开了时间机器但没接备份盘时,系统会把快照存在本地,每小时一个,保留 24 小时。这一项经常占几十 GB。
  • 系统日志和诊断报告。
  • 各种程序的缓存。
  • iOS 设备备份(在 ~/Library/Application Support/MobileSync/Backup/,一次十几 GB 很常见)。
  • Docker 镜像、虚拟机磁盘这类「一个文件吃掉半块盘」的东西。

先查真正的占用大户

# 根目录下各一级目录的大小(-x 不跨卷,-d1 只看一层)
sudo du -x -d1 -h / 2>/dev/null | sort -h

# 用户目录下谁最大
du -x -d1 -h ~ 2>/dev/null | sort -h

# 找出用户目录里大于 1GB 的文件
find ~ -type f -size +1G -exec ls -lh {} \; 2>/dev/null

# 看本地快照占了多少、有几个
tmutil listlocalsnapshots /

# 立刻创建一个快照(手动)
tmutil localsnapshot

# 删除所有本地快照(会释放空间,但也会丢掉本地回滚点)
tmutil deletelocalsnapshots /

tmutil deletelocalsnapshots / 之后,那几十 GB 会立刻回来。 代价是:如果你在没接备份盘的情况下删错了文件,就没法从本地快照恢复了。 建议先接上备份盘做一次完整备份,再删快照。

缓存能删吗

能,但收益通常没有想象中大,而且有代价:

# 用户缓存总大小
du -sh ~/Library/Caches

# 系统缓存总大小
sudo du -sh /Library/Caches

# 清用户缓存(删完程序首次启动会慢一点)
rm -rf ~/Library/Caches/*

不要删 /System/Library/Caches,那部分是系统组件,删了可能引起各种奇怪问题。

比起删缓存,更值得清的是这几处:

  • ~/Downloads——最容易被遗忘的地方,几十 GB 很常见。
  • 废纸篓——不清空就不释放空间。
  • ~/Library/Developer/Xcode/DerivedData 和 iOS DeviceSupport——写 iOS 的人这里能占上百 GB。
  • Docker 的镜像和容器:docker system prune -a。
  • 各种「下载了但没看」的视频文件。

三、CPU 和卡顿:找到那个进程

活动监视器的「CPU」标签页,点「% CPU」列头排序,看最上面是谁。 常见的高占用来源:

  • kernel_task——这不是病毒。它在机器过热时主动占 CPU 来降频保护硬件。看到它飙高,应该查散热,不是杀进程(也杀不掉)。
  • WindowServer——图形合成。外接高分屏、开了很多窗口、或者某个程序疯狂重绘时会高。
  • mds / mds_stores——聚焦搜索索引。刚装完系统或刚拷进大量文件时会跑一阵,属于正常,等它跑完。
  • backupd——时间机器在备份。
  • photolibraryd / photoanalysisd——照片在做人脸和场景识别,插电且空闲时才会跑。
# 命令行看 CPU 前几名(按 CPU 排序,持续刷新)
top -o cpu -n 10

# 看某个进程的详细信息
ps aux | grep 关键词

# 看进程树,找出是谁启动了谁
ps -axo pid,ppid,pcpu,comm | sort -k3 -nr | head -20

四、发热和风扇

Apple 芯片(M 系列)的能效比很高,日常几乎不发热。会明显发热的场景通常是:

  • 视频会议——摄像头 + 编码 + 屏幕共享,是持续的满载工作。
  • 浏览器开了几十个标签——尤其是有广告和视频的页面。
  • 在充电时高负载——充电本身也发热。
  • 放在床上、沙发上——进风口被堵。MacBook 的进风在后侧和底部,出风在转轴处。
  • 外接 4K/5K 屏——驱动高分屏是持续的 GPU 工作。

MacBook Air 没有风扇,热了只能降频,所以长时间高负载时性能会掉。 Pro 有风扇,会先响风扇再降频。

# 看温度和风扇(需要装工具)
brew install --cask stats

# 命令行看电源和电池状态
pmset -g batt
pmset -g therm     # 热压力等级

# 看 CPU 是否被限速(Apple 芯片部分机型可用)
sudo powermetrics --samplers smc -n 1 -i 1000

五、电池:健康度怎么读

系统设置 → 电池 → 电池健康,会显示「正常」或「建议维修」,以及最大容量百分比。

  • 最大容量 80% 以上——正常老化,不用管。
  • 80% 以下——续航明显缩短,可以考虑换电池。
  • 「建议维修」——不只是容量问题,可能是电芯异常,尽快处理。
# 电池循环次数和设计容量
system_profiler SPPowerDataType | grep -A 10 "Battery Information"

# 更详细的电池数据
ioreg -r -c AppleSmartBattery | grep -E "CycleCount|DesignCapacity|MaxCapacity"

「优化电池充电」要不要开

开着。它的作用是把充电停在 80% 附近,等你快要用的时候再充满, 减少电池长期处于满电状态的时间。锂电池最怕两件事:长期满电、长期高温。这个功能同时缓解了前者。

如果你经常需要满电出门,可以在「电池」设置里临时选「充满」。

关于「一直插着电好不好」

现代 Mac 插电时是直接由电源供电,电池不参与放电,所以不会「边充边放」损伤电池。 长期插电的主要问题是持续满电 + 机身温度,而「优化电池充电」正是为此设计的。 所以:插着用没问题,把优化充电开着就行。

六、那些流传很广但没用的「优化」

  • 「清理内存」「释放 RAM」类 App——它们做的事是强制把内存里的缓存清掉, 让数字变好看。结果是系统要重新从磁盘读一遍,更慢。
  • 「关闭 Spotlight 索引」——确实能省一点 CPU,但你同时也失去了全盘搜索。 如果只是嫌它偶尔跑索引,等它跑完就好。
  • 「禁用 swap」——交换空间是保护机制。禁掉之后内存不够时程序会直接被系统杀掉,比慢更糟。
  • 「清理 DNS 缓存能加速上网」——只在 DNS 记录变更后才有意义,日常清它没有任何加速效果。
  • 「关闭视觉效果」——在 Apple 芯片机器上,动画消耗的资源可以忽略。关了只是让界面变丑。

七、一个实际的排查顺序

觉得机器变慢时,按这个顺序走,通常三步之内就能定位:

  1. 看储存空间是不是快满了。低于 10% 可用空间时,APFS 的写入性能会明显下降。
  2. 看内存压力是不是黄的或红的。看活动监视器那张图,不是看柱子高度。
  3. 看 CPU 谁在跑。活动监视器排序,或者 top -o cpu。
  4. 看是不是在后台备份或索引。tmutil status、mdutil -s /。
  5. 重启一次。这一步不是敷衍——长期不关机会积累内存碎片和卡住的后台进程,一周重启一次能解决相当一部分「说不清哪里不对」。

下一章:账户、加密与隐私 →