macbench 是一个开源跑分脚本:电池故障的 Mac 即使插着充电器,macOS 也可能把 CPU 限速一半。在换电池前后各跑一次,用数据确认真相。
$ ./macbench-apple.sh compare results/result_坏电池.txt results/result_换电池后.txt ================ macbench-apple 对比结果 ================ 项目 第一次 第二次 比值(二/一) --------------------------------------------------- 单核分数 240.0 480.0 0.50 ← 性能被限一半 全核分数 1377.0 2754.0 0.49 内存带宽 49.85 49.12 0.98 --------------------------------------------------- CPU_SPEED_LIMIT: 坏电池时 50 → 换电池后 100
两个版本针对两种架构分别设计,选错时脚本会拒绝运行并提示,不会跑错。
SHA256
8b3f1a3ae767ae8ae3a0e53dce79f5349254c8a33ea61461f6a9f168a41d354f
SHA256
30b33a63160ab5981d858ee34fc7d8c1caa43cb95b7a36edd25c306e4620e03b
Apple M 开头 → 用 Apple 版;输出是 i5 / i7 / i9 等 → 用 Intel 版。不想敲命令的话:2020 年底之后买的 MacBook 基本都是 Apple Silicon 版。
每一步都可以直接复制粘贴。全程约 1 分钟,不需要安装任何软件。
终端在哪里?按 ⌘ + 空格 打开聚焦搜索,输入 终端 或 Terminal,回车打开。把下面这行粘贴进去(⌘+V),按回车:
$ sysctl -n machdep.cpu.brand_string Apple M1 ← 以 "Apple M" 开头:用 Apple 版(下面都以此为例) (如果显示 Intel Core i5 / i7 等:改用 macbench-intel.sh,步骤完全一样)
继续在终端里粘贴回车。下载的文件在你的「下载」文件夹(也可以直接点上面下载按钮,效果相同)。
$ curl -fLO https://macbench.pages.dev/macbench-apple.sh # Intel 用户请改用: # curl -fLO https://macbench.pages.dev/macbench-intel.sh
shasum -a 256 macbench-apple.sh,结果应和上面卡片里的 SHA256 一致。
macOS 出于安全考虑,新下载的脚本默认不允许直接运行,需要先解锁(只需做一次):
$ cd ~/Downloads $ chmod +x macbench-apple.sh
ls ~/Downloads 看一眼实际文件名(比如浏览器存成了 macbench-apple (1).sh 或 .txt 结尾),按实际名字改上面命令即可。
跑之前请关掉浏览器、聊天软件等可关的程序,插好充电器。然后:
$ ./macbench-apple.sh
运行中会发生什么:
results/ 文件夹里,屏幕上会直接显示分数。--freq 参数(需要输一次开机密码),用系统官方的 powermetrics 只读工具看实际运行频率:./macbench-apple.sh --freq
换完电池后,在尽量相同的条件下(同样插电源、同样关掉其他程序)重复第 4 步,这次起名「换新电池后」。然后用 compare 对比两次结果 —— 把命令里的文件名换成你自己的:
$ ./macbench-apple.sh compare \ results/result_20260915_200415.txt \ results/result_20260920_150000.txt ↑ 旧文件 ↑ 新文件 (文件名在 results/ 文件夹里找,输入 results/ 后按 Tab 可以自动补全)
对比结果怎么看?往下翻到「结果判读」一节。
「无法打开,因为无法验证开发者」 $ xattr -d com.apple.quarantine ~/Downloads/macbench-apple.sh (去掉 macOS 给下载文件加的隔离标记;脚本源码是明文,可先打开审阅) 「Permission denied」 $ chmod +x macbench-apple.sh ← 第 3 步漏了,补上即可 「本机不是 Apple Silicon Mac」 你的 Mac 是 Intel 芯片,请下载 macbench-intel.sh,命令全部相同
混合浮点+整数负载,固定时间统计迭代数,Apple 版用 QoS 优先派发性能核。
Apple 版独有:满载 30 秒分段统计吞吐量,区分「一直被限速」和「跑久才降频」。
256 MB 缓冲区反复拷贝测 GB/s。降频主要影响 CPU,内存不变可以交叉验证。
读 pmset 自报告的 CPU_Speed_Limit:<100 是「系统主动限速」的直接强证据。
循环次数、当前容量 / 设计容量百分比、永久故障标记,一并写进结果文件。
用官方只读工具 powermetrics 看 P/E 集群实际频率与功耗,需要输一次密码。
分数只用于同一台机器换电池前后对比,跨机器比较没有意义。
| 现象 | 结论 |
|---|---|
| 单核/多核比值 ≈ 0.50 | 性能被限制一半,典型的无电池降频 |
| 多核比值明显低于单核比值 | 睿频被禁用,或部分核心被限制 |
CPU_SPEED_LIMIT < 100 | 强证据:macOS 明确报告了主动限速 |
| 内存带宽比值 ≈ 1.0 | 内存未被限制(正常现象) |
| 所有比值 ≈ 1.0 且无限速 | 两种状态性能无差别 |
CPU_SPEED_LIMIT < 100,基本可以确认电池故障拖慢了整机。
CPU_Speed_Limit < 100 是强证据,但反过来不成立 —— 字段缺失或为 100%
时不能单独排除其他形式的频率管理,请配合持续曲线(SUSTAIN_MIN_RATIO)和 --freq 实际频率交叉验证;