華為方舟編譯器解讀:這就是P30流暢至極的秘密武器?
在之前的華為P30中國發布會上,華為曾表示通過方舟編譯器可實現系統操作流暢度提升24%,系統響應提升44%,第三方應用操作流暢度提升60%。其可以說是華為P30系列體驗背後的最大功臣。
4月25日下午,華為在北京舉行了「華為有技術 EMUI媒體沙龍」活動。在這次活動上,華為首次站在官方的角度,詳細解釋了P30系列在EMUI 9.1系統中所使用的方舟編譯器的應用原理。
首先我們要了解一下什麼是編譯器。簡單來說,編譯器就是將我們能夠理解的語言翻譯為計算機能夠理解的以0和1構成的語言。
就像我們和外國人交流一樣,語言不同是很難溝通的,但只要將其中一種語言翻譯成對方能聽得懂的語言,就能交流成功了。
華為方舟編譯器最大的特點在於,它是業內第一款支持多語言聯合優化的編譯器,也就是說無論是C/C 還是Java都支持。
因此面對採用混合語言開發的安卓應用,方舟編譯器可以在開發環境中編譯成統一的流程,通過統一的程序表示和優化來執行,效率更高。
也就是說,現有安卓的運行機制就像是兩個人各自準備任務,最後將他們的準備的結果綜合在一起執行。而方舟編譯器則是讓這兩個人一起準備,之後再一同執行任務。
安卓系統本身的編譯是要通過ART虛擬機運行,因此系統資源佔用較大。而方舟編譯器則是在開發的時候就已經完成了靜態編譯,因此不需要依賴手機本身編譯。
打個比方,以開卷考試為例,一個學生是在考試之前就預習好了可能會考到的知識點,做好了對應內容的標記,拿到卷子就迅速動筆;而另一個學生則是靠「臨場發揮」,在考場上臨時翻閱資料,佔用大量考試時間。
同時,方舟編譯器還提供了更高效的內存回收機制。由於不需要經過虛擬機,應用在運行過程中不需要暫停,同時隨時回收內存,而不是將垃圾堆在一起回收。
方舟編譯器還有一大核心功能就是對代碼進行優化。所謂代碼優化,就是為程序帶來更高的性能。
舉個很簡單的例子,就是同一個人考兩次試,怎麼才能讓第二次比第一次考的更好,其實就是要對複習進行優化。
前面說到,現有安卓系統的動態編譯是利用ART虛擬機在機器上執行,而方舟編譯器則是在開發的時候進行靜態編譯。
因此,前者只能採用簡單的優化演算法,而後者可以突破手機機能限制,根據不同的應用採用不同的編譯和優化演算法。
最後,華為方舟編譯器還有一大亮點是學習和使用成本低。由於在APP發布之前的打包階段就已經集成了編譯環境,因此對於開發者來說,整個流程其實是被簡化了,使用下來更方便。
華為表示,方舟編譯器將從2019年開始全面開源。這也就是說無論是手機廠商,還是應用開發者都可以使用方舟編譯器來優化應用的性能。
總的來說,通過華為方舟編譯器編譯應用相比現有安卓的優勢主要在於:
1、釋放機器編譯壓力,在開發時完成應用的靜態編譯,不經過ART虛擬機。
2、採用不同類型的應用優化方案,讓應用運行效果達到最優。
3、提供更有效的內存回收機制,提升系統流暢度。
4、簡化編譯流程,降低開發者學習和使用成本。
除了方舟編譯器外,華為還介紹了讓系統流暢運行的另外一大關鍵點,就是EROFS超級文件系統。
相比之前的F2FS文件系統,P30系列所採用的EROFS文件系統可以提升20%的隨讀性能,機身可用存儲空間增加2GB,並採用只讀設計。
對比另外一個只讀壓縮文件系統squashfs,EROFS最明顯的優勢是幾乎不存在無效讀取。
但由於採用更安全的EROFS,本質上P30的系統會比以前的華為機型更加封閉。EROFS是一個完全只讀設計的文件系統,其不允許用戶像之前Ext4文件系統那樣支持可讀寫,這樣設備本身更安全,但可玩性會相對更低。
根據華為官方公布的日程,方舟編譯器將於2019年8月的華為終端開發者大會上開源編譯框架代碼,並於2019年11月的綠盟開發者大會上公布完整的方舟編譯器代碼。
在小雷個人看來,方舟編譯器是華為在解決安卓應用編譯方面提供的一種全新的思路,理論上看是不錯的方案,但就目前而言還無法驗證得出P30系列是否在長時間使用後依然流暢的結論。
另一方面,方舟編譯器能否真正得到大規模推廣普及,目前也還很難說。畢竟每個應用開發商和手機廠商都有自己的考慮。不過可以確定的是,華為和榮耀未來的新機將很有技能會繼續採用這個工具,我們不妨期待一下。
※要理性不要「沸騰」,我們該如何正確地支持國產手機?
※官宣!魅族扛把子旗艦4月23日發布,對稱式設計一股清流
TAG:互聯網速報 |