王成錄解密方舟編譯器:安卓如何改良才能媲美iOS的流暢度

蘋果并不是智能手機(jī)最早的發(fā)明者,但在2007年1月發(fā)布的第一代iPhone,卻真正重新定義了智能手機(jī)并開啟了移動(dòng)互聯(lián)網(wǎng)的時(shí)代序幕。12年過去,盡管iPhone手機(jī)在拍照、續(xù)航等細(xì)分領(lǐng)域紛紛被來自安卓陣營的競爭對手所超越,但在系統(tǒng)流暢性方面,iPhone和其搭載的iOS系統(tǒng)一直是業(yè)內(nèi)當(dāng)之無愧的標(biāo)桿。



伴隨著華為P30系列新品發(fā)布,華為在EMUI 9.1應(yīng)用了全新的方舟編譯器之后,據(jù)華為官方實(shí)驗(yàn)室測算數(shù)據(jù)顯示,系統(tǒng)組件System Server就給操作系統(tǒng)流暢度帶來了24%的提升,系統(tǒng)響應(yīng)性能獲得了44%的顯著收益。為什么方舟編譯器會(huì)讓安卓系統(tǒng)獲得可以媲美iOS系統(tǒng)的絲滑體驗(yàn)?既然更新編譯器有如此大的收益,為什么之前華為和其他企業(yè)沒有在編譯器上有大動(dòng)作?文件系統(tǒng)被稱為是一個(gè)操作系統(tǒng)中不可輕易撼動(dòng)的“承重墻”,華為為什么要選擇EROFS這個(gè)全新的文件系統(tǒng)?4月25日下午,華為消費(fèi)者BG軟件部總裁王成錄就以上方舟編譯器和EROFS文件系統(tǒng)等焦點(diǎn)問題,進(jìn)行了細(xì)致的解答。

方舟編譯器為什么能提升安卓系統(tǒng)的流暢度?

編譯器對于大多數(shù)用戶來說,都是一個(gè)相當(dāng)陌生的事物。其實(shí)通俗來講,編譯器的作用就是把編程人員開發(fā)的高級語言程序,翻譯成機(jī)器可執(zhí)行的機(jī)器指令。王成錄做了一個(gè)形象的比喻:要想把編譯器做好,就是你要懂原來的高級語言,又要懂你所看到的硬件平臺(tái)。就像一個(gè)優(yōu)秀的翻譯官,要把中文翻譯成英文,至少對中文和英文都有非常深刻的理解才行;你必須對整個(gè)機(jī)器的CPU、GPU所有的指令要熟悉,第二個(gè)對目標(biāo)語言要非常熟悉,才能做出一款更優(yōu)秀的編譯器。

我們在電視綜藝節(jié)目或者日常的線下聚會(huì)娛樂時(shí),經(jīng)常會(huì)玩一種叫“我來比劃你來猜”的游戲,游戲規(guī)則通常是兩人搭檔,一人背對屏幕根據(jù)另一個(gè)人的語言表述和肢體動(dòng)作來猜詞,另一個(gè)人根據(jù)屏幕上關(guān)鍵詞來做提示,最終以單位時(shí)間猜對關(guān)鍵詞數(shù)量多者獲勝。玩過這個(gè)游戲的朋友會(huì)深刻體會(huì),在知識(shí)儲(chǔ)備大致相當(dāng)?shù)那闆r下,描述者對關(guān)鍵詞描繪的精準(zhǔn)度越高、特征值越清晰,那么單位時(shí)間內(nèi)猜對的概率就越高;反之,如果描述者給出的指令模糊,則需要不斷做解釋,才能逐步接近答案。方舟編譯器,就是與猜詞游戲中的原理有很多相通之處,原有的安卓系統(tǒng)的編譯器是邊執(zhí)行邊解釋,而方舟編譯器則是將指令一次性地編譯到位,無需虛擬機(jī)運(yùn)行,徹底消除了虛擬機(jī)動(dòng)態(tài)編譯的額外開銷,從邊執(zhí)行邊解釋到直接執(zhí)行,所以最終執(zhí)行效率和流暢性都能得以大幅提升。



