主頁 >  其他 > 開發者眼中的蘋果 M1 芯片是怎樣的?

開發者眼中的蘋果 M1 芯片是怎樣的?

2020-12-10 18:36:20 其他

CSDN 編者按:今年雙十一這一天,蘋果震撼發布了全新的自研 M1 芯片,從發布到入手的這段時間內,無數開發者開啟了探索與嘗鮮模式,近日,PSPDFKit 創始人 Peter Steinberger 在購買了一臺 MacBook Air 16GB M1 版之后,針對 Xcode、Android Studio、Homebrew 等開發者必備的工具及應用程式進行了評測,接下來,我們見一探 M1 帶來的魅力,
英文標題:Apple Silicon M1: A Developer’s Perspective
原文鏈接:https://steipete.com/posts/apple-silicon-m1-a-developer-perspective/
作者:Peter Steinberger,PSPDFKit的創始人,
譯者:彎月
宣告:本文為 Peter Steinberger 原創文章,遵循 CC 4.0 BY-SA 著作權協議,轉載請注明出處及來源,

最近大家都因為蘋果的新 M1 芯片而興奮不已,我也買了一臺 MacBook Air 16GB M1 版,想看看是否能當作主力開發機使用,下面是我在測驗了一個星期之后的報告,

Xcode

Xcode 在 M1 上的運行速度非常快,編譯 PSPDFKit PDF SDK( debug,Arm64 版)幾乎能與加載了目前最快的英特爾芯片的 MacBook Pro 媲美,前者的編譯時間是 8 分 49 秒,后者是 7 分 31 秒,作為比較,我的黑蘋果(Hackintosh,指在非蘋果生產或非蘋果授權生產的普通 x86 架構 PC 上安裝 MacOS 的行為)編譯同樣的專案需要不到 5 分鐘,

對于一臺無風扇的機器來說,這已經非常了不起了,蘋果的上一款無風扇 MacBook 是 2017 年的 12 寸版本,用它編譯同一個專案需要 41 分鐘,

絕大多數測驗都能通過,盡管我發現了我們之前沒有注意到的一些針對 arm64 的錯誤,因為我們的 CI 并沒有真正在 arm64 的硬體上運行過測驗,模擬器采用與真實設備同樣的架構很有好處,可以幫我們找到更多錯誤,

iOS 14 版以下的測驗很有問題,似乎 WebKit 會在某個記憶體分配的地方崩潰,拋出例外 EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) (Apple folks: FB8920323),性能似乎也非常差,Xcode 經常會停止回應,整個系統變得非常慢,滑鼠移動都會斷斷續續的,一些模擬器甚至會在 iOS 14 上出問題,例如 iPad Air (4th gen) 的模擬器依然模擬的是英特爾 CPU ,所以盡量不要使用這些模擬器,

我們非常高興地把 CI 遷移到了 M1 芯片的 Mac Mini 上,就等著 MacStadium 正式支持該設備了,不過我們需要將測驗限制在 iOS 14 上,才能正常作業,根據我們目前的計劃,我們打算在 2021 年三季度放棄 iOS 12 的支持,在 2022 年 3 季度放棄 iOS 13 的支持,所以我們需要等待一段時間才能完全遷移到蘋果芯片上,

蘋果有可能會修復這些問題,但我們不應該指望他們修復,畢竟這些問題僅影響舊版本的 iOS ,隨著時間的流逝這些問題就會消失了,

更新: 目前我們解決 WebKit 崩潰的問題是通過在運行時檢測 Rosetta2 轉譯,如果發現使用了 WebKit ,就略過測驗,這并不完美,但幸好我們的專案中并沒有用到太多 WebKit ,性能似憾訓可以接受,只要把并行測驗限制在兩個實體以內,否則系統會耗盡記憶體,產生大量頁面交換,導致變慢,

Docker

我們使用 Docker 來自動化網站,以及為 Web 和 Server PDF SDK 加載環境,Docker 發表了一篇博文,承認當前 Docker 無法在 M1 上正常運行,但他們正在努力解決,有一些非常麻煩的方法使用蘋果的 supervisor 來手動運行 Docker 容器,但需要基于 ARM 的容器,

我希望在 2021 年第一季度找到運行基于 ARM 的容器的方法,我們需要一些努力添加 ARM 的支持(一些已經排上了日程),所以這只是一個過渡問題,

虛擬化和 Windows

為了測驗 Windows PDF SDK,大多數人通常都會使用 VMware 虛擬機,安裝 Windows 10 和 Visual Studio ,目前沒有任何 Mac 上的虛擬化程式能支持蘋果芯片,但 VMware 和 Parallels 都在努力解決問題,我認為 VirtualBox 應該無法在短期內給出解決方案,

我認為最終我們肯定能通過某種商業工具運行基于 ARM 的 Windows ,目前已經有了許多概念性的驗證,性能似乎非常不錯,微軟目前并沒有基于 ARM 的 Windows ,所以如何獲取授權會是很有意思的問題,

基于 ARM 的 Windows 可以模擬 x86 的應用程式,而微軟正在開發 x64 模擬,目前已經在 Insider 的構建中推出了,幾個月后就應該能在 M1 上通過 Visual Studio 以可以接受的性能測驗我們的 Windows SDK 了,

運行舊版本的 macOS 可能問題更大,目前我們的 AppKit PDF SDK 支持 macOS 10.14 ,而 Catalyst PDF SDK 支持 macOS 10.15 ,兩個發布都需要測驗,我們依然需要依賴于 VMware 或 Parallels 是否會包含完整的 x64 模擬層,這模擬層將會非常慢,所以我并沒有太多期待,
在這里插入圖片描述最后,16GB 記憶體并不多,在運行并行測驗時,機器會產生大量的頁面交換,導致性能大幅度下降,在運行虛擬機時問題會更嚴重,未來機器如果提供 32GB 的話能緩解這個問題,

