在之前的華為 P30 中國(guó)發(fā)布會(huì)上,華為曾表示通過(guò)方舟編譯器可實(shí)現(xiàn)系統(tǒng)操作流暢度提升 24%,系統(tǒng)響應(yīng)提升 44%,第三方應(yīng)用操作流暢度提升 60%。其可以說(shuō)是華為 P30 系列體驗(yàn)背后的最大功臣之一。
4 月 25 日下午,華為在北京舉行了“華為有技術(shù) EMUI 媒體沙龍”活動(dòng)。在這次活動(dòng)上,華為首次站在官方的角度,詳細(xì)解釋了 P30 系列在 EMUI 9.1 系統(tǒng)中所使用的方舟編譯器的應(yīng)用原理。
今天,小雷(微信:leitech)就在第一時(shí)間為大家解讀華為這項(xiàng)新技術(shù),看看方舟編譯器到底神奇在何處。
首先我們要了解一下什么是編譯器。簡(jiǎn)單來(lái)說(shuō),編譯器就是將我們能夠理解的語(yǔ)言翻譯為計(jì)算機(jī)能夠理解的以 0 和 1 構(gòu)成的語(yǔ)言。
就像我們和外國(guó)人交流一樣,語(yǔ)言不同是很難溝通的,但只要將其中一種語(yǔ)言翻譯成對(duì)方能聽(tīng)得懂的語(yǔ)言,就能交流成功了。
華為方舟編譯器最大的特點(diǎn)在于,它是業(yè)內(nèi)第一款支持多語(yǔ)言聯(lián)合優(yōu)化的編譯器,也就是說(shuō)無(wú)論是 C/C++還是 Java 都支持。
因此面對(duì)采用混合語(yǔ)言開(kāi)發(fā)的安卓應(yīng)用,方舟編譯器可以在開(kāi)發(fā)環(huán)境中編譯成統(tǒng)一的流程,通過(guò)統(tǒng)一的程序表示和優(yōu)化來(lái)執(zhí)行,效率更高。
也就是說(shuō),現(xiàn)有安卓的運(yùn)行機(jī)制就像是兩個(gè)人各自準(zhǔn)備任務(wù),最后將他們的準(zhǔn)備的結(jié)果綜合在一起執(zhí)行。而方舟編譯器則是讓這兩個(gè)人一起準(zhǔn)備,之后再一同執(zhí)行任務(wù)。
安卓系統(tǒng)本身的編譯是要通過(guò) ART 虛擬機(jī)運(yùn)行,因此系統(tǒng)資源占用較大。而方舟編譯器則是在開(kāi)發(fā)的時(shí)候就已經(jīng)完成了靜態(tài)編譯,因此不需要依賴手機(jī)本身編譯。
打個(gè)比方,以開(kāi)卷考試為例,一個(gè)學(xué)生是在考試之前就預(yù)習(xí)好了可能會(huì)考到的知識(shí)點(diǎn),做好了對(duì)應(yīng)內(nèi)容的標(biāo)記,拿到卷子就迅速動(dòng)筆;而另一個(gè)學(xué)生則是靠“臨場(chǎng)發(fā)揮”,在考場(chǎng)上臨時(shí)翻閱資料,占用大量考試時(shí)間。
同時(shí),方舟編譯器還提供了更高效的內(nèi)存回收機(jī)制。由于不需要經(jīng)過(guò)虛擬機(jī),應(yīng)用在運(yùn)行過(guò)程中不需要暫停,同時(shí)隨時(shí)回收內(nèi)存,而不是將垃圾堆在一起回收。
方舟編譯器還有一大核心功能就是對(duì)代碼進(jìn)行優(yōu)化。所謂代碼優(yōu)化,就是為程序帶來(lái)更高的性能。
舉個(gè)很簡(jiǎn)單的例子,就是同一個(gè)人考兩次試,怎么才能讓第二次比第一次考的更好,其實(shí)就是要對(duì)復(fù)習(xí)進(jìn)行優(yōu)化。
前面說(shuō)到,現(xiàn)有安卓系統(tǒng)的動(dòng)態(tài)編譯是利用 ART 虛擬機(jī)在機(jī)器上執(zhí)行,而方舟編譯器則是在開(kāi)發(fā)的時(shí)候進(jìn)行靜態(tài)編譯。
因此,前者只能采用簡(jiǎn)單的優(yōu)化算法,而后者可以突破手機(jī)機(jī)能限制,根據(jù)不同的應(yīng)用采用不同的編譯和優(yōu)化算法。
最后,華為方舟編譯器還有一大亮點(diǎn)是學(xué)習(xí)和使用成本低。由于在 APP 發(fā)布之前的打包階段就已經(jīng)集成了編譯環(huán)境,因此對(duì)于開(kāi)發(fā)者來(lái)說(shuō),整個(gè)流程其實(shí)是被簡(jiǎn)化了,使用下來(lái)更方便。
華為表示,方舟編譯器將從 2019 年開(kāi)始全面開(kāi)源。這也就是說(shuō)無(wú)論是手機(jī)廠商,還是應(yīng)用開(kāi)發(fā)者都可以使用方舟編譯器來(lái)優(yōu)化應(yīng)用的性能。
總的來(lái)說(shuō),通過(guò)華為方舟編譯器編譯應(yīng)用相比現(xiàn)有安卓的優(yōu)勢(shì)主要在于:
1、釋放機(jī)器編譯壓力,在開(kāi)發(fā)時(shí)完成應(yīng)用的靜態(tài)編譯,不經(jīng)過(guò)ART虛擬機(jī)。
2、采用不同類(lèi)型的應(yīng)用優(yōu)化方案,讓?xiě)?yīng)用運(yùn)行效果達(dá)到最優(yōu)。
3、提供更有效的內(nèi)存回收機(jī)制,提升系統(tǒng)流暢度。
4、簡(jiǎn)化編譯流程,降低開(kāi)發(fā)者學(xué)習(xí)和使用成本。
除了方舟編譯器外,華為還介紹了讓系統(tǒng)流暢運(yùn)行的另外一大關(guān)鍵點(diǎn),就是 EROFS 超級(jí)文件系統(tǒng)。
相比之前的 F2FS 文件系統(tǒng),P30 系列所采用的 EROFS 文件系統(tǒng)可以提升 20%的隨讀性能,機(jī)身可用存儲(chǔ)空間增加 2GB,并采用只讀設(shè)計(jì)。
對(duì)比另外一個(gè)只讀壓縮文件系統(tǒng) squashfs,EROFS 最明顯的優(yōu)勢(shì)是幾乎不存在無(wú)效讀取。
但由于采用更安全的 EROFS,本質(zhì)上 P30 的系統(tǒng)會(huì)比以前的華為機(jī)型更加封閉。EROFS 是一個(gè)完全只讀設(shè)計(jì)的文件系統(tǒng),其不允許用戶像之前 Ext4 文件系統(tǒng)那樣支持可讀寫(xiě),這樣設(shè)備本身更安全,但可玩性會(huì)相對(duì)更低。
根據(jù)華為官方公布的日程,方舟編譯器將于 2019 年 8 月的華為終端開(kāi)發(fā)者大會(huì)上開(kāi)源編譯框架代碼,并于 2019 年 11 月的綠盟開(kāi)發(fā)者大會(huì)上公布完整的方舟編譯器代碼。
在小雷個(gè)人看來(lái),方舟編譯器是華為在解決安卓應(yīng)用編譯方面提供的一種全新的思路,理論上看是不錯(cuò)的方案,但就目前而言還無(wú)法驗(yàn)證得出 P30 系列是否在長(zhǎng)時(shí)間使用后依然流暢的結(jié)論。
另一方面,方舟編譯器能否真正得到大規(guī)模推廣普及,目前也還很難說(shuō)。畢竟每個(gè)應(yīng)用開(kāi)發(fā)商和手機(jī)廠商都有自己的考慮。不過(guò)可以確定的是,華為和榮耀未來(lái)的新機(jī)將很有技能會(huì)繼續(xù)采用這個(gè)工具,我們不妨期待一下。
-
華為
+關(guān)注
關(guān)注
215文章
34164瀏覽量
249692 -
安卓
+關(guān)注
關(guān)注
5文章
2108瀏覽量
56747 -
方舟編譯器
+關(guān)注
關(guān)注
0文章
60瀏覽量
175
原文標(biāo)題:「熱門(mén)」華為展示方舟編譯器,要讓安卓徹底改頭換面?
文章出處:【微信號(hào):zealertech,微信公眾號(hào):ZEALER】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論