據(jù)王成錄介紹,現(xiàn)有的安卓系統(tǒng)主要是在手機(jī)上進(jìn)行編譯,雖然谷歌一直在不斷提升原生安卓編譯器的效率,安卓5.0版本之前,安卓采用的是解釋執(zhí)行+JIT方式,安卓6.0開始嘗試采用ART虛擬機(jī),后來進(jìn)化為采用解釋執(zhí)行+JIT+AoT的綜合模式。但為了解決安卓程序開發(fā)的兼容性問題,ART虛擬機(jī)長期存在,安卓編譯器可以通過JIT和AoT編譯大部分Java語言,但對于Java的動(dòng)態(tài)特性無能為力,仍然需要邊解釋邊執(zhí)行,,這也導(dǎo)致了安卓系統(tǒng)流暢性的損失。而華為方舟編譯器可供開發(fā)者在開發(fā)環(huán)境一次性的將高級語言編譯為機(jī)器碼手機(jī)安裝應(yīng)用程序后可全速運(yùn)行程序,帶來效率上的巨大提升。

王成錄坦言,經(jīng)過華為方舟編譯器編譯后,安裝包的體積會(huì)增大一些,安裝后的占用空間也有些變大。但現(xiàn)在手機(jī)的普遍空間較大,并且安裝包下載后系統(tǒng)會(huì)直接刪掉,對用戶的影響并不明顯。經(jīng)過方舟編譯后的應(yīng)用,性能得到質(zhì)一般的提升,以微博極速版為例,根據(jù)華為實(shí)驗(yàn)室測試數(shù)據(jù)顯示,操作流暢度提升高達(dá)60%。



在硬件配置相當(dāng)?shù)那疤嵯?,使用方舟編譯器能大幅提升手機(jī)的流暢度,所以這是一個(gè)系統(tǒng)底層革新帶來的巨大升級,但王成錄表示,華為并不打算將方舟編譯器私藏為華為的“獨(dú)家秘笈”華為計(jì)劃將方舟編譯器開源,以此來提升整個(gè)安卓生態(tài)的產(chǎn)業(yè)競爭力,讓更多的安卓陣營伙伴和用戶受益,提升用戶對整個(gè)安卓軟件生態(tài)的滿意度。

櫻桃好吃樹難栽。王成錄回憶說,做方舟編譯器是一個(gè)“板凳要坐十年冷”的工程,華為穩(wěn)得住才能做下來。華為從2009年做海思芯片后,由于需要有自己的編譯器才能真正發(fā)揮芯片的能力才開始起步,從2013年這開始,有華為自己的自研編譯器了,叫HCC;再到2014年,F(xiàn)redChow等技術(shù)大牛加入,來做華為編譯器的主架構(gòu);有了成功的實(shí)踐經(jīng)驗(yàn)以后,華為2012實(shí)驗(yàn)室成立了編譯器與編程語言實(shí)驗(yàn)室,到今天推出了方舟編譯器,其實(shí)這是歷時(shí)十年艱辛努力的結(jié)果。

王成錄認(rèn)為華為方舟編譯器主要優(yōu)點(diǎn)體現(xiàn)在四個(gè)技術(shù)亮點(diǎn)上:第一,它是多語言聯(lián)合優(yōu)化編譯器,消除跨語言調(diào)用開銷,這是影響Android性能開銷比較大的核心原因之一;第二,把虛擬機(jī)去掉,革新了內(nèi)存回收機(jī)制;第三,靈活的編譯優(yōu)化,開發(fā)者不需要改代碼,優(yōu)化編譯過的性能可以提升10%-20%;第四,方舟編譯器將采取開源策略,降低開發(fā)者的學(xué)習(xí)和使用成本。以上這些技術(shù)亮點(diǎn)能給應(yīng)用開發(fā)者帶來了更多去優(yōu)化自己應(yīng)用的機(jī)會(huì)。