Android Studio

IntelliJ 在努力將 JetBrains 運行時移植到蘋果芯片上,目前 IntelliJ 的程式需要通過 Rosetta 2 運行,但通過 Graddle 進行編譯非常慢, Gradle 會在運行時創建代碼,這個行為似乎與 Rosetta 2 的提前轉譯邏輯非常不契合,

我希望大部分問題能在 2021 年第一季度得到解決,但要讓所有 Java 版本能在 ARM 上正常運行還需要很長一段時間,

Homebrew

Homebrew 目前通過 Rosetta 2 運行,只要加上 arch -x86_64 前綴就能正常使用,還可以在 /opt/homebrew 下額外安裝一個 ARM 版的 Homebrew ,因為越來越多的軟體都開始支持ARM,

目前還沒發現問題(而且性能也不錯),最終肯定能原生運行,

應用程式

大多數應用程式都能運行,Rosetta 的影響可以忽略不計,大型應用程式的啟動似乎受到了較大的性能影響(例如,Word 需要大約 20 秒才能轉譯完成),但可執行檔案會快取起來,以后的運行速度就會很快,

一小部分應用程式不能轉譯,導致啟動失敗(例如 Beamer,以及 Google Drive 的 “Backup and Sync” 客戶端),但非常罕見,一些應用程式會搞不清楚自己在磁盤上的位置,會提示移動應用程式目錄,但其實只是轉譯后的可執行檔案在其他位置執行而已,絕大多數提示可以忽略,一些應用程式(例如 Visual Studio Code )無法進行自動更新,因為轉譯后的應用程式是只讀的,但是,就 VS Code 而言,Insider 版本已經支持 ARM ,所以可以正常作業,

基于 Electron 的應用程式在 Rosetta 上運行非常慢,似乎 V8 編譯器會阻止提前轉譯,最新版本的 Electron(版本 11 )已經完全支持蘋果芯片,Slack 等公司已經發布了能夠原生運行的 beta 版本,

Google 剛剛發布了 ARM 版本的 Chrome ,但與速度飛快的 Safari 相比還有一定距離,

總結

新的 M1 MacBook 運行速度非常快,性能很優秀,而且很安靜,所以傳言都是有理有據的,不過在軟體方面還有一定差距,特別是舊的 iOS 模擬器非常有問題,

這些都能在軟體層面修復,整個軟體行業都在努力提升體驗,所以等到明年蘋果發布新版 16 寸 MacBook Pro 以及下一代 M 芯片的時候,完全可能將 M1 Mac 作為主力開發機,

隨著時間的推移,M1 會成為我的第二臺筆記本電腦,我依然會使用2.4GHz 16 寸 MacBook Pro 32GB 記憶體的電腦,因為它的運行速度更快,畢竟在有了更好的選擇后,就很難再使用風扇嗡嗡作響的電腦了,

作為開發者,你怎么看?

針對以上的評測,引發不少網友熱議:

評論1

我也是一名開發人員,不過我不使用 VSCode、Java/Gradle 等軟體,我使用 Python 和 Rust 來從事開源專案的開發,

  1. 我的開源專案中,運行測驗能快很多,這讓我作業起來更舒服,在2017 MacBook Pro i7 上運行測驗大約需要 60 秒,而在 M1 上只需要 15 秒,所以這在編輯運行測驗回圈中是一個巨大的進步,

  2. 我的 Rust 專案編譯時間縮短了許多,以前除錯版本的編譯加上連接大約需要 3 分鐘,現在只需 40 秒,因此同樣也提高了開發效率,

對于其他專案,如 node/npm ,加速也非常明顯,從源代碼到可發布物件的流水線也更快,

我開發時使用的 vim 在 Rosetta 上也運行得很好,所以我可以繼續使用我的插件,我用 Docker 并不多,但我會連接到云上,而不會在本地運行,

我有一臺 16GB 13 寸的 MacBook Pro ,我同意作者的意見,它可以作為第二臺筆記本,但它幾乎能滿足我的一切要求,而且更快,所以我基本上不再使用舊的 15 寸 MacBook Pro 了,

我一直在使用 16GB 的電腦,所以也許我已經習慣了小記憶體……我也不會大量使用 Electron 等應用程式,而且由于能夠在 M1 上運行 iPad/iOS 的應用程式,對于 Electron 的需求會更小,因為像 Authy 等應用程式能啟動更快,

我很期待蘋果芯片的 16 寸 MacBook Pro ,但原因只不過是我希望更大的螢屏,但至少目前來看,M1 芯片的 13 寸 MacBook Pro 已經非常好了,

評論2

個人意見,我很期待升級版,很高興能看到有人證實 16GB 記憶體太小,很多人說 16GB 記憶體足夠,但作為開發人員,為了以后考慮,我真希望能有 64GB 記憶體,我的 MacBook Pro 已有 8 歲高齡了,但依然擁有 16GB 記憶體,

評論3

不知道為什么這么多人擔心開發人員會被鎖定到某個系統上,我有很多其他電腦,Linux、BSD 以及 Windows 等到, 所以不太可能被鎖定,我更擔心的是蘋果會控制平臺,并不是說 M1 平臺,而是擔心其他平臺會被蘋果以某種形控制,如果蘋果嘗試任何出格的事情,我肯定會放棄使用蘋果,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/232659.html

標籤:其他

上一篇:需求管理6個最佳方法

下一篇:關于offer選擇,一些不是建議的建議

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more