2019華為全球開發者大會將在8月9日-11日在華為松山湖基地召開。本次開發者大會邀請了1500位合作伙伴、5000名全球開發者,將是華為歷來規模最大的一次會議。根據此前海報,方舟編譯器將成為2019華為開發者大會上重點內容,外界猜測,方舟編譯器將迎來開源。
今天下午,華為余承東在微博確認,接下來方舟編譯器會全面開源。
余承東表示,“它詳細解讀了我們如何用十年努力,讓方舟編譯器和世界對話,讓手機的使用體驗更加流暢。接下來方舟編譯器會全面開源,期待更多合作伙伴加入方舟陣營,一起為消費者帶來全新的移動應用生態和體驗!”
文章介紹,2017年5月的一個凌晨,華為某實驗室里,方舟編譯器上第一個Java程序“HelloWorld”跑通。
據文章介紹,方舟已經不是傳統意義上從高級語言到機器碼的“萬能翻譯”,更是一個編譯運行系統。一方面,方舟編譯器首次在Java領域將虛擬機干掉,也是軟件史上首次將Java/C/C++等混合代碼一次編譯成機器碼直接在手機上運行,徹底告別Java的JNI額外開銷,也徹底告別了虛擬機的GC內存回收帶來的應用進程掉線,使操作流暢度大幅提升。
華為手機直接通過方舟編譯器替換了Android system-server的所有后臺服務,這一項就已經足夠讓華為EMUI比其他安卓系統更快一步。根據華為官方測試,方舟編譯器提升手機系統操作流暢度高達24%,系統響應性能提升44%。
另一方面,方舟編譯器用空間換性能,直接將編譯器的代碼優化搬到了開發者環境,不再被手機端的硬件資源所限制,為代碼優化提供了無限可能。
此外,經測試,新浪微博極速版App經方舟編譯后,操作流暢度提升高達60%。
據華為官方方面介紹,方舟編譯器是首家完全替代語言虛擬機的靜態編譯器,完全不需要解釋器。兼顧Java開發效率和C語言運行效率的編譯器。相比現有的編譯機制:
1.方舟編譯器是一種靜態的編譯方式,而現有的安卓系統,運行一個應用程序首先啟動虛擬機,然后讀入應用程序代碼,逐條解釋執行。會占用較多的處理資源,影響程序執行的效率。當然,也有包括AOT或JIT等提前或運行時的編譯技術,把部分程序轉換成機器碼直接在CPU上執行。但是,仍舊無法做到100%做到擺脫虛擬機的執行,這也是當前安卓陣營不如IOS陣營的關鍵。
2.華為方舟編譯器的靜態編譯方式可將語言里的動態特性直接翻譯成機器碼,手機安裝應用程序后可全速運行程序,徹底消除虛擬機的弊病,帶來效率上的極大提升。
3.方舟編譯器是在開發環境部署的編譯器,而現有編譯過程,主要發生在手機上,帶來額外的資源消耗。
目前方舟編譯器針對通用ARM芯片架構進行編譯優化,未來將通過軟硬件協同設計,將麒麟芯片的能力發揮到極致。同時方舟編譯器支持Java標準用法,三方應用可直接進行編譯,不需要修改代碼。但如果希望獲得更加好的性能或內存方面的提升,則可以通過調整代碼結構,與方舟編譯器配合優化來實現。