為什么說超級文件系統(tǒng)EROFS是一項(xiàng)底層重大突破?

如果說操作系統(tǒng)是一個(gè)設(shè)計(jì)縝密的大廈,那么文件系統(tǒng)就是這個(gè)大廈中其關(guān)鍵支撐作用的“承重墻”,我們可以對房屋進(jìn)行各種個(gè)性化裝修,但有一個(gè)基本的嘗試就是千萬不能動(dòng)“承重墻”。

但華為在EMUI 9.1中卻采用了全新的超級文件系統(tǒng)(EROFS),這行為相當(dāng)于拆掉重做了安卓系統(tǒng)的“承重墻”,華為為什么要冒如此大的戰(zhàn)略風(fēng)險(xiǎn)?對用戶而言收益如何體現(xiàn)?

在做EROFS之前,華為先大膽嘗試了F2FS,F(xiàn)lash友好的文件系統(tǒng)。王成錄解釋道,其實(shí)華為當(dāng)初做F2FS立項(xiàng)時(shí),內(nèi)部也產(chǎn)生過爭議,但華為堅(jiān)信F2FS才是與閃存介質(zhì)最匹配的文件系統(tǒng),F(xiàn)2FS能夠給用戶帶來更流暢的體驗(yàn),這值得華為去嘗試。2016年,F(xiàn)2FS伴隨Mate 9搭載的EMUI 5.0正式發(fā)布,過了一年半以后,Google看到F2FS在安卓系統(tǒng)上運(yùn)行的卓越表現(xiàn),便在Google Pixel手機(jī)用了這個(gè)文件系統(tǒng)。



王成錄表示,文件系統(tǒng)實(shí)際上是伴隨著存儲(chǔ)介質(zhì)的發(fā)展一步一步走過來的,存儲(chǔ)介質(zhì)不斷的演進(jìn),讓這個(gè)文件系統(tǒng)不斷的跟著演進(jìn),就是讓數(shù)據(jù)在存儲(chǔ)介質(zhì)上存儲(chǔ)讀取更好、更安全也更快。EROFS文件系統(tǒng)本身,它的第一個(gè)核心特點(diǎn)就是只讀特性,保證系統(tǒng)的安全。操作系統(tǒng)的系統(tǒng)分區(qū)不能被寫入,否則就意味著系統(tǒng)被攻破了。但安卓起源于Linux,其文件系統(tǒng)Ext4及其前身Ext2、Ext3等從Android誕生那一天起,并沒有考慮到閃存的特點(diǎn),文件系統(tǒng)是讀寫雙向的,讀寫雙向用在系統(tǒng)區(qū)是不合適的。Ext4為了解決這個(gè)問題,加了兩把鎖鎖住,不允許外部寫進(jìn)去。華為EROFS這個(gè)系統(tǒng),既解決了隨機(jī)讀的速度問題,又解決安全問題,這個(gè)文件系統(tǒng)是只讀的不允許寫的,先天就把寫的可能性屏蔽掉了。第二個(gè)核心特性是對于系統(tǒng)分區(qū)專門量身定制的,可以提升讀的速度,還有第三點(diǎn)也非常重要,那就是通過壓縮算法,可以將整個(gè)系統(tǒng)區(qū)空間占用減少2GB,這個(gè)對消費(fèi)者直接受益還是比較大的。華為已經(jīng)把EROFS的文件系統(tǒng)在社區(qū)開源了,Linux下一個(gè)主版本4.19版本就使用了華為EROFS文件系統(tǒng) ,這也是國內(nèi)廠商第一次貢獻(xiàn)完整的文件系統(tǒng)到Linux主線版本。



華為EMUI還將如何進(jìn)化與變革?

安卓和iOS陣營的良性競爭,讓雙方都保持著足夠強(qiáng)的技術(shù)更新動(dòng)力,也讓移動(dòng)應(yīng)用生態(tài)更加健康。但整體而言,安卓在生態(tài)系統(tǒng)層面還有很多值得向蘋果學(xué)習(xí)之處。

