New Mac MBP M1 Pro 14' 使用体验

2022/01/28

公司这次因为项目需要,给配了台Mac。使用了一阵子,写个总结心得,给以后的同学提供些帮助。

外观

外观就这样
方方正正的没什么新意。去掉了Touch Bar。三个边的底部都有散热孔,手持时很硌手,不太舒服。

接口

机器自带3个雷电(Type C接口), 1个HDMI。
建议配一个Type C扩展坞,要包含HDMI(或DP),千兆网口,若干USB口,这样通过扩展坞连接键盘,网线,显示器,一根线搞定。 一般这样的扩展坞还会有个Type C的取电口,这样电源线也可以省了,只是Apple配的是MagSafe磁吸线,只能自己权衡了。
推荐:绿联的50771,10919

外接显示器

效果
在1080p的显示器上,效果不太好,字体模糊,明显不如Windows 10的显示输出效果。 而且不用努力找软件方案了,因为软件无解。只有换4k显示器才能根本解决问题。 ¥¥¥

我这次买了台新款Dell U2723QE 4k60Hz(京东),看中它自带全功能扩展坞,颜值高,参数也好。

双显
如果有Type C扩展坞,那第二台显示器直接接在机器自身的HDMI口上就行了。如果要说缺点,就是平时要插拔3根线:电源线,扩展坞,HDMI线。

也有办法能够一根线搞定,比如:

  1. 使用带MST功能的显示器,做菊花链, 并且其中一台支持Type C反向供电,给笔记本供电。 MST菊花链
    (可惜办公室现在的Dell P2317H不支持。不知道公司以后有没有可能升级4k显示器,哈哈)
  2. 雷电扩展坞:
    双显输出 不过不建议买这个,性价比很低,我这个是之前给ThinkPad用的。 Note: Mac并不原生支持双显(原因分析), 即便是雷电3扩展坞,也需要通过雷电3的接口再外接一个Type C 转 HDMI 转接头连接第二显示器。

投屏

笔记本多了个HDMI输出口,总体来说还是提高了易用性的。 HDMI投屏时如果出现间歇性闪烁,花屏,偏色等问题,一般都是视频信号输出带宽不足引起的,解决方法有:

  • 尝试选用更短的HDMI线材。原先的线可能过长,或者有损伤,会导致带宽不足。
  • 避免使用延长线
  • 第一级用 Type C 转 HDMI 转接线(Type C的输出带宽更高些)
  • 能用DP线更好。HDMI已经有点过时了。

邮件

我是Outlook的重度用户,所以立即安装了Outlook for Mac 16(2019),然后把数据文件(.pst)直接导入进来,还算顺利。
只是搜索功能一直不工作,到现在也还没搞定。试了所有方法(这篇比较全 ),都没用。 神奇,突然发现搜索功能正常工作了,难道是因为倒入的数据文件太大,需要很长时间的索引?

开发

Apple的M1芯片用的是ARM架构,总体来说,强在视频处理,待机时间,缺点是软件兼容性上会差一些,这个要注意。

Node

目前碰到的是Node环境问题。具体说是在Node@12上, long.js 会引起 ‘out of memory’ 报错:

==== JS stack trace =========================================

Security context: 0x00010c4408d1 <JSObject>
    0: builtin exit frame: new constructor(aka Module)(this=0x00010e9dc6f9 <Object map = 0x10ff30229>,0x00010e9dc5a9 <Uint8Array map = 0x10c402b99>,0x00010e9dc6f9 <Object map = 0x10ff30229>)

    1: ConstructFrame [pc: 0x1006f3698]
    2: StubFrame [pc: 0x1007dc144]
    3: /* anonymous */ [0x10e9dbe49] [/opt/homebrew/lib/node_modules/firebase-tools/node_modules/long/src/long.js:9] [bytecode=0x11...

FATAL ERROR: wasm code commit Allocation failed - process out of memory
 1: 0x1000920e0 node::Abort() [/opt/homebrew/opt/node@12/bin/node]

(from https://github.com/firebase/firebase-tools/issues/3129)

对我们的影响体现在用到Webpack的地方都会报错。因为Webpack用到了@xtuc/long ,而它和long.js基本上是同一个东西(同源)
Node@16解决了这个问题(测试发现当前最新的Node@14也已经OK了)。
但如果你不方便升级Node环境,变通的解决方案是:

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
$ arch -x86_64 zsh
$ nvm install 12.16.1
$ nvm alias default 12.16.1

思路就是仍然让Node跑在x86架构上。你可以把上面的Node版本号替换成任何你实际需要的版本号。至于为什么要用nvm,因为我试了切换x86后,brew install会报错……
参考文章: nvm官方文档, Stackoverflow, 这篇里的命令行说明更简洁

Android Studio

在M1芯片上跑Android模拟器,需要用v8a的rom。目前Phone有了,TV还是TBD。
Stackoverflow上有个相关的帖子

(转载本站文章请注明作者和出处 NeuLion Web

Post Directory

广告位招租