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

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



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

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

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

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



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

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



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

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

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

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

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

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

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



王成錄表示,文件系統(tǒng)實(shí)際上是伴隨著存儲(chǔ)介質(zhì)的發(fā)展一步一步走過(guò)來(lái)的,存儲(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誕生那一天起,并沒(méi)有考慮到閃存的特點(diǎn),文件系統(tǒng)是讀寫雙向的,讀寫雙向用在系統(tǒng)區(qū)是不合適的。Ext4為了解決這個(gè)問(wèn)題,加了兩把鎖鎖住,不允許外部寫進(jìn)去。華為EROFS這個(gè)系統(tǒng),既解決了隨機(jī)讀的速度問(wèn)題,又解決安全問(wèn)題,這個(gè)文件系統(tǒng)是只讀的不允許寫的,先天就把寫的可能性屏蔽掉了。第二個(gè)核心特性是對(duì)于系統(tǒng)分區(qū)專門量身定制的,可以提升讀的速度,還有第三點(diǎn)也非常重要,那就是通過(guò)壓縮算法,可以將整個(gè)系統(tǒng)區(qū)空間占用減少2GB,這個(gè)對(duì)消費(fèi)者直接受益還是比較大的。華為已經(jīng)把EROFS的文件系統(tǒng)在社區(qū)開(kāi)源了,Linux下一個(gè)主版本4.19版本就使用了華為EROFS文件系統(tǒng) ,這也是國(guó)內(nèi)廠商第一次貢獻(xiàn)完整的文件系統(tǒng)到Linux主線版本。



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

安卓和iOS陣營(yíng)的良性競(jìng)爭(zhēng),讓雙方都保持著足夠強(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未來(lái)還有很長(zhǎng)的路要走。華為的技術(shù)創(chuàng)新都圍繞用戶體驗(yàn),當(dāng)我們把華為手機(jī)端側(cè)鍛煉得非常健康的時(shí)候,我們另外一頭必須往前走,通過(guò)生態(tài)共同努力,讓業(yè)務(wù)更豐富,讓應(yīng)用體驗(yàn)更好,必須借助第三方生態(tài),這就是華為與BAT和網(wǎng)易等伙伴成立了安卓綠色聯(lián)盟的初衷,目的就是中國(guó)的安卓生態(tài)建設(shè)的更加純凈、高效。

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



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

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


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

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

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

長(zhǎng)按掃碼 閱讀全文