Apple M1 初体验

发布: 2021-12-18   上次更新: 2024-11-02   分类: 效率工具   标签: macOS

文章目录

在 2020 年 11 月 Apple 发布了万众瞩目的 M1 芯片驱动的笔记本,在现如今“芯片荒”的时代,不能不说是一件跨时代的事情,上一次 Apple 这么大的举动,还要追溯到 2005 年,乔布斯在 WWDC 上宣布废弃自家的 PowerPC 处理器,转向 Intel 的怀抱。

事实证明,不思进取的后果就是被淘汰,Apple 之所以抛弃了合作多年的伙伴,主要是 Intel 的 CPU 在性能和功耗控制方法大幅落后于 ARM 架构,并多年来没什么改进。在 B 站上有很多 M1 测评视频,基本上全面碾压 Intel。而且有了 M1,MacBook 也可以做的更轻薄。

https://img.alicdn.com/imgextra/i3/581166664/O1CN0162wfm81z6A738aI58_!!581166664.jpg
M1 介绍
https://img.alicdn.com/imgextra/i4/581166664/O1CN01Ig7Tiz1z6A6rnCYQu_!!581166664.jpg
M1 性能对比

时间来到发布到一年后,在软件生态经过了初期适配后,我立马把之前酷睿 i7 的老 Macbook Pro 换成了 M1 驱动的新本,虽然 M1 Pro 与 Max 也已经发布了,但公司内部还没支持采购,就先申请了第一代的 M1,这篇文章就来说一下她的表现。

键盘

Apple 终于在这一代 MacBook 上去掉了之前坑爹的蝶式键盘,回归到传统的剪刀脚键盘。

另外值得一提的是,touchbar 左右两侧加上了两个物理按钮,ESC 与电源键,在最新的 14/16 寸,touchbar 则完全被去掉了,说明曾经骄傲的 Apple 也承认这个 bar 确实没啥用。

https://img.alicdn.com/imgextra/i2/581166664/O1CN010dN4og1z6A6wPrzoC_!!581166664.jpg
剪刀脚键盘

芯片

2020 款的 mbp 配备的是 M 系列的第一代,这也是苹果第一款系统级芯片(SoC,System on a Chip),这意味着 M1 把不同的组件,比如 CPU、GPU、RAM、 Neural Engine 等都放在了一个芯片上,对比之前 Intel 的芯片,这些不同组件都是由不同芯片负责的,很明显,集成到一起的好处就是可以减少数据拷贝,因此更高效。

M1 的具体参数如下:

  • 8-core CPU with 4 performance cores and 4 efficiency cores
  • 8-core GPU
  • 16-core Neural Engine
M1 芯片

CPU

性能核心顾名思义,主要是为功耗大的单线程任务,四个性能核心可以协同工作,提供令人印象深刻的多线程性能,这使得 M1 Mac 甚至超过了之前最高端的16英寸 MacBook Pro 机型。

对于像浏览网页之类不需要太多功耗的任务,交给能效核心,它只会使用十分之一的功率,从而保持电池寿命。这也就意味着 M1 的笔记本会非常省电。

当不需要大量动力时,这些核心可以单独工作,但对于要求很高的任务,所有八个核心可以同时参与。

GPU

Pro 版本配备 8 个 GPU,这 8 个 GPU 能够同时运行近25,000个线程,吞吐量为2.6万亿次浮点运算(teraflops)。

测试证明,M1 的 GPU 性能超过 GeForce GTX 1050 Ti 和 Radeon RX 560,

Neural Engine

神经引擎(Neural Engine)的设计是为了加速机器学习任务,如视频分析,语音识别,图像处理等等。

16 个神经引擎每秒可进行 11 万亿次操作,与前一代机器相比,机器学习性能提高了15倍。

性能测试

上面介绍的内容大都是苹果打的广告,理论值而已,为了真实体验 M1 的威力,我测试了 InfluxDB IOx 编译速度,IOx 是 Rust 编写的新一代时序引擎。

命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# 测试 commit
git checkout d0f588d3b800894fe0ebd06b6f9a184ca6a603d7

# Rust 版本
$ cat rust-toolchain.toml
[toolchain]
channel = "1.57"
components = [ "rustfmt", "clippy" ]

# 测试 4 次,期间不进行任何操作,排除第一次下载依赖
for i in $(seq 4) ; do
  cargo clean && time cargo build --release >> /tmp/cost 2>&1;
done

机器

两台机器操作系统均为目前最新的 Monterey。

MacBook Pro (15-inch, 2017) 2.9 GHz Quad-Core Intel Core i7 16 GB 2133 MHz LPDDR3

MacBook Pro (13-inch, M1, 2020) Chip: Apple M1 Total Number of Cores: 8 (4 performance and 4 efficiency) Memory: 16 GB

