自華為P30系列發(fā)布以來,火了的除了手機(jī)新品本身以外,還有近日越來越“紅”的黑科技——華為方舟編譯器。
改造Android、媲美iOS、安卓手機(jī)從此不卡頓……一時間,輿論對華為方舟編譯器的渲染近乎神話。據(jù)說自發(fā)布會結(jié)束后,華為軟件內(nèi)部團(tuán)隊的電話幾乎被打爆,很多開發(fā)者都想了解方舟編譯器的更多信息。
那么,華為方舟編譯器究竟是干嘛的?被余承東稱為“安卓性能革命”的方舟編譯器對于華為手機(jī)的戰(zhàn)略發(fā)展有何意義?對于Android陣營以及整個產(chǎn)業(yè)又將帶來哪些影響呢?
傳統(tǒng)編譯器繞不過去的“坎兒”
首先,來看看啥是編譯器?
按照定義:編譯器是將“一種語言(通常為高級語言)”翻譯成能直接被計算機(jī)或虛擬機(jī)執(zhí)行的目標(biāo)代碼,編譯器的效率將直接影響程序運(yùn)營性能和效率。
簡單來說,編譯器就是人類和機(jī)器溝通的橋梁。比如一部手機(jī),里面的程序是由程序員使用高級語言開發(fā)的,當(dāng)我們要啟動某個程序(比如打開一個APP)的過程中,編譯器扮演著“翻譯者”的角色,把高級語言轉(zhuǎn)換成機(jī)器能讀懂的機(jī)器碼,并按照指令運(yùn)行。
編譯器如此神通廣大,但在安卓的世界里,它卻有一道繞不過去的“坎兒”那就是VM。VM是運(yùn)行在安卓程序中的一個虛擬計算機(jī),它還帶了2個翻譯——解釋器和編譯器。當(dāng)用戶打開APP過程中,虛擬機(jī)開始運(yùn)行,為了把高級語言轉(zhuǎn)換成機(jī)器能聽懂的語言,虛擬機(jī)中有解釋器和編譯器兩個翻譯在運(yùn)行;解釋器好像現(xiàn)場翻譯似的,演講者講一句它就停下來翻譯一句給編譯器聽,然后編譯器結(jié)合上下文一次翻譯一大段內(nèi)容讓機(jī)器聽懂。兩個翻譯同時發(fā)聲,手機(jī)聽到的內(nèi)容只能是斷斷續(xù)續(xù),一邊翻譯一邊執(zhí)行,這也是安卓卡頓的一個重要來源。
對此,華為消費(fèi)者BG軟件部總裁王成錄指出,目前安卓系統(tǒng)主要在手機(jī)上進(jìn)行編譯,雖然谷歌一直在不斷提升原生安卓編譯器效率,比如安卓5.0版本之前安卓采用解釋執(zhí)行+JIT方式,安卓6.0開始嘗試ART虛擬機(jī),再之后采用解釋執(zhí)行+JIT+AoT綜合模式。不過為了解決安卓程序開發(fā)的兼容性問題,ART虛擬機(jī)長期存在,安卓編譯器可以通過JIT和AoT編譯大部分Java語言,但對于Java的動態(tài)特性無能為力,仍然需要邊解釋邊執(zhí)行,這也導(dǎo)致了安卓系統(tǒng)流暢性下降。
四大亮點(diǎn)
從“邊翻譯邊執(zhí)行”到提前編譯機(jī)器碼
針對安卓系統(tǒng)面臨的流暢性問題尤其是編譯器問題,華為方舟編譯器的特性恰恰能夠繞過VM,消除虛擬機(jī)動態(tài)編譯的額外開銷,實(shí)現(xiàn)了開發(fā)和運(yùn)行效率的兼容并舉,從“邊翻譯邊執(zhí)行”到提前編譯機(jī)器碼,直接執(zhí)行。
據(jù)王成錄介紹,華為方舟編譯器主要有以下四大亮點(diǎn):
亮點(diǎn)1.首個多語言聯(lián)合優(yōu)化的編譯器,消除了跨語言調(diào)用開銷。當(dāng)前大部分安卓應(yīng)用都涉及不同開發(fā)語言,不同語言形成的代碼需要在運(yùn)行態(tài)中進(jìn)行協(xié)同從而產(chǎn)生額外消耗,而方舟編譯器是業(yè)界首個多語言聯(lián)合優(yōu)化的編譯器,開發(fā)者在開發(fā)環(huán)境中可以一次性將多語言統(tǒng)一編譯為一套機(jī)器碼,運(yùn)行時無需產(chǎn)生跨語言帶來的額外消耗,并可以進(jìn)行跨語言的聯(lián)合優(yōu)化,提升運(yùn)行效率。
亮點(diǎn)2.程序運(yùn)行時無需依賴虛擬機(jī),減少了資源占用,同時實(shí)現(xiàn)了高效的內(nèi)存回收機(jī)制。
亮點(diǎn)3.第三,方舟編譯器可以針對不同應(yīng)用靈活編譯優(yōu)化。
亮點(diǎn)4.對于開發(fā)者學(xué)習(xí)和使用成本非常低。以上這些技術(shù)亮點(diǎn),均能給應(yīng)用開發(fā)者帶來更多優(yōu)化自己應(yīng)用的機(jī)會。
超越蘋果三星的重要加碼
用華為的話說,方舟編譯器編譯的應(yīng)用在開發(fā)階段就已完成。也就是說,只要是經(jīng)過編譯器編譯的應(yīng)用,在應(yīng)用市場上上架了以后,用戶下載的就是編譯過的了。
華為測試結(jié)果顯示,使用方舟編譯器最終將提升24%的系統(tǒng)操作流暢度,提升44%的系統(tǒng)響應(yīng)能力,以及提升60%的三方應(yīng)用操作流暢度,“Android系統(tǒng)將比iOS系統(tǒng)還要流暢”。這一技術(shù)將正式開源給開發(fā)者,讓所有人都可以使用方舟編譯器對應(yīng)用預(yù)編譯。
在華為看來,方舟編譯器作為全新的系統(tǒng)及應(yīng)用的編譯和運(yùn)行機(jī)制,從DNA層面對安卓進(jìn)行了改造,解決了安卓應(yīng)用邊解釋邊運(yùn)行的低效問題,讓手機(jī)能直接聽懂“高級語言”,可以說是近幾年來安卓陣營最大的根本性革新。能夠大幅降低安卓系統(tǒng)隨機(jī)卡頓的問題,打破了人機(jī)之間的藩籬,讓用戶能直觀感受到的就是使用體驗更加持久流暢。
筆者認(rèn)為,也許采用方舟編譯器之后安卓系統(tǒng)以及應(yīng)用將比iOS系統(tǒng)還要流暢這個說法可能言過其實(shí),因為iPhone和其搭載的iOS系統(tǒng)獨(dú)樹一幟、在系統(tǒng)流暢性方面仍然領(lǐng)先安卓。但有了方舟編譯器,安卓系統(tǒng)流暢性差、應(yīng)用開啟和運(yùn)行速度勢必將得到大幅提升,縮小與iOS的差距,華為也成為首家在系統(tǒng)層面主動尋求顛覆式創(chuàng)新的手機(jī)廠商。
對于志在超越蘋果的華為來說,縮小安卓與iOS系統(tǒng)流暢性的差距,也將助力華為手機(jī)在超越蘋果尤其是高端市場更進(jìn)一步增加實(shí)力;而對于超越三星成為成全球第一手機(jī)廠商的目標(biāo)來說,雖然方舟編譯器將正式開源給開發(fā)者,使用方舟編譯器對應(yīng)用進(jìn)行預(yù)編譯的APP也可能將在其他品牌手機(jī)上適配使用,但估計華為出品的方舟編譯器應(yīng)該還是在華為自家的EMUI系統(tǒng)上更加匹配、性能才能夠得到充分發(fā)揮,因此對于旨在超越三星奪冠的華為來說,方舟編譯器也將成為其爭冠之路上的重要砝碼。
-
華為
+關(guān)注
關(guān)注
216文章
35210瀏覽量
255876 -
蘋果
+關(guān)注
關(guān)注
61文章
24545瀏覽量
203942 -
編譯器
+關(guān)注
關(guān)注
1文章
1662瀏覽量
50210 -
方舟編譯器
+關(guān)注
關(guān)注
0文章
63瀏覽量
439
原文標(biāo)題:媲美iOS?華為方舟編譯器真有那么玄乎嗎?
文章出處:【微信號:C114-weixin,微信公眾號:C114通信網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Triton編譯器與GPU編程的結(jié)合應(yīng)用
Triton編譯器如何提升編程效率
Triton編譯器在高性能計算中的應(yīng)用
Triton編譯器的優(yōu)化技巧
Triton編譯器的優(yōu)勢與劣勢分析
Triton編譯器在機(jī)器學(xué)習(xí)中的應(yīng)用
Triton編譯器支持的編程語言
Triton編譯器與其他編譯器的比較
Triton編譯器功能介紹 Triton編譯器使用教程
分享關(guān)于編譯器的科普
C7000優(yōu)化C/C++編譯器

評論