<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          快1倍,我在 M1 Max 上開發(fā) iOS 應(yīng)用有了這些發(fā)現(xiàn)

          共 2320字,需瀏覽 5分鐘

           ·

          2022-03-09 16:24

          ????關(guān)注后回復(fù) “進(jìn)群” ,拉你進(jìn)程序員交流群????


          整理 | 章雨銘       責(zé)編 | 屠敏
          出品 | CSDN(ID:CSDNnews)

          科技的進(jìn)步、資源的共享使得進(jìn)入iOS開發(fā)變得前所未有的容易。很多開發(fā)工具都是免費(fèi)的,網(wǎng)上的學(xué)習(xí)資料應(yīng)有盡有。然而,隨著代碼庫規(guī)模的擴(kuò)大和開發(fā)人員數(shù)量的增加,開發(fā)的速度也隨之變慢。軟件開發(fā)是一個(gè)不斷迭代的過程,所以,從修改一個(gè)小的代碼到能夠測(cè)試/試驗(yàn)這個(gè)修改所需要的時(shí)間,與開發(fā)人員的生產(chǎn)力息息相關(guān)。

          據(jù)Apple官方宣傳,M1 Max是Apple迄今為止打造的最強(qiáng)芯片,在性能上和能效上是以往芯片遠(yuǎn)不能及的。而且這款芯片的中央處理器運(yùn)行速度比M1提升最高可達(dá)70%,使用Xcode編譯代碼等任務(wù)的處理速度比以前更快。對(duì)于程序員來說,筆記本電腦是開發(fā)的工具,是生產(chǎn)力的源泉,搭載著M1 Max芯片的Macbook Pro真的能夠提升iOS應(yīng)用的開發(fā)速度嗎?國外一位叫邁克爾·托爾的軟件工程師對(duì)此進(jìn)行了測(cè)試。



          全新的M1 MacBooks加速一切進(jìn)程


          邁克爾·托爾首先對(duì)開發(fā)者生產(chǎn)力的投資進(jìn)行了 "投資回報(bào)期"的計(jì)算。其運(yùn)用一個(gè)簡單的預(yù)期節(jié)省的時(shí)間和工程成本的函數(shù)進(jìn)行了粗略的計(jì)算,估計(jì)這些新的設(shè)備可能為普通工程師節(jié)省多少時(shí)間,乘以天數(shù),用以計(jì)算投資回報(bào)期的時(shí)長。

          假設(shè)一個(gè)普通的iOS工程師每天進(jìn)行5次清理構(gòu)建和30次增量構(gòu)建......。用這個(gè)數(shù)字乘以平均構(gòu)建時(shí)間,得到每個(gè)工程師每天 "等待編譯 "所花費(fèi)的時(shí)間。

          同時(shí),測(cè)量新筆記本電腦的運(yùn)行速度,來計(jì)算節(jié)省的時(shí)間。在硬件上市之前,他們根據(jù)消費(fèi)級(jí)芯片和Apple的營銷信息進(jìn)行一些猜測(cè),并且估算出升級(jí)后一個(gè)iOS工程師將每天節(jié)約大約35分鐘。用這個(gè)數(shù)字乘以雇傭一名iOS工程師的平均成本,發(fā)現(xiàn) "投資回報(bào)期 "不到兩個(gè)月。

          圖1:新舊筆記本電腦的 "編譯時(shí)間 "成本對(duì)比圖顯示,硬件升級(jí)的一次性成本很快就能收回

          從這種粗略的napkin math(該項(xiàng)目的目標(biāo)是收集軟件,數(shù)量和技術(shù),以根據(jù)第一原理快速估算系統(tǒng)的預(yù)期性能)的結(jié)果來看,新的筆記本確實(shí)能夠大大提升開發(fā)的速度。以及帶來一些不太明顯或者難以衡量的優(yōu)勢(shì),比如使用Xcode工具更加靈敏,自動(dòng)完成的速度更快等等。

          以上主要是預(yù)估,接下來通過實(shí)際操作來驗(yàn)證一下吧!



          實(shí)際效果如何?


          在此,邁克爾·托爾團(tuán)隊(duì)以2019年英特爾i9 MacBook Pro和2021年M1 Max MacBook Pro為測(cè)試機(jī)型,進(jìn)行了iOS應(yīng)用開發(fā)速度比較。

          圖2:2019年英特爾i9 MacBook Pro和2021年M1 Max MacBook Pro上對(duì)我們的基準(zhǔn)項(xiàng)目進(jìn)行多次 "清理 "構(gòu)建的時(shí)間比較

          結(jié)果顯示,他們的基準(zhǔn)構(gòu)建時(shí)間從7:46分鐘縮短到3:48分鐘。時(shí)間縮短了近一倍!這十分令人驚嘆!因?yàn)橥ㄟ^做一些微觀的優(yōu)化以提升一個(gè)大型代碼庫的速度,比如刪除一些過時(shí)的代碼等等,即使通過幾個(gè)月的努力,也很難達(dá)到與之相匹敵的速度。



          縮短編譯時(shí)間的其他方法


          即使有了這些提升,但邁克爾·托爾的團(tuán)隊(duì)仍然在思考一些別的辦法來加快開發(fā)的速度。因?yàn)殡S著團(tuán)隊(duì)和代碼庫的不斷增長,花在編譯上的時(shí)間將繼續(xù)增加——增長的時(shí)間可能比新款A(yù)pple電腦所能縮短的時(shí)間還要多。

          他們嘗試將所開發(fā)的應(yīng)用程序的代碼庫模塊化。即不需要編譯一百萬行的代碼,而是將應(yīng)用程序分解成許多小塊的代碼,映射出它們之間的依賴關(guān)系。然后,單個(gè)工程師和團(tuán)隊(duì)可以在代碼庫的子集上工作,極大地提高開發(fā)迭代速度。但這種方法仍處在探索階段,未來可能會(huì)有更多的改進(jìn)。

          除了進(jìn)行模塊化的改進(jìn),他們也在采用SwiftUI和Xcode Previews等新技術(shù)。這些技術(shù)可以完全消除在開發(fā)用戶界面時(shí)調(diào)整——編譯——運(yùn)行的循環(huán)。另外,通過定義預(yù)覽數(shù)據(jù)并 "現(xiàn)場(chǎng)編碼 "實(shí)際視圖的代碼,可以在Xcode畫布上獲得幾乎即時(shí)的反饋,從而提升開發(fā)的速度。雖然這只有助于 "視圖 "的開發(fā),但是他們認(rèn)為“視圖”的開發(fā)可以有效地提升迭代的速度。

          距離M1 Max Macbook Pro發(fā)售已經(jīng)有一段時(shí)間了,網(wǎng)友對(duì)新產(chǎn)品的評(píng)價(jià)也是褒貶不一。你使用過M1 Max Macbook Pro嗎?你認(rèn)為這款新的芯片對(duì)iOS開發(fā)幫助大嗎?歡迎留言分享你的使用體驗(yàn)。

          【參考資料】https://doordash.engineering/2022/03/01/why-apples-new-m1-chips-are-essential-for-rapid-ios-development/


          -End-

          最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

          點(diǎn)擊??卡片,關(guān)注后回復(fù)【面試題】即可獲取

          在看點(diǎn)這里好文分享給更多人↓↓

          瀏覽 38
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产黄色毛片网站 | 日韩视频在线播放 | 久草视频大香蕉 | 亚洲中文版字幕 | 国产91aaa|