農林漁牧網

您現在的位置是:首頁 > 農業

方舟編譯器火了!華為在底層重造安卓系統,目標超越蘋果iOS

2021-12-21由 閆躍龍 發表于 農業

編譯程式是什麼軟體

在華為P30系列手機的釋出會上,有三頁PPT,是講方舟編譯器的。這三頁內容,在P30系列手機的光環下並不出眾,但卻堪稱是一場安卓的效能革命,將顛覆安卓系統的體驗。

最近,我與華為消費者BG軟體部總裁王成錄博士進行了深度交流,試圖瞭解方舟編譯器、EROFS超級檔案系統以及華為消費者業務軟體業務的最新動向。

方舟編譯器火了!華為在底層重造安卓系統,目標超越蘋果iOS

方舟編譯器:在底層重造安卓系統體驗

據王成錄透露,在方舟編譯器釋出當天,電話被打爆了,業界的開發者都高度關注。

為什麼會這樣?因為方舟編譯器是對安卓底層機制的重構,給使用者體驗帶來的提升是顛覆性的。

它解決的是安卓手機上最大的痛點:“卡頓”。編譯器,就像是人類和機器溝通的橋樑,承擔著將高階語言“翻譯”成機器能懂的機器碼,並按照指令執行。但是,在安卓系統中,編譯器卻有一個繞不過的坎兒:虛擬機器。安卓系統雖然在不斷演進,但始終需要虛擬機器來實現解釋和執行。

用翻譯的方式來比喻,更容易理解。安卓程式的虛擬機器中有直譯器和編譯器,相當於是有兩個翻譯在執行。直譯器好像現場翻譯,演講者講一句,就需要停下來翻譯一句給編譯器,編譯器則結合上下文一次翻譯一大段。兩個翻譯同時在搞,於是你聽到的內容就是斷斷續續的,你的系統就會變得非常卡頓。

而且,虛擬機器的統一回收記憶體也是卡頓的罪魁禍首之一,Java的虛擬機器模式提供了記憶體GC(垃圾回收)機制,記憶體垃圾是集中回收,但全域性回收時需要短暫中斷應用,成為隨機卡頓的根因之一。

那麼,方舟編譯器帶來的顛覆在哪裡呢?首先,方舟的記憶體回收機制是隨用隨回收,回收時無需暫停應用,因記憶體回收的隨機卡頓就消除了。其次,方舟編譯器是在應用打包的時候直接編譯出了機器指令,無需繁瑣的虛擬機器執行,徹底消除了虛擬機器的動態編譯的額外開銷,從邊翻譯邊執行到提前編譯機器碼直接執行(執行時無需再編譯),大幅提升了效率,讓效能得到大幅提升。

用量化的方式可以很好地看到這種效能提升的效果:有了方舟編譯器的手機,能實現系統操作流暢度提升24%,系統響應效能提升44%。

方舟編譯器火了!華為在底層重造安卓系統,目標超越蘋果iOS

能實現這樣的效果,方舟編譯器的記憶體回收機制也功不可沒。原來虛擬機器的記憶體回收是統一進行的,全域性回收時需要暫停應用(導致卡頓);而方舟編譯器則是記憶體隨用隨回收,回收時無需暫停應用,顯然能夠避免卡頓。

方舟編譯器看起來深奧,但是對應用開發者和使用者來說卻很簡單。王成錄說,對於應用開發者無需修改程式碼,只需要用方舟編譯器重新編譯,就能帶來效能的提升。對於使用者來說,只要在應用市場下載編譯過的應用,就直接能享受到效能提升的好處。

方舟編譯器火了!華為在底層重造安卓系統,目標超越蘋果iOS

重新編譯,會帶來應用安裝包和安裝後佔用空間的增大,以微博極速版為例,安卓9。0的apk是9。7Mb,安裝後是37。5Mb,而使用方舟編譯器後的安裝檔案apk是23Mb,安裝完後大約不到50Mb。但是,使用方舟編譯器後的效能提升卻是顛覆性的,微博極速版的操作流暢度提升了60%!

一句話,方舟編譯器給安卓程式的效能提升結果非常顯著。這個效能提升可以用應用執行時間來衡量,而應用執行時間=應用執行指令總條數X平均每條指令所用CPU cycle數/ CPU頻率,CPU頻率由手機硬體決定,方舟編譯器可以實現平均每條指令所用CPU cycle數更少、應用執行指令總條數更少,從而帶來更快的應用執行時間。

同樣用翻譯來比喻這種編譯帶來的效能提升。““What happens in Vegas, stays in Vegas”如果比作最初的應用,如果不編譯,翻譯可能是“在拉斯維加斯發生的一切,就留在拉斯維加斯”,而方舟編譯器編譯帶來的則是“勿念過往 活在當下”,顯然要好得多。

板凳要坐十年冷,最佳化安卓系統是持久戰

方舟編譯器火了,但是寶劍鋒從磨礪出,梅花香自苦寒來,這一切,來自於“板凳要坐十年冷”的堅持和努力。

王成錄透露,早在2009年,華為就建立了編譯組,因為海思做了晶片以後,需要有自己的編譯器才能真正發揮晶片的能力。從2013年開始,華為推出了自己的編譯器HCC,用在基站領域,這可以說是方舟編譯器的前身。到了2014年,以Fred Chow等為代表的眾多技術人才加入,在2016年華為成立編譯器與程式語言實驗室,一直到現在推出方舟編譯器。

方舟編譯器火了!華為在底層重造安卓系統,目標超越蘋果iOS

