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