结果

测试期间,两台机器的 8 个 Core 都已跑满,而且 M1 整个测试期间非常安静,没有 i7 风扇呼呼的声音。

https://img.alicdn.com/imgextra/i2/581166664/O1CN01jAwuSR1z6A6qEIhAY_!!581166664.png
Intel i7 htop
https://img.alicdn.com/imgextra/i1/581166664/O1CN01PJEHEP1z6A72Rdno5_!!581166664.png
M1 htop
Intel i7M1
real17m8s8m40s
user58m11s27m30s
sys3m19s50s

三次的测试数据差不多,因此这里只给出了一组,可以看到 M1 相比 Intel i7 耗时减少了两倍,而且在 sys 上耗时少了三倍,sys 主要是系统调用的耗时,说明 Apple 的 Monterey 系统针对 M1 处理器有优化。

环境配置

上面介绍了 M1 的性能表现,这一小节主要是来介绍下如何从之前的型号切换到 M1 上来。

文件迁移

我个人使用文档不是很多,主要是一些 PDF 文件,所以可以比较方便的通过 iCloud 做同步

https://img.alicdn.com/imgextra/i2/581166664/O1CN012DFv031z6A6rkKJMs_!!581166664.jpg
系统设置 -> iCloud Drive

其他的像代码、笔记基本上都在 Git 仓库中,不用怎么专门处理。 值得说明一点,在尝试了 N 多笔记软件后,现在只用 org-mode 来做笔记,纯文本既方便备份,也不必担心被绑定在某一平台上。

Trackpad

Trackpad 即触摸板,MacBook 的触摸板非常好用,完全可以摆脱鼠标的束缚。我一般会做如下几处配置:

  • 手指轻点来实现点击效果,默认需要按下去的方式很不方便
https://img.alicdn.com/imgextra/i3/581166664/O1CN0160WuYX1z6A70m4nGD_!!581166664.png
单指点击
  • 三指轻点进行单词查找
https://img.alicdn.com/imgextra/i3/581166664/O1CN01Guwz9K1z6A70CpZHm_!!581166664.png
三指轻点
  • 三指拖拉窗口,这个也非常好用,否则的话需要用两只手来操作。这个配置比较隐蔽,不是在 Trackpad 里面,而是在如下位置:
https://img.alicdn.com/imgextra/i3/581166664/O1CN01O2FMru1z6A6wOSS0S_!!581166664.png
三指拖拉窗口

快捷键

默认的 MacBook 快捷键配置,会影响到 Emacs 里面的一些功能,主要是 Mission Control 里面的 Ctrl 与左右方向键,一般我会取消掉

https://img.alicdn.com/imgextra/i3/581166664/O1CN01E0uslc1z6A6upp2He_!!581166664.png
取消容易冲突的快捷键

Spotlight

系统默认的 Spotlight 功能不够强大,我一般会替换成免费的 Raycast,执行脚本、剪贴板管理,统统不在话下。

开发环境

  • 默认 shell 改成 bash,主要是为了与 Linux 兼容,而且 Emacs 中的 eshell 也能够满足日常需求,不希望再折腾新 shell 了

https://img.alicdn.com/imgextra/i2/581166664/O1CN01N1coOa1z6A6udcAL3_!!581166664.png

  • 安装 Xcode Command Line, xcode-select --install 会安装 git 命令
  • 家目录下的各种配置文件,像 .bashrc 之类的,通过一个 dotfiles Git 仓库加软链解决。一个技巧:尽量使用 XDG 规范的配置方式,这样可以避免家目录被污染
  • 使用 homebrew 安装使用的软件。在 M1 上,brew 的目录被换成了 /opt/homebrew ,专门存放 ARM 架构的软件, 之前的 /usr/local 只用来放 x86 的。
  • 可以在 Does It ARM? 这个网站上查看各类软件对 M1 支持的情况。我个人重度使用的均已原生支持:

  • 需要说明一点:即使该软件没有适配 ARM 架构,也可以借助于 Rosetta 2 技术来运行,只是相比原生 ARM 应用来说,性能会差一些

总结

本文写于新款 M1 笔记本到手两天内的对比,总体来说比较满意,电池性能目前还看不出来,后面有更多体验时再来更新。

2023-06-11 更新

M1 的续航真是的误用质疑,好多次我在结束一天的工作后,才意识到竟然没有插电源!

如果读者手中还有老款的 MacBook,推荐抓紧时间转手处理掉,不要让她再继续贬值了,M1 值得拥有。

https://img.alicdn.com/imgextra/i1/581166664/O1CN01UGcF7V1z6A738zOnb_!!581166664.jpg
M1

参考

评论

欢迎读者通过邮件与我交流,也可以在 MastodonTwitter 上关注我。