編譯器作為系統軟體,真的是一個“板凳要坐十年冷”的工程,穩得住才能做下來,非常的複雜。

王成錄感慨地說,中國有眾多軟體研發人員,但國內一直缺乏領先的系統軟體,因為大家基本上都集中在應用軟體領域,我希望中國的軟體人員能共同努力,能把中國的系統軟體做好,中國軟體未來的希望,是一定要有自己的系統軟體,這樣中國的軟體行業才能真正做強做大。

事實上,回顧華為EMUI系統的發展史,就是一部安卓系統的最佳化史,也折射出華為“板凳要坐十年冷”的精神。

從EMUI5。0系統的“天生快,一生快”,到EMUI8。2的GPU Turbo,到EMUI9。0的Link Turbo,再到現在的方舟編譯器以及EROFS超級檔案系統,都是如此。

方舟編譯器火了!華為在底層重造安卓系統,目標超越蘋果iOS

說到這裡,要多說幾句EROFS超級檔案系統,這也是和方舟編譯器類似的底層顛覆性技術。EROFS超級檔案系統使用專利壓縮演算法,幾乎不存在無效讀取。它讓隨機讀效能提升了20%,系統可用空間多2GB。而且,只讀設計,讓系統分割槽更加安全。

方舟編譯器火了!華為在底層重造安卓系統,目標超越蘋果iOS

王成錄說,我們每走一步,大家看到的是釋出黑科技,但華為不是無意為之,我們一直在圍繞效能這條線找最主要的矛盾,去解決。例如,EMUI5。0解決的是最核心的卡頓問題,GPU Turbo解決的是遊戲流暢度問題,Link Turbo解決的是網路連線問題等等。

那麼,現在最新的EMUI系統和iOS相比處於什麼狀態呢?王成錄說,EMUI9。1的DNA和iOS已經幾乎一樣,目前EROFS檔案系統、通訊、連線模組已經領先iOS,未來,EMUI會有更多模組追趕iOS,甚至超過iOS。

後記:未來更是一場生態戰

誠然,安卓系統要想真正超越iOS的體驗,需要有兩個戰場,一個是深度技術的創新戰場,另一個是開放生態的生態戰場。

一方面,透過方舟編譯器、EROFS超級檔案系統、Link Turbo、GPU Turbo等一系列的深度技術創新,華為的EMUI系統正在接近,甚至在某些方面超越iOS的體驗。

另一方面,華為也在開放生態上進行佈局。以方舟編譯器和EROFS為例,華為都選擇了向業界開源。據瞭解,方舟編譯器將在今年8月舉行的華為終端開發者大會上對框架程式碼開源,開發者可以研究參考;將在今年11月的綠盟開發者大會上將完整的方舟編譯器程式碼開源,開發者可以編譯使用。

方舟編譯器火了!華為在底層重造安卓系統,目標超越蘋果iOS

王成錄說,方舟編譯器是個通用技術,目前是基於ARM指令集開發的,適用於所有ARM晶片平臺,不限於安卓;可以適用ICT行業。未來可基於具體晶片指令集進行開發。

甚至所有的安卓手機廠商都將從中受益。方舟編譯器編譯過的應用,可以適用於其他安卓手機,這讓其他安卓手機使用者也將獲益匪淺。

這點聽上去有點“無私”,但仔細思量,卻是付出即收穫。安卓手機的整體體驗比蘋果要好,有利於包括華為在內的所有廠家。“實際上做這件事情,只靠華為一家不可能實現,我們非常希望Android陣營所有合作伙伴一起努力,這是華為將方舟編譯器向業界開源最核心的原因,希望大家將這個編譯器從各自場景、各自平臺,不斷去打磨它,才能實現最終給使用者帶來最好體驗的理想目標。”王成錄如此說。

安卓系統因為華為的參與,正在變得越來越好,這中間不僅有努力,更有決心。王成錄透露,檔案系統F2FS在EMUI 5。0更換時,自己在內部簽了軍令狀,因為這個工作實在是風險極大,但是華為內部做了大量的測試,才讓這個更換工作有驚無險。“簡單來說,三年前,我們70%的東西是跟隨Google,他們做了很多貢獻,我們受益很大,但是今天我們也有很多創新點反哺給原生安卓系統,包括我們的F2FS、無線投屏等創新技術點都有反哺原生安卓系統,使安卓變得更好。”

未來的華為EMUI系統將是什麼樣?除了深度的技術創新,也在走向開放的生態。其一,是讓業務更豐富,AI就是其中的典型,華為從做AI的第一天起,就把AI所有能力開放給第三方,使能現在的應用更豐富更強大;其二,是讓體驗變得更流暢,方舟編譯器、Link Turbo等也在走向開放;其三,是走向全場景體驗,從手機到手機與PC的連線、手機與車的連線、手機與跑步機的連線等等。例如,在最近上海車展上,華為車聯網戰略中的HiCar就是如此。

方舟編譯器火了!華為在底層重造安卓系統,目標超越蘋果iOS

所以,方舟編譯器、EROFS超級檔案系統等顛覆性的技術創新,只是華為在軟體領域不斷突破和努力的縮影。華為正在憑藉自己的技術實力和不斷努力,重造安卓系統的體驗。

除了硬體的技術突破,軟體也在使用者體驗中扮演越來越重要的角色。這就是軟體的力量,透過持續的技術進步,持續的生態開放,讓消費者感受到,華為的產品體驗在進步,安卓系統的體驗在進步。