这篇文章主要是从我最近微博动态等提取的观点整合成的一份总结,也发在 B 站专栏了,详情可以点击这里查看

最近入手了 M1 Mac mini,低配加到 16G 内存,就迫不及待拿来尝试。目前从前端的角度来说,基本是正面的。

优势

硬件上就不多说了,评测很多。M1 有计算能力、内存带宽、SSD 速度、功耗、发热等方面的优势,总体是好于 Intel 不少的。

软件上可能有很多人担心兼容性问题。就前端来说,其实完全是可解决的问题。首先前端依赖的工具主要是 Node.js、文本编辑器(非 IDE,如 VSCode)以及 npm 生态。Node.js 是可以通过 Rosetta 2 安装及运行的,ARM 版正在研发中。VSCode 同样,不过 Insider 版本已经有 ARM 的支持了。

至于 npm 这个就很不好说了,大部分包其实都是可以直接 import/require 的 js 文件,并没有环境依赖,然而还是有少部分怪异的包,比如我们非常常用的 node-sass,它在安装的时候需要根据你本机环境来编译,因为开发者尚未适配,所以无法识别当前 environment,这时你只能手动编译,需要利用 unix 的 arch 指令,加上前缀 arch -x86_64 运行 npm rebuild node-sass。

另外说到 arch -x86_64,它在 ARM 的 macOS 上其实可以起到一种“欺骗”的作用,让你的命令完全通过 Rosetta 2 以 Intel 的兼容模式运行。Homebrew 就是很好的例子,开发者尚未兼容时可以使用它来安装。不过其实没必要滥用,只需要在遇到不适配的时候使用即可。

那么 M1 在实际开发中有什么优势呢?前端在开发中需要高性能计算的场景其实不多,除非是有特殊功能需求。比较常见的情况是跑单元测试,由于 Jest 是会占满所有 CPU 物理核心的,所以性能还是可以一定程度上从这里来评价的。实际结果大概是,接近 800 个 case,M1 比两三年前的 Intel 的 Mac 要快上 10 秒左右,而且还能同时做别的事(Intel 机子会变卡甚至可能就卡得做不了别的事了)。其他场景不好明说,但是就是“各种方面都很快”,平常对电脑的运行速度敏感的话,你应该能明显体会到。

缺点

当然缺点还是有的,一是雷电口都只有两个,二是 GPU 性能。GPU 要打目前的中高端独显是不可能的,但是其实前端开发中用不到这些。比较大的影响就是视频输出能力,Intel 的机型特别是带独显的,输出三四个非 4K 分辨率是没什么问题,但是 M1 最多只能支持 2 个屏幕(包括内建的),也就是 MacBook 只能外接一个,Mac mini 可以两个但是必须 HDMI + USB-C(双 C 还真的不行)。众所周知显示器数量和生产力成正比关系,所以这可能是个问题。不过如果有 iPad Pro 或者 iPad Air 4 的话还可以用随航接一个。

Bug 目前也是存在的,我遇到最严重有的两个问题。

首先是我这台 Mac mini 从登陆后的界面关机必报错,反应是屏幕闪一下粉色块,然后关机,再重启的话会提示有出错,然后一看 panic 都是 Apple 的东西,我也不是专家所以不知道是什么问题。如果是开机未登录的情况下关机则不会报错。

其次是蓝牙,偶尔会出现蓝牙全部断开的情况,比如触控板想要再度连接回去,它也直接闪粉色块然后自动重启,panic 里面显示好像是 IO 相关的问题。

不过好在这两个问题出现的频率不高,首先绝大部分时候不需要手动关机(Mac mini 想携带到公司这种比较少人会吧),然后蓝牙的问题不是很确定触发的原因,我用了快两周大概出现不超过3次,没有在工作中崩溃的情况,也不会担心它什么时候崩溃而导致代码未保存的丢失。蓝牙的问题据说和系统有关,有的人反馈 Intel 机子也会。

所以具体看苹果怎么修复这些东西了。

总结

尽管有影响生产力的小问题,总体来说我对它的评价还是正面的,可以立即入手作为生产力,外接显示器的问题甚至你想为它改变你的工作流我觉得也是值的。

所以我已经下单准备把我以前的主力工作机 18 款 15 寸低配 MacBook Pro 拿去回收折抵换一台新的低配版 M1 MacBook Air 了,当然还是加到 16G 内存。MBP 回收有 7800 的预估价,如果正常的话我只需要多付 Care+ 和内存的钱就能用上 M1 了。

选择低配 Air 并且加内存的原因是:

第一,内存 8G 我觉得是不够用的,因为我在使用 16G 的 Mac mini 进行开发的时候经常会遇到剩余 5G 多的情况,Chrome 和 Node 都非常吃内存,所以盲猜 8G 内存应该会卡,只不过我没这个成本去试错,就直接买 16G。

第二,低配 Air 的 GPU,7 核和 8 核对于前端开发者来说完全没区别,以前用 Intel 集显也不是不能开发,现在 M1 的 GPU 甚至比 Intel 集显更强。然后上面提到的外接显示器的能力并没有因为 GPU 核心数而改变。最后就是也有其他人体验过 GPU 性能说没太大区别。

第三,SSD 因为我有雷电 3 NVME 硬盘盒 + 西数蓝盘 1T,之前用来做 FCPX 的,所以本质上无压力,这七年来我一直在用 256G 的 Mac。

第四,散热。温度方面我没法做判断,因为 iStat Menus 对于 M1 的支持只有到 SSD 温度,我又没测温枪去实时关注它,看别人的评价我觉得是可以接受的水平。