🕐13的話
新年快樂!
我知道,我知道,久違的開發者週報已經變成「三週報」了。因為歐美年假的關係,不管是 Apple 官方還是開發者社群大都在休息,真的沒什麼東西好報啊。
還是說,你有興趣讀我為什麼沒忍住,買了新電腦?
支持我繼續寫週報跟錄影,請在 Patreon 訂閱一下,一個月 $5 USD🙏
🧪Apple Releases & News
iOS 17.3 Beta 2 因為有部分裝置變磚的災情(無法開機成功),所以被撤掉了。截稿至今尚未釋出修正版本
✍️Updated Apple Developer Program License Agreement now available
12/22 開發者協議有幾處條文更新,還請帳號管理者留意。
💡AnyView’s impact on SwiftUI performance
Apple 向來建議開發者盡量避免在 SwiftUI 使用 AnyView
。不過談到效能的問題,我們還是看數據最準。這就是個值得一讀的實驗。
還可以延伸閱讀這篇 AnyView 與 Group 的比較(你可能會對數據感到驚訝)。不過文章是 2019 年的,可能已經不準就是了。
💻M3 Max 太香了我沒忍住
Apple 在去年初推出 M2 系列 MacBook Pro,然後在下半年出乎意料地推出 M3 系列。
台灣 Apple 直到 11 月終於開賣 M3 系列的 Mac 產品。
於是,我就買了...。本期先講一下購買策略。之後有機會再分享使用心得。
首先是基本資訊:
對於軟體開發者,或者說 iOS 開發者來說,編譯軟體需要的只有 CPU。而 M3 系列對我們的影響就是,Max 與 Pro 兩個等級的 CPU 核心數量拉開明顯差距。
M3 Pro 的 CPU 有 5 或 6 個效能核心、6 個節能核心(以下統稱大、小核),相較於 M2 Pro 的 8 大 4 小,不能說效能有降級,但是也沒有明顯進步(除了省電方面)。
而 M3 Max 有 14 或 16 核心 CPU 兩種版本,分別有 10 或 12 個大核心,再加 4 個小核心。
是的,M3 Max 的 CPU 開始像 Intel 一樣走堆核心數量的策略了。
所以到了 M3 這一代,想要最好的軟體開發效能,那就得加錢升級到 M3 Max 了。
不過,如果你是 M1 Pro/Max、M2 Pro/Max 的使用者,我完全不建議你換到 M3 Pro/Max 就是了。原因我下面會說。
接下來是我個人的考量:
我是一個電腦稍微跟不上我的手速,就會覺得破壞工作心流的人。
前年買的 MacBook Air M2 一直用得很開心。M2 的單核心很快,所以一般操作電腦的反應十分靈敏。
不過 Xcode 15 在跑 Preview 時容易持續佔用多個 CPU 核心,容易發熱降速。以及,使用 Swift Macros 的專案,通常要編譯肥大的 SwiftSyntax,即使是 side project 也難以倖免。
(我還有一台 Mac mini M1,有風扇就沒有過熱降速的問題,但是它畢竟是桌機。)
再加上 M3 Max 的 CPU 核心數量堆上去,效能與 M2 Pro/Max 拉開明顯差距。到底有多快,我很好奇!
這就讓我動了換電腦的念頭。
你看,Apple 總是知道怎樣讓人買新設備的🌚
既然要買,就會有版本跟規格的選擇。
14 vs 16 吋
首先該決定的是螢幕尺寸,因為尺寸影響重量、續航力、散熱。
螢幕不夠大還可以外接、續航力跟散熱可以因為使用方式而有變化。但是重量是買了就沒有辦法改變的物理參數。
用過公司配的 15 吋跟 16 吋 MacBook Pro,我自己是不會想用這麼厚重的筆電。所以選 14 吋。
接著是,要選 M3 Pro 還是 M3 Max?我想既然要買新的,就要有明顯差異。
我主要參考了 XcodeBenchmark,相比 M1 的 208 秒,M3 Max 14 核心版本的 79 秒有超過 2.6 倍速的差異。
但如果是跟 M3 Pro 來比的話,大概只有 1.5 倍的差異。或者說,只有省下 1/3 的編譯時間。
所以選 M3 Max 就沒什麼懸念了。
14 vs 16 核心 CPU
下一個問題是,M3 Max 有 14 跟 16 核心 CPU 的版本,要選哪一個?
嗯,眾所周知 14 吋的 MacBook Pro 散熱比不上 16 吋,所以如果散熱壓不住,規格再高也是浪費。
XcodeBenchmark 的數據告訴我們,14 與 16 吋的 14 CPU 核心 M3 Max,一樣在 79 秒跑完。這表示編譯軟體來說,14 吋的散熱是夠的。
但如果你看頂規 16 CPU 核心版本,兩個尺寸分別是 75 與 70 秒,這個差距有 7%,不小啊。75 秒反而是跟 14 核心的 79 秒更接近。
而且,16 核心版本的 M3 Max,要一併升級記憶體,跟 14 核心版本的價差會來到 15,000 台幣。多花這麼多錢,只少了 5% 編譯時間。
總而言之,14 吋買到頂規 16 核心 CPU 非常不划算。
其實 Apple 官網的 14 吋 M3 Max 預設也只有列出 14 核心的版本,16 核心要點進去加購。16 吋的就有把兩種版本都列出來。
至於前面為何不建議 M1 Pro/Max、M2 Pro/Max 的使用者升級呢?因為 M3 Max 的 MacBook Pro 至少都是十萬台幣起跳,而邊際效益是大約少了 3~4 成的編譯時間(一樣根據 XcodeBenchmark)。
我是從 M1/M2 升級上去,編譯時間少了 6 成左右。
當然我覺得最適合換 M3 系列的,就是還在用 Intel Mac 的朋友啦。
你可能會問我:「13,你只是寫 side project,有需要買到 M3 Max 嗎?」嗯,如果我只是要「完成」自己的專案或實驗,M1 Pro 的 MacBook Pro 就很夠用了。
但是我就是想知道現在 Apple silicon 的效能天花板在哪裡。想要跟需要是兩回事。你也可以說我是花大錢滿足好奇心。
整理一下結論:
買 MacBook Pro 先考慮機身尺寸,再來決定規格
對於 Apple 平台開發軟體的需求來說,14 吋 M3 Max 建議買到 14 核心版本就好
如果要追求頂規,請搭配 16 吋機身。我甚至覺得假如都買到 16 吋了,不上頂規有點可惜(?)
簡單來說,14 吋配 14 核心、16 吋配 16 核心
M3 Pro 的話,我是不太推薦現有 Apple silicon Mac 使用者升級。如果你從 Intel Mac 換上來就另當別論。而如果你能找到 M2 Pro 的話,C/P 值會超高
XcodeBenchmark 的表格沒有的規格,可以搜尋一下 Issues(要用 Xcode 15 以上跑的為準)
假如你是個軟體工程師,你應該很清楚自己「需要」什麼樣規格等級的電腦。買給自己用的電腦,預算應該是從負擔能力跟你有多「想要」來決定(至於公司買的電腦,則是從公司能負擔的最高預算考慮)
順帶一提,目前 CPU 性能跟價格比最高的 Mac 是 Mac mini M2 Pro。拿來架 CI 挺好的
總之,以上就是我沒忍住買下去的部分了。
之後有機會,再跟大家分享一下 M3 Max 不只是寫 code 很爽,還可以拿來跑 Steam 3A 遊戲。
想盡早讀到的話,請在電子報留言或按喜歡❤️催稿
😂本週選推
為什麼 async throws
跟 try await
看似順序相反?因為 Swift func 的宣告與呼叫是完全對稱的。請看動畫:
https://twitter.com/SeanRobinson159/status/1742038922165633052
最後的小提醒:🙏請訂閱支持我持續撰寫這份週報,一個月只要 $5 USD。也歡迎按喜歡❤️、留言💬、回信✉️與我交流喔。
了解,謝謝13分享🙏
13,可好奇問一下,你會把之前的M2 Air賣掉嗎?