<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>

          用 M1 MacBook 當(dāng)主力開發(fā)機(jī):程序員使用半個月后如是說

          共 2930字,需瀏覽 6分鐘

           ·

          2021-02-19 00:26

          程序員的成長之路
          互聯(lián)網(wǎng)/程序員/技術(shù)/資料共享?
          關(guān)注


          閱讀本文大概需要 3.5 分鐘。

          來自:量子位

          MacBook換成ARM芯片后,它還是程序員的開發(fā)利器嗎?

          經(jīng)過國外程序員半個多月來的嘗試,一些常見開發(fā)工具的兼容狀況也得到披露。

          Xcode、VS Code、Homebrew……等常用工具能夠完美運(yùn)行嗎?如果你還在因?yàn)檫@些問題猶豫要不要買,那么看了這篇文章或許能得到答案。

          代碼編輯器

          Vim是通用二進(jìn)制文件,因此它已經(jīng)能在M1上直接運(yùn)行。

          VS Code可以通過Rosetta 2轉(zhuǎn)換來運(yùn)行,而insider版已經(jīng)原生支持ARM平臺的MacBook,相信正式版也不會太遙遠(yuǎn)。

          Xcode

          蘋果第一方開發(fā)工具Xcode自然不必?fù)?dān)心兼容性,而且它在M1芯片上的運(yùn)行效率很高。

          編譯PSPDFKit PDF SDK,在2019年16英寸MacBook Pro上耗時7分31秒,在M1版MacBook Air上則耗時8分49秒,而后者是無風(fēng)扇的。

          不過Xcode在測試低于iOS 14版的應(yīng)用程序時,會出現(xiàn)一些問題。WebKit會在內(nèi)存分配器中崩潰,Xcode有時會定期卡死。

          因此如果你要測試較低iOS版本程序,還是在Intel版的MacBook上運(yùn)行,或者希望下一次Xcode更新時,蘋果能解決這個問題。

          Docker

          現(xiàn)在Docker無法在M1芯片上運(yùn)行,也無法通過Rosetta 2轉(zhuǎn)換的方式使用Docker Desktop。

          但是同樣使用ARM芯片的樹莓派卻能做到。

          所以在MacBook上運(yùn)行Docker最好的方法是:運(yùn)行ARM版Linux虛擬機(jī),在虛擬機(jī)中運(yùn)行Docker。

          具體操作方法請參照這篇教程:
          https://finestructure.co/blog/2020/11/27/running-docker-on-apple-silicon-m1

          至于Docker官方何時將提供支持,可以注冊Docker ID來獲取最新進(jìn)展。

          Homebrew

          Homebrew可以通過Rosetta 2轉(zhuǎn)換的方式進(jìn)行安裝,方法也很簡單,只需在過去的安裝命令前加上arch -x86_64即可。

          $?arch?-x86_64?/bin/bash?-c?"$(curl?-fsSL?https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

          這種通過轉(zhuǎn)制的Homebrew在某些軟件上可能有一些兼容性問題,因此建議安裝另一個手動編譯版:

          $?sudo?mkdir?-p?/opt/homebrew
          $?sudo?chown?-R?$(whoami):staff?/opt/homebrew
          $?cd?/opt
          $?curl?-L?https://github.com/Homebrew/brew/tarball/master?|?tar?xz?--strip?1?-C?homebrew

          第一種方式安裝的Homebrew在/usr/local/bin目錄下,而第二種方式安裝的在/opt/homebrew目錄下,后者不會自動添加到PATH環(huán)境變量中,因此需要手動設(shè)置:

          export?PATH="/opt/homebrew/bin:$PATH"

          這樣,你的Mac里就有了兩個Homebrew:一個是Rosetta轉(zhuǎn)換的,一個是原生的。原生的目錄在前面,那么brew命令將默認(rèn)運(yùn)行這個版本。

          如果想運(yùn)行Rosetta轉(zhuǎn)換版怎么辦?我們可以單獨(dú)設(shè)置一個ibrew命令:

          alias?ibrew='arch?-x86_64?/usr/local/bin/brew'

          目前,Homebrew尚未提供用于ARM Mac的預(yù)編譯軟件包,因此最好使用brew install -s?命令進(jìn)行安裝。

          具體有哪些軟件包不兼容,可以到GitHub項(xiàng)目頁的issue中查詢:

          https://github.com/Homebrew/brew/issues/7857

          其他常用軟件

          說到編程必備,怎么能少得了Chrome,現(xiàn)在Chrome 87版已經(jīng)開始支持M1版的MacBook。

          還有微軟的Office三件套,若使用Rosetta 2轉(zhuǎn)譯,啟動時間可能需要20秒。官方建議安裝針對macOS Big Sur優(yōu)化的16.43版。

          微軟官方表示,已經(jīng)開始將Mac應(yīng)用程序遷移到通用二進(jìn)制文件,未來Office三件套的兼容性不成問題。

          如果是基于Electron的應(yīng)用程序,經(jīng)過Rosetta 2轉(zhuǎn)譯后速度會變得很慢。原因可能是V8 JavaScript編譯器似乎阻止了提前翻譯。

          現(xiàn)在最新版的Electron(Version 11)已經(jīng)支持了M1芯片,還需要等其他開發(fā)者更新軟件。

          由于Rosetta 2轉(zhuǎn)譯的程序會變成只讀文件,因此自動更新將被禁止,此類程序需要用戶手動更新。

          虛擬機(jī)和Windows

          雖然VMware和Parallels可以在M1芯片的MacBook上使用,但是所有Mac虛擬化解決方案均不支持Apple Silicon。免費(fèi)開源的虛擬機(jī)Virtualbox更是無法運(yùn)行。

          現(xiàn)在ARM版Windows可以仿真x86應(yīng)用程序,而微軟正在研究x64仿真。

          最近模擬器軟件CrossOver展示了在Mac上運(yùn)行Windows軟件的能力,但這只是運(yùn)行單個程序,而非運(yùn)行虛擬機(jī)和整個系統(tǒng)。

          而且M1最高只支持16GB內(nèi)存,對虛擬機(jī)來說顯得有些捉襟見肘。

          在運(yùn)行并行測試時,Mac開始大量在硬盤和內(nèi)存之間進(jìn)行數(shù)據(jù)交換,性能確實(shí)下降了。對于運(yùn)行的虛擬機(jī),這會帶來更多的問題。

          結(jié)論

          新款搭載M1芯片的MacBook速度快、運(yùn)行安靜,但是在軟件方面還需要做很多工作,才能趕上搭載Intel芯片的MacBook。

          你可以拿它作為第二臺開發(fā)電腦使用,如果作為主力開發(fā)機(jī),可能會遇到這樣那樣的問題。想要更好的兼容性需要等到明年軟件廠商更新,或者是M2發(fā)布。

          另外,最高16GB的內(nèi)存對程序員來說可能還是不夠,希望未來的Mac有32GB內(nèi)存可選。

          參考鏈接:
          https://news.ycombinator.com/item?id=25238608
          https://steipete.com/posts/apple-silicon-m1-a-developer-perspective/
          https://soffes.blog/homebrew-on-apple-silicon
          https://github.com/mikelxc/Workarounds-for-ARM-mac

          推薦閱讀:

          入職騰訊第九年,我辭職了

          手寫RPC框架,理解更透徹,代碼已上傳Github!

          5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹莓派,等等。在公眾號內(nèi)回復(fù)「2048」,即可免費(fèi)獲?。?!

          微信掃描二維碼,關(guān)注我的公眾號

          朕已閱?

          瀏覽 70
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  看免费操逼大片 | 成a人v | 午夜人妖另类 | 国产女人18水真多毛片18精品 | 国产一级做a爰片在线看免费 |