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

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



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

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

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

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



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

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



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

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

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

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

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

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

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



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



華為EMUI還將如何進化與變革?

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

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

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



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

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


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

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

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

長按掃碼 閱讀全文