V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Zhuzhuchenyan
V2EX  ›  MacBook Pro

14 寸 Pro 到手二周感想-前端、Unity 开发、日常

  •  1
     
  •   Zhuzhuchenyan · 2021-11-17 00:01:55 +08:00 · 4625 次点击
    这是一个创建于 883 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自从 14 寸 Pro 到手已经 13 天了,到手的第一天匆忙的测试了一下各个开发工具的适配程度,惊叹于相比于我之前 16 寸 i9 的性能提升。但是毕竟短暂的体验没有办法反应长期的工作效率,今天趁着编译代码的功夫聊一聊深度的体验。

    一句话来概括的话,这台 MBP 带给我的惊喜和失望应该是一样多的,但是它的优势在于它的确能带来市面上其他笔记本所无法带来的笔记本体验。

    “不是我要反的,实在是它给的太多了。” --鲁迅

    前端开发

    前端开发总体来说是惊喜大于失望。

    我司最新的项目基于 Node 16 和 Angular 13 ,这个适配自然是毫无问题,无论是 homebrew 安装还是 nvm 安装都没有遇到任何问题

    但是毕竟还有老程序要维护,我们团队手头的还有一个中年期项目基于 Node 14 和 Angular 10 ,出于方便使用 nvm 进行 node 的版本管理,令人惊讶的是 nvm 安装 Node 14 的时候竟然还需要现场编译,更令人惊讶的是编译的过程中这台机器安静的像是分手第二天的女朋友。

    这几天又分配到一个老旧项目的维护案例,好家伙,不得了,这是个全栈项目,后端基于 Nest.js v5 ,前端基于 Angular v7 ,所幸二年前我维护的时候留下了一个基于 node:9.6.1-alpine 的 Dockerfile ,抱着试一试的态度跑了一下

    docker manifest inspect --verbose node:9.6.1-alpine | grep architecture
    
    "architecture": "amd64",
    "architecture": "arm",
    "architecture": "arm64",
    "architecture": "386",
    "architecture": "ppc64le",
    

    好家伙,没想到这么早的版本都有 arm64 的 docker image ,那么自然是没有压力的用 Docker 解决了开发需求。

    值得注意的是,即使 node:9.6.1-alpine 有 arm64 版本,不代表着其中的依赖也有 arm64 版本,比如说

    apk add chromium
    

    就会提示找不到相应的安装文件,所幸我此时已经并不需要这个依赖,简单的去除就可以了,但是若是日后还需要这个依赖的话,可能只能更换 node image 的版本了

    前端编译性能的话自不必说,除了 build 性能相较于之前电脑提升了 50% - 80%,浏览器速度也非常丝滑,原本一直要跳一跳才能打开的 Chrome ,冷启动速度也变得非常之快。

    作为参考的跑了一下 Speedometer2.0 ,得分仅供参考

    • Chrome 在 Speedometer2.0 中拿到了 226 分的成绩 - 95.0.4638.69
    • Safari 在 Speedometer2.0 拿到了 260 分的成绩 - 15.1
    • 作为对比度上一代 16 寸 i9 在 Safari 下的得分为 141 分 - 14.1.1

    简单来说前端开发完全可以胜任,不过我的工作流程目前并不涉及到 native modules ,所以对于这方面的兼容性无法进行测试

    Unity 开发

    Unity 基本上属于副业,更多的时候属于救火队员,毕竟在转行前端之前做过一段时间的 Unity 游戏逻辑开发。

    这个部分就有的好说了,Apple Silicon 在这个领域处于完全不能用和哇塞太棒了的叠加态。

    先说公司的项目,公司的项目因为 License 和求稳的问题基本都停在 2018 的 LTS ,这个版本即使用了 Rosetta2 体验也是极其糟糕的,具体有多糟糕,就像手上拿着一台奔腾电脑一样。我承认 Play Mode 的帧数很高,但是每次 reload script 夸张的说都可以写一篇这个文章。

    然后说说自己的项目,小弟不才,自己正在维护一个 3v3 的在线对战手游,因为这个的缘故,我也是从 M1 发布就开始关注 Unity 的 Apple Silicon 化进程。不愧是 Logo 出现在苹果发布会上的企业,Native 的 Player 在 M1 发布当月就已经出了预览版,然后在 2021 年 6 月 8 日推出了基于 2020 版本的 Native Editor 的第一个 Beta 。

    https://forum.unity.com/threads/now-available-native-apple-silicon-editor-preview-builds.1122712/

    终于在苹果发布会的前后脚,2021 年 10 月 26 日推出了 2020.2.0f 版本,第一个 Native 支持的正式版。我也是在拿到了新机子之后第一时间试水了,相比于 Rosetta2 转移的 2018 版本,script reload 的速度有了质的提升,甚至相比于我的 16 寸机型也能获得 70%左右的提升。

    不过不吐不快,2020.2.0f 版本使用体验非常糟糕,让人怀疑 Unity 根本没有 QA 测试,好在两周后的 2020.2.2f 修正了大部分错误,基于这个版本发布了 iOS 和 Android 新游戏版本,也没有遇到什么绕不过的问题。

    至于代码编辑器,我一直习惯使用 Jetbrain Rider ,Rider 现在 Apple Silicon 版本处在 EAP 阶段,虽然有亿点 BUG ,但是不影响使用,(右下角报错误提示就当没看到,界面白屏了重启一下,反正载入速度快

    总结来说,如果你或者你的公司有很重的历史债务,请不要选择这款笔记本做 Unity 开发,但是若是想要追赶未来,我觉得这款笔记本完全是一个选择。

    日常

    说实话遇到了很多问题,

    • 一个项目依赖的 flyway 不支持 arm64 ,只好跑在远程服务器用 vscode remote 开发
    • 我自己的云服务器都是 x86-64 ,但是 docker build 出来的又是 arm64 的镜像,使用 buildx 搭配 qemu 又慢的令人发指,不得不逼我把 Github Action 自动化提早提上了日程,之后调试 docker image 估计也不得放在远程服务器上
    • Gitkraken ,Trello 还必须用 Rosetta2 转译,说实话打字有点不跟手

    所以为什么我还是义无反顾的选择了这台笔记本呢,我的老笔记本自从两周前就被打入了冷宫,除了跑测试,再也没有用它干过重活。

    愿意就是它带来的强劲的性能,配上冷酷前女友一般的静音体验。

    贴一张最近 7 天的风扇转速曲线,这 7 天里,

    • 我曾经有两个 Rider 同时 Index 两个项目
    • 我曾经用 Xcode 发布了一个正式版本,用 Unity 编译了 iOS 和安卓的版本
    • 日常场景是 2 个 Rider+若干 Vscode+一个 Unity+后台 Postman, Trello, Gitkraken+Safari 7-8 标签页+Chrome 10-12 标签页

    你可以看到这风扇基本上就是不转,一方面归功于 Mac 的“激进”的噪音控制,一方面也归功于这颗芯片的省电能力,我再贴一张这 7 天的整机功耗曲线

    • 典型功耗 9w ,这是在外接了 4k 显示器之后的待机功耗
    • 稍微干点活功耗 9-13w ,这是普通打字的时候的功耗
    • 峰值功耗 30w ,这是 CPU 满载的功耗

    我的日常场景里没有打游戏的场景,所以抱歉没有 CPU 和 GPU 双满载的场景可以测试,但是也足以说明这颗芯片对节省本月的电费开支有了“不可磨灭”的贡献

    我本身从 18 岁开始就有严重的高频神经性耳鸣,所以我对中高频的声音特别敏感,而笔记本风扇又恰恰好好落在了这个频率之内,所以每次 MBP 的风扇开始起飞,我就不得不忍受使用降噪耳机或者耳塞。以前我认为性能和噪音不可兼得,我也尝试过关掉睿频,关掉超线程,的确可以带来静音体验,但是性能也惨不忍睹,这款新笔记本简直是我等耳鸣患者的福音。

    总结

    总的来说这款笔记本就像是语文英语 0 分,数学物理满分的高偏差值学生,让人又爱又恨。汝之蜜糖彼之砒霜,虽然是个好笔记本,但是也犯不着创造需求来购买。

    感谢各位看完我这篇碎碎念,我们下期见。

    朱朱

    23 条回复    2021-11-19 01:50:42 +08:00
    czhu
        1
    czhu  
       2021-11-17 01:04:53 +08:00
    感谢分享 很期待新电脑
    我也觉得 intel 的 MacBook Pro 最不能让人忍受的就是噪音
    现在终于好了
    YYYeung
        2
    YYYeung  
       2021-11-17 01:13:40 +08:00   ❤️ 10
    读完之后,我对楼主的前女友印象比较深刻😂
    locoz
        3
    locoz  
       2021-11-17 04:45:25 +08:00 via Android   ❤️ 3
    😂你前女友得有多冷酷才能让你这么反复提及
    mythal
        4
    mythal  
       2021-11-17 05:16:49 +08:00
    感谢分享,请问能分享一下配置吗?
    mythal
        5
    mythal  
       2021-11-17 05:56:01 +08:00
    我瞎了,刚看到 lz 前几天放出来配置
    svampire
        6
    svampire  
       2021-11-17 06:34:20 +08:00
    Unity 的 M1 支持应该都是 2021.2 版本吧?没有 LTS 版本之前真不敢拿来做项目开发
    adspe
        7
    adspe  
       2021-11-17 06:40:21 +08:00 via Android
    同前端,编译方面印象深刻,确实提升很大,我对比幻 14 ,平均都快 50%。老项目确实吃力,我几个 umi 老版本的项目弄了好久才跑起来,还把 dll 编译给关了
    lamls
        8
    lamls  
       2021-11-17 08:01:16 +08:00
    前女友估计是天蝎座
    iold
        9
    iold  
       2021-11-17 08:02:03 +08:00 via iPhone
    游戏公司没有厚重历史的都是早都黄了,2017 都在用。
    mnsw
        10
    mnsw  
       2021-11-17 08:24:13 +08:00 via Android
    楼主请教下问一下,新电脑下,node-sass 提示环境不兼容,并且 rebuild 失败这个情况了解么?
    fx777
        11
    fx777  
       2021-11-17 09:17:56 +08:00
    写的很好,前女友真 tm 冷库
    wu67
        12
    wu67  
       2021-11-17 09:48:16 +08:00
    讲真, 我这还有个老旧 Cordova 项目, 有几个依赖限制了 node, 之前试了 14.16.4, 直接就跑不起来了...现在只好停在 14.16.1 LTS
    Cleves
        13
    Cleves  
       2021-11-17 10:00:48 +08:00
    为啥我的 14mac 安装 nvm 就报找不到环境变量。
    用 nvm 安装 node 就各种报错。 真的蛋疼死我,像前女友一下鞭策我 ε=(´ο`*)))唉
    linshuizhaoying
        14
    linshuizhaoying  
       2021-11-17 10:06:47 +08:00
    同前端 16 寸+1T+32G 表示开发起来真的舒服很多,主要开发小程序和维护好几个 Node 项目,除了 airport 开启占用 5000 端口,brew 通过清华源装了,nvm 来回切 node 版本表示适配低版本 node 项目无压力,以前编译小程序都得卡卡等一会,现在保存切换桌面都来不及过渡动画。
    果然性能才是第一生产力
    luozhiyun
        15
    luozhiyun  
       2021-11-17 10:25:33 +08:00
    3v3 手游不会是荒野乱斗吧?
    话说你 288 天前才买的 16 寸,这就又买了新的?
    hahaFck
        16
    hahaFck  
       2021-11-17 10:25:48 +08:00
    这么多问题,我的 intel 16 寸的都不想卖了。。。
    huanglm
        17
    huanglm  
       2021-11-17 10:33:15 +08:00
    原来我的 intel 不够冷静是因为前女友不够冷酷
    link1994
        18
    link1994  
       2021-11-17 11:15:31 +08:00   ❤️ 1
    一套下来 21999 的价格,真让人肉痛。如果不是买来做开发,是不是普通的 i7 windows 更实用? macbook 的娱乐属性远低于 windows ,对吧?
    另外不得不八卦一下:自从那个被 996PUA 的前女友分手后,一年多了,还是单身吗? 字里行间都透露着“忘不了”啊^_^。
    wanguorui123
        19
    wanguorui123  
       2021-11-17 13:48:24 +08:00
    我在观望几年在买,手里还有许多项目需要过度
    BlackJac95
        20
    BlackJac95  
       2021-11-17 13:56:54 +08:00
    求问:Nest.js 和 egg.js 那个更有优势?
    g190875565
        21
    g190875565  
       2021-11-17 14:50:57 +08:00
    感谢分享
    Zhuzhuchenyan
        22
    Zhuzhuchenyan  
    OP
       2021-11-17 16:52:24 +08:00
    @svampire 是的,而且 2021.2 系列的版本使用的体验真是一言难尽,BUG 贼多,只能说勉强能用

    @luozhiyun 兄弟观察的挺仔细的,手头的 16 寸还留着,以防真的遇上了解决不了的问题。不是什么上得了台面的游戏,小众圈子里圈地自萌罢了
    @link1994 平时社交圈过于狭窄,一直没有遇到心水的女孩子。的确,不做开发的话我宁可搞一套 ROG ,同价格配置可以直接起飞

    @BlackJac95 国内没啥人用 Nest 吧,感觉 egg 更主流一些,我们是因为首席架构特别喜欢 Nest ,所以没得选
    raykle
        23
    raykle  
       2021-11-19 01:50:42 +08:00
    Electron 的 app 我都非常讨厌,之前因为 SourceTree 经常卡死所以试过一段时间 Gitkraken ,但是因为是 Electron 的 app 性能还是不行,不过感觉比 SourceTree 好点,就一直用着了。直到我发现 Sublime 家出了一个 Sublime Merge ,试用了一下,只能用丝滑来形容了,只是目前功能没 SourceTree 丰富。如果 lz 忍受不了 Gitkraken 的话建议体验一下 😄
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3690 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 04:43 · PVG 12:43 · LAX 21:43 · JFK 00:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.