6 月 3 日,榮耀產(chǎn)品總經(jīng)理熊軍民在知乎發(fā)布文章《熊叔隨筆:聊一聊我眼中的方舟編譯器》,詳解了安卓編譯器的缺點,與方舟編譯器的改進,揭開了方舟編譯器身上的神秘面紗。熊軍民表示,編譯器是一種將“高級語言”翻譯為能直接被計算機或虛擬機執(zhí)行目標代碼的程序,編譯器的效率直接影響程序運行性能和效率。谷歌此前多次調(diào)整過安卓的編譯器模式,從Dalvik虛擬機、到JIT、再到ART,在Android 7. 0 版本,谷歌采用了AOT+ JIT+解釋執(zhí)行的混合模式,為了達到一個安裝時間、空間占用和性能之間的平衡。但熊軍民認為目前Android依然存在邊解釋邊執(zhí)行的代碼運行方式,Google也多次調(diào)整編譯代碼的模式,但是相比iOS依然有性能差距。而方舟編譯器則解決了這一問題。方舟編譯器最大的優(yōu)勢在于它繞過了VM。方舟編譯器是首家完全替代語言虛擬機的靜態(tài)編譯器,完全不需要解釋器。兼顧Java開發(fā)效率和C語言運行效率的編譯器。相比安卓現(xiàn)有的編譯機制,方舟編譯器擁有 3 大優(yōu)點:1.方舟編譯器是一種靜態(tài)的編譯方式,而現(xiàn)有的安卓系統(tǒng),運行一個應(yīng)用程序首先啟動虛擬機,然后讀入應(yīng)用程序代碼,逐條解釋執(zhí)行。會占用較多的處理資源,影響程序執(zhí)行的效率。當然,也有包括AOT或JIT等提前或運行時的編譯技術(shù),把部分程序轉(zhuǎn)換成機器碼直接在CPU上執(zhí)行。但是,仍就無法做到100%做到擺脫虛擬機的執(zhí)行,這也是當前安卓陣營不如IOS陣營的關(guān)鍵。2.華為方舟編譯器的靜態(tài)編譯方式可將語言里的動態(tài)特性直接翻譯成機器碼,手機安裝應(yīng)用程序后可全速運行程序,徹底消除虛擬機的弊病,帶來效率上的極大提升。3.方舟編譯器是在開發(fā)環(huán)境部署的編譯器,而現(xiàn)有編譯過程,主要發(fā)生在手機上,帶來額外的資源消耗。有鑒于此,華為方舟編譯器能帶來系統(tǒng)性能的顯著提升。1.EMUI 9. 1 對系統(tǒng)主要服務(wù)System Server進行靜態(tài)編譯化。帶來了系統(tǒng)流暢度提升24%,系統(tǒng)響應(yīng)性能提升44%以上的收益。2.微博極速版實現(xiàn)了靜態(tài)化編譯后,流暢度提升高達60%。此前榮耀總裁趙明曾高度評價方舟編譯器:“這是一個極其巨大的提升,我們一直期待著安卓系統(tǒng)能夠超越iOS。榮耀 20 系列經(jīng)過方舟比那一起的處理之后,我們擁有可以媲美iPhone的體驗,甚至來說在某些方面我們已經(jīng)優(yōu)于它。”