1

New Mac MBP M1 Pro 14' 使用体验

 1 year ago
source link: https://neulionweb.dev/2022/01/mac-m1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

公司这次因为项目需要,给配了台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@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

Related Issues not found

Please contact @cammytang @helloint to initialize the comment


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK