-
華為王成錄:解密方舟編譯器和EMUI未來四大演進(jìn)方向!
關(guān)鍵字: 方舟編譯器華為今年8月,華為方舟編譯框架代碼將開源,11月完整方舟編譯器代碼開源。
據(jù)“智東西”微信公眾號(zhidxcom)4月25日消息,兩周前華為年度第一款旗艦機(jī)P30,同時宣布將操作系統(tǒng)升級為EMUI9.1。 在發(fā)布會上,華為推出了方舟編譯器和超級文件系統(tǒng)EROFS兩大創(chuàng)新亮點(diǎn)。
由于發(fā)布會時間限制,當(dāng)時華為僅僅用兩頁P(yáng)PT粗略地介紹了這兩項(xiàng)技術(shù)作用。 據(jù)華為方面表示,自發(fā)布會后,華為軟件OpenLab團(tuán)隊(duì)的電話幾乎要被打爆了,很多開發(fā)者都想要了解方舟編譯器更多的信息。
▲華為CBG軟件部總裁 王成錄
今天,智東西與少數(shù)媒體參與了華為EMUI軟件溝通會,會上華為CBG軟件部總裁王成錄詳細(xì)介紹了方舟編譯器和超級文件系統(tǒng)EROFS兩項(xiàng)技術(shù)的原理以及研發(fā)背后的細(xì)節(jié),以及EMUI未來的主攻方向。
什么是方舟編譯器?
分享會一開始,王成錄博士先介紹了EMUI演進(jìn)過程以及近幾年來,華為在系統(tǒng)軟件上針對用戶使用中的痛點(diǎn)問題進(jìn)行的有針對性的優(yōu)化。 比如EMUI5.0主要解決安卓系統(tǒng)卡頓問題,EMUI8.2上線了GPU Turbo主攻游戲性能受限問題,EMUI9.0上線了Link Turbo主攻網(wǎng)絡(luò)覆蓋不均問題,EMUI9.1則上線了方舟編譯器和超級文件系統(tǒng)EROFS,針對安卓流暢度不足問題。
當(dāng)前安卓平臺的絕大多數(shù)應(yīng)用是使用Java寫的,但在底層,最終真正能讓計(jì)算機(jī)“聽懂”并執(zhí)行的其實(shí)是機(jī)器語言,也就是由0和1組成的二進(jìn)制代碼。 所以,這中間必須存在著由高級語言到機(jī)器語言的轉(zhuǎn)化。
一般來說有兩種辦法:
(1)引入一個中間層,其工作的方式是,理解一句Java語句就將其翻譯為機(jī)器碼,讓硬件執(zhí)行一下,稱之為解釋執(zhí)行。 這種方式對代碼不加篩選,執(zhí)行效率非常低。
(2)直接把高級語言翻譯成機(jī)器語言。 這又有兩種方式: 一是在程序運(yùn)行之前,把高級語言編譯為機(jī)器語言,稱之為 AOT(Ahead of time)編譯; 二是,在程序運(yùn)行后,實(shí)時地把高級語言編譯為機(jī)器語言并執(zhí)行,稱之為 JIT(Just in time) 編譯。
在安卓5.0之前,安卓采用的是解釋執(zhí)行 + JIT 的方式執(zhí)行高級語言代碼,屬于邊解釋邊執(zhí)行模式,但效率非常低。 隨后安卓版本不斷迭代,在安卓6.0 階段推出了虛擬機(jī) ART。
目前安卓采用的就是解釋執(zhí)行 + JIT + AOT 的綜合模式。
那么,編譯器又是什么呢? 編譯器就是將計(jì)算機(jī)高級編程語言轉(zhuǎn)化為機(jī)器可執(zhí)行的機(jī)器語言的工具,也就是直接轉(zhuǎn)化為二進(jìn)制代碼。 可以說是一步到位的編譯。
用方舟編譯器做出來的APK,下載到手機(jī)上直接就是機(jī)器語言,也就是二進(jìn)制代碼,機(jī)器直接就可以運(yùn)行,不需要再做編譯了,這是方舟編譯器最本質(zhì)的技術(shù)突破。
編譯器的研發(fā)難不難? 編譯器開發(fā)是需要長期大量研發(fā)積累,王成錄博士也坦言需要“板凳要坐十年冷”。 同時,開發(fā)編譯器需要研發(fā)人員既精通高級語言,對各種框架等非常熟悉,又要對機(jī)器語言了如指掌,對研究人員要求非常高。 谷歌生態(tài)建立了這么久,其規(guī)模非常龐大,其上的框架和、應(yīng)用等非常多,想要重新做一個適配谷歌生態(tài)的編譯器,工作量可想而知,是非常巨大的。
華為是如何作出方舟編譯器呢? 據(jù)王博士介紹,華為在編譯器研發(fā)上的積累,可以追溯到2009年,華為海思研發(fā)起步時,當(dāng)時吸引了第一批海內(nèi)外研究人員加入,創(chuàng)建了編譯組。 2013年,華為自研并推出了用于基站的編譯器HCC,這也是華為編譯器框架構(gòu)想的正式提出,也是方舟編譯器的前身。
2014年,F(xiàn)red Chow( 周志德)加入華為并擔(dān)任華為編譯器技術(shù)首席科學(xué)家,建立了方舟編譯器的主架構(gòu)。 2015年華為推出自研編程語言CM,2016年成立編譯器與編程語言實(shí)驗(yàn)室,2019年華為正式推出方舟編譯器。 前前后后共計(jì)十年時間,經(jīng)過了幾百位研究人員的努力,投入的資金也有幾億美元了。
王成錄博士表示,有了方舟編譯器優(yōu)化的安卓系統(tǒng)在DNA上與蘋果iOS系統(tǒng)接近了。 華為下一步要做的工作就是推動生態(tài)建立,不斷將系統(tǒng)進(jìn)行優(yōu)化,讓用戶用上更純凈的安卓軟件。
方舟編譯器的四大技術(shù)亮點(diǎn):
1、是一種多語言聯(lián)合優(yōu)化編譯器,消除了跨語言調(diào)用的開銷
據(jù)王成錄博士介紹,當(dāng)前Top級的應(yīng)用95%以上都采用混合語言模式,涉及多種開發(fā)語言。 具體來說是程序的邏輯部分采用Java語言編寫,但為了增強(qiáng)安全性、可靠性、兼容性等能力,應(yīng)用開發(fā)者可能會用C語言寫庫,供Java調(diào)用。 Java和C語言之間調(diào)用,是一定要通過接口去使用,這就會形成額外的性能開銷,而且相比于不需要調(diào)用的情況開銷很大。
而方舟編譯器則可以讓不同語言代碼在程序開發(fā)環(huán)境中環(huán)境中編譯成一套語言統(tǒng)一的可執(zhí)行文件,在硬件的運(yùn)行環(huán)境高效執(zhí)行。 也就是說,方舟編譯器中吸納了現(xiàn)在安卓生態(tài)中的各種主流框架和庫,對不同語言做了統(tǒng)一的程序優(yōu)化,直接編譯成機(jī)器指令。
2、程序運(yùn)行時無需依賴虛擬機(jī),減少資源占用,并且建立了高效的內(nèi)存回收機(jī)制
Java語言有非常多的優(yōu)勢,包括跨平臺、分布式,安全性高等。 Java語言在設(shè)計(jì)之初,有一個Java語言開發(fā)包,其中有一個非常重要的東西,就是虛擬機(jī)。 虛擬機(jī)的作用是,無論使用什么樣的硬件,都可以將其抽象成Java的運(yùn)行環(huán)境,因此可以實(shí)現(xiàn)跨平臺,無論是X86、ARM架構(gòu),還是CPU的機(jī)器都沒問題。 虛擬機(jī)的出現(xiàn)則帶來了一個問題,只要把Java語言開發(fā)包裝上,虛擬機(jī)就一定會分配好,占用額外的系統(tǒng)資源。
那么ART虛擬機(jī)的作用是什么呢? 就是運(yùn)行之前先把編譯準(zhǔn)備好了,是一種靜態(tài)編譯。 通過引入了JIT編譯和AOT編譯能解決一部分效率問題,但是對于Java動態(tài)特性的部分仍做不到直接編譯,還是要解釋執(zhí)行。 Java動態(tài)特性是為了降低開發(fā)難度,不需要開發(fā)者把所有的程序都寫好,只要能夠運(yùn)行時實(shí)現(xiàn)調(diào)用就可以了。 這部分往往只能在運(yùn)行時進(jìn)行處理。
方舟編譯器最大的突破就在這里,把動態(tài)的部分全部變?yōu)殪o態(tài)編譯,其核心是一定要對Java語言動態(tài)特性非常深入理解。 “就像一個優(yōu)秀的翻譯官一定對漢語言文學(xué)理解的非常到位,然后再對英語理解非常到位。 ”Java是非常龐大的,需要對安卓現(xiàn)有的應(yīng)用,可能會用到哪些庫,這些庫之間怎么用理解,需要大量的分析運(yùn)行狀態(tài),才能夠?qū)⑦@些動態(tài)特性完成提前的編譯。 同時由于方舟編譯器統(tǒng)一將程序編譯為機(jī)器語言,所以也是跨硬件平臺的。
早期C/C++需要開發(fā)者自己管理程序?qū)ο到y(tǒng)內(nèi)存的使用和釋放,影響開發(fā)效率。 Java的虛擬機(jī)模式提供了內(nèi)存GC(垃圾回收)機(jī)制,在內(nèi)存進(jìn)行全局回收時,所有部分都要停下來,等待回收完成,這是產(chǎn)生隨機(jī)卡頓的重要原因。
方舟編譯器則是在編譯時,為程序配備及時回收的內(nèi)存處理機(jī)制。 在程序運(yùn)行的過程中都在實(shí)施處理,這是方舟編譯器又一個非常重要的技術(shù)突破。
3、可針對不同應(yīng)用靈活編譯優(yōu)化,翻譯出性能更佳的機(jī)器指令
一個翻譯器做得好不好,重要的衡量標(biāo)準(zhǔn)是能不能給程序帶來性能提升。 “編譯器和翻譯人類語言是一樣的,翻譯出來不太難,但是要翻譯的又快又好就太難了。 ”
所以,當(dāng)方舟編譯器整套邏輯通了之后,還需要做大量的優(yōu)化和調(diào)整。 一方面需要對Java語言的了解再深入再細(xì)致再重建; 另一方面對機(jī)器指令順序結(jié)構(gòu)理解要更清楚。 這兩個匹配的方法越準(zhǔn)確,編譯器效率越高。 王成錄博士表示,“一個好的編譯器,開發(fā)者一行代碼都不需要修改,性能能提升10%到20%”。
現(xiàn)有的安卓編譯,大部分代碼在虛擬機(jī)環(huán)境運(yùn)行,其創(chuàng)建遵循同一套“模板”,所以難以作深度的優(yōu)化。
方舟編譯器可針對不同應(yīng)用靈活編譯優(yōu)化,每個應(yīng)用編譯優(yōu)化方案由開發(fā)者自己來定,分別形成不同應(yīng)用優(yōu)化后的機(jī)器碼。
王成錄博士表示,方舟編譯器從立項(xiàng)之初最理想的目標(biāo)就是不需要開發(fā)者更改業(yè)務(wù)代碼,大家只需要通過華為的方舟編譯器做重新編譯就足夠了。 現(xiàn)在可能還需要開發(fā)者作一些對接,但很快隨著一些應(yīng)用進(jìn)入,這個目標(biāo)很快就能實(shí)現(xiàn)。
4、開發(fā)者學(xué)習(xí)和使用成本低,打包時即編譯
方舟編譯器的又一亮點(diǎn)是,在應(yīng)用開發(fā)構(gòu)建的階段為開發(fā)者提供快速的集成編譯環(huán)境。 而現(xiàn)行安卓系統(tǒng)則是在用戶將應(yīng)用下載后,在終端上實(shí)現(xiàn)編譯的。
據(jù)王成錄博士介紹,在同一硬件平臺上,方舟編譯器讓系統(tǒng)操作流暢度提升了24%,系統(tǒng)響應(yīng)速度提升44%,第三方應(yīng)用操作流暢度提升60%。 在內(nèi)存回收機(jī)制上方舟編譯器已經(jīng)趕超了蘋果iOS系統(tǒng)。
方舟編譯器在今年4月隨著華為P30系列發(fā)布并宣布開源,華為接下已經(jīng)為方舟編譯器制定好了上市計(jì)劃。 今年8月,在華為終端開發(fā)者大會上,華為將開源方舟編譯框架代碼,供開發(fā)者研究參考,11月的綠盟開發(fā)者大會上,華為將完整方舟編譯器代碼開源,讓開發(fā)者可編譯使用。
什么是超級文件系統(tǒng)EROFS?
隨著存儲介質(zhì)的進(jìn)步,文件系統(tǒng)也在被驅(qū)動著演進(jìn)。 文件系統(tǒng)對磁盤讀寫效率有著重要影響。 此前,華為曾推出過F2FS,2016年就在華為P9上應(yīng)用了,而這個是面向用戶分區(qū)的。 今天要提的超級文件系統(tǒng)EROFS,則是針對系統(tǒng)分區(qū)的。
安卓系統(tǒng)采用的模式是EXT4,文件塊定長輸入,變長輸出,導(dǎo)致同一個文件塊的內(nèi)容可能會出現(xiàn)在不同的磁盤塊中,讀取時造成了浪費(fèi)。
超級文件系統(tǒng)EROFS的特點(diǎn)是: 1、隨機(jī)讀寫的性能提升了20%; 2、采用先進(jìn)的壓縮算法,減少了2GB; 3、采用只讀模式,讓系統(tǒng)更安全。 目前,EROFS文件系統(tǒng)已經(jīng)開源,并已經(jīng)合入Linux內(nèi)核主線,在4.19版本發(fā)布。
據(jù)王成錄博士介紹,這一系統(tǒng)是華為研發(fā)人員一行行寫出來,100%原創(chuàng)。 其中,王成錄博士特別提到了壓縮算法,也是華為申請了專利的一項(xiàng)技術(shù)。
而EROFS文件系統(tǒng)的壓縮算法采用的則是文件塊變長輸入,磁盤塊定長輸出。 也就是說,將不同長度的文件塊壓縮成為統(tǒng)一大小的磁盤塊,這樣做的好處是不存在無效的讀取。
這樣做的好處是,隨機(jī)讀性能平均提升20%。 升級包大小下降約5%-10%,升級時間縮短了約20%。
EMUI未來演進(jìn)的四大方向
在分享會上,智東西問到王博士,未來EMUI的優(yōu)化方向有哪些時,王博士回答說主要集中在四個方面:
第一,基礎(chǔ)的性能仍然會持續(xù)投資 ,隨著硬件的變化,軟件的變化,上面應(yīng)用的變化,對系統(tǒng)資源的應(yīng)用永遠(yuǎn)沒有夠的那一天,所以這個投資還會持續(xù)。
第二,體驗(yàn) ,雖然很多消費(fèi)者對于華為UI吐槽非常多,但確實(shí)眾口難調(diào)。 王博士認(rèn)為UI的背后一定有科學(xué)依據(jù)。 “我們現(xiàn)在找到的方向就是人因,我們在使用一個設(shè)備的時候一定要考慮設(shè)備本身的因素,環(huán)境因素和人的因素,這三個因素都考慮全了,在給消費(fèi)者不同場景下恰當(dāng)?shù)姆答仯@才是最好的體驗(yàn)。 ”
什么是好的體驗(yàn)? 就是手的操作和眼睛看到的,跟大腦期望是協(xié)調(diào)的這就是好的操作。 現(xiàn)在很多的體驗(yàn)設(shè)計(jì)是缺少建模的,一定要根據(jù)不同的人群年齡段,性別去構(gòu)建人的模型,看多大的字體更合適,多大的對比度,對這一類的人群是合適的,所以這種模型會構(gòu)建的越來越完善,變成系統(tǒng)里面UI的算法,在不同場景下就會不一樣,這一塊華為努力在做。
第三,創(chuàng)新, 這個創(chuàng)新指的是,隨著應(yīng)用的不一樣,場景的不同,沒有必要讓所有的應(yīng)用嚴(yán)格的按照這個軟件的過程,一步一步都走完。 打個比方,有個應(yīng)用運(yùn)行了無數(shù)次了,已經(jīng)證明是一個非常高質(zhì)量、安全的應(yīng)用,就沒有必要每次都做那么復(fù)雜的處理。
第四,中國在軟件工程領(lǐng)域非常缺人。 軟件開發(fā)人員經(jīng)驗(yàn)的積累,能不能沉淀為工具和平臺很關(guān)鍵,在中國沒有出現(xiàn)過一個非常優(yōu)秀的軟件工具平臺。
在會上,王博士還特意提到了生態(tài)構(gòu)建的重要性。 目前,在終端生態(tài)構(gòu)建上,華為已建立三大開發(fā)者生態(tài): 以HiAI平臺建立AI開發(fā)者生態(tài); 以Link Turbo和方舟編譯器建立應(yīng)用生態(tài); 以HiLink和 HiCar建立連接生態(tài)。
此外,王成錄介紹說,今年Link Turbo將有突破,升級到2.0版本,將帶來對更多華為終端與更多應(yīng)用的支持,讓更多用戶能享受極速流暢的網(wǎng)絡(luò)體驗(yàn)。
結(jié)語: 華為EMUI正在從系統(tǒng)底層進(jìn)行優(yōu)化
無論是方舟編譯器還是超級文件系統(tǒng)EROFS,都是華為在系統(tǒng)底層進(jìn)行優(yōu)化的重要一步。 無論是方舟編譯器還是超級文件系統(tǒng)EROFS,都是華為在系統(tǒng)底層進(jìn)行優(yōu)化的重要一步。 當(dāng)然,安卓開發(fā)生態(tài)建立多年,其優(yōu)勢在于開源和自由,而其劣勢則也正是由此帶來的無序性發(fā)展,導(dǎo)致了終端運(yùn)行效率低下。 而作為頭部的智能手機(jī)廠商,華為推出這個內(nèi)容的初心是想進(jìn)一步提升安卓系統(tǒng)的流暢性,也是出于自身發(fā)展和產(chǎn)品性能和體驗(yàn)提升的考慮。
不過,也正如王成錄博士所說的那樣,華為做方舟編譯器是想要幫安卓陣營解決實(shí)際問題的,僅僅華為一家之力是不夠的,還需要終端廠商、開發(fā)者等一起努力。
標(biāo)簽 華為- 原標(biāo)題:華為王成錄:解密方舟編譯器和EMUI未來四大演進(jìn)方向!
- 責(zé)任編輯:連政
- 最后更新: 2019-04-28 09:30:53
-
榮耀趙明:誰的行為low,誰在碰瓷,消費(fèi)者都看得清清楚楚
2019-04-27 23:32 手機(jī) -
日本"隼鳥2號"在小行星擊出隕石坑,系全球首次
2019-04-27 16:54 日本 -
華龍一號全球首堆提前50天啟動冷試
2019-04-27 15:58 -
荷蘭電信企業(yè)采用華為更新移動網(wǎng)
2019-04-27 15:35 -
消費(fèi)需求占全球44%,中國大陸成晶圓建廠熱地
2019-04-27 11:27 -
客服稱P30 Pro防水必須堵上機(jī)身接口 華為高管回應(yīng)
2019-04-27 10:26 -
華為徐直軍談5G:讓行業(yè)生產(chǎn)效率提升10倍
2019-04-27 09:38 華為 -
全球第四位,華為過去五年研發(fā)預(yù)算增長149%
2019-04-27 09:11 華為 -
收購芯片業(yè)務(wù)?蘋果和英特爾進(jìn)行了“秘密談判”
2019-04-27 08:10 大公司 -
蘋果在香港等地召回插頭適配器:用戶或遭電擊
2019-04-26 22:00 -
倪光南:全國產(chǎn)固態(tài)硬盤主控將極大提高網(wǎng)絡(luò)安全性
2019-04-26 17:39 -
真的嗎?華為要出千元升降攝像頭手機(jī)?
2019-04-26 17:28 華為 -
英特爾仍繼續(xù)為新款iPhone供應(yīng)4G基帶芯片
2019-04-26 17:03 -
日本可以失去華為嗎?日本各界怎么看
2019-04-26 11:35 大公司 -
新機(jī)配27W充電器卻只支持18W 聯(lián)想:多出的是愛
2019-04-26 11:12 大公司 -
程序員熱議的華為方舟編譯器是啥?一圖看懂
2019-04-26 10:19 TMT觀察 -
百度瀏覽器PC版部分功能停止服務(wù)
2019-04-26 10:02 -
“5G首戰(zhàn)告負(fù)”,諾基亞鴨梨山大
2019-04-25 19:12 5G -
諾基亞CEO駁斥5G霸權(quán)爭奪戰(zhàn):共贏最重要
2019-04-25 15:34 5G -
芯片價格低迷、銷售疲軟 SK海力士Q1利潤大跌69%
2019-04-25 14:02
相關(guān)推薦 -
全國政協(xié)十四屆三次會議閉幕 評論 0全國政協(xié)十四屆三次會議閉幕會 評論 2特魯多迎來“最后一天”,特朗普成了“意外救星” 評論 47“特朗普政府已通知盟友,將停止參加歐洲未來軍演” 評論 103最新聞 Hot
-
歐洲多國驚覺:被美國掌握一個“致命開關(guān)”
-
對歐洲“感到憤怒”,“特朗普想把駐德美軍全撤走”
-
萬斯:親烏抗議者當(dāng)街騷擾,嚇到3歲女兒
-
紐約發(fā)生多起山火,紐約州進(jìn)入緊急狀態(tài)
-
特朗普威脅“不談就打”,伊朗最高領(lǐng)袖表態(tài)
-
“烏克蘭半瞎了,歐洲急了”
-
尹錫悅獲釋第二天,首爾10萬民眾集會游行
-
美媒哀嘆:所謂的“西方”,已蕩然無存
-
“1500億歐元貸款計(jì)劃,法德又吵起來了”
-
“看看中國高鐵再看美鐵,尬死了”
-
特朗普怒砍哥大4億美元:打擊“反猶”不給力啊
-
“特朗普想重新劃定美加邊界”
-
“魯比奧與馬斯克干架了”,特朗普忙滅火
-
“因?yàn)槲沂敲绹?,在臺積電被罵又懶又蠢”,下月開庭
-
“普京愿意,但有條件”
-
“最大受害者是波音,中國要么用國產(chǎn),要么買空客”
-