王成錄直言,在軟硬件結(jié)合的精細(xì)化資源調(diào)度和安卓系統(tǒng)組件深度優(yōu)化等方面,EMUI未來還有很長的路要走。華為的技術(shù)創(chuàng)新都圍繞用戶體驗(yàn),當(dāng)我們把華為手機(jī)端側(cè)鍛煉得非常健康的時(shí)候,我們另外一頭必須往前走,通過生態(tài)共同努力,讓業(yè)務(wù)更豐富,讓應(yīng)用體驗(yàn)更好,必須借助第三方生態(tài),這就是華為與BAT和網(wǎng)易等伙伴成立了安卓綠色聯(lián)盟的初衷,目的就是中國的安卓生態(tài)建設(shè)的更加純凈、高效。

未來華為EUMI會(huì)圍繞著三個(gè)關(guān)鍵點(diǎn)做大做強(qiáng)生態(tài):第一,是讓業(yè)務(wù)更豐富,AI應(yīng)用便是典型。華為從做AI的第一天起,我們就把AI所有能力開放給第三方,使能現(xiàn)在的應(yīng)用更豐富、更強(qiáng)大;第二,就是解決體驗(yàn)的基礎(chǔ)性流暢性問題,使用方舟編譯器只是其中的一種方式;第三,要把網(wǎng)絡(luò)也考慮進(jìn)來,Link Turbo會(huì)有更新版本,對網(wǎng)絡(luò)的依賴也會(huì)變小。



王成錄強(qiáng)調(diào),在EMUI 9.1的諸多新特性中,其中有一項(xiàng)是華為手機(jī)與華為PC的一碰傳,同時(shí)華為也在跟微軟合作,把這些東西貢獻(xiàn)給微軟,不久將來,在其它品牌Windows的筆記本上也可以使用這個(gè)功能;華為還跟奧迪、寶馬等車企合作手機(jī)鑰匙;華為手機(jī)與主流商用跑步機(jī)合作,用戶在健身房/酒店鍛煉的時(shí)候,華為手機(jī)與跑步機(jī)碰一碰,就可以把所有的跑步數(shù)據(jù)都同步在手機(jī)上,跑完了就可以拿走。以前是兩個(gè)設(shè)備通常是單點(diǎn)的連接,未來的連接,所有的設(shè)備關(guān)系是平等的,所有設(shè)備之間都可以互相連接。未來EMUI的革新和進(jìn)化方向,是讓應(yīng)用和服務(wù),可以在設(shè)備之間無縫的流轉(zhuǎn),讓智慧化全場景體驗(yàn)由美好愿景變成觸手可及的現(xiàn)實(shí)。

華為、小米、OV為代表的中國手機(jī)廠商,在全球智能手機(jī)市場份額不斷提升。但中國手機(jī)廠商在之前的安卓生態(tài)體系中,更多的是生態(tài)系統(tǒng)受益者的角色,而方舟編譯器和EROFS文件系統(tǒng)的開源,讓中國廠商更多地開始承擔(dān)起底層技術(shù)革新和創(chuàng)新賦能的重任,并開始反哺安卓生態(tài)。我們也衷心希望更多中國科技企業(yè),能夠在萬物互聯(lián)、萬物智聯(lián)的5G時(shí)代,能夠在底層技術(shù)層面上做出更多的創(chuàng)新和成績,書寫好“中國智造”的國家形象新標(biāo)簽。


極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2019-04-28
王成錄解密方舟編譯器:安卓如何改良才能媲美iOS的流暢度
但在2007年1月發(fā)布的第一代iPhone,卻真正重新定義了智能手機(jī)并開啟了移動(dòng)互聯(lián)網(wǎng)的時(shí)代序幕。12年過去,盡管iPhone手機(jī)在拍照、續(xù)航等細(xì)分領(lǐng)域紛紛被來自安卓陣營的競爭對手所超越。

長按掃碼 閱讀全文