華為開源平台已上線,已有45款應用

2019-09-02     炫美視覺

2019年8月31日,華為開源平台網站(HUAWEI OpenSource)華為方舟編譯器開源官網正式上線,並首次開放了框架源碼。華為開源鴻蒙OS系統和方舟編譯器兩個項目。

華為開源項目

華為鴻蒙系統(HarmonyOS)是基於微內核的全場景分布式OS,可按需擴展,實現更廣泛的系統安全,主要用於物聯網,特點是低時延,甚至可到毫秒級乃至亞毫秒級,由華為技術有限公司開發。

方舟編譯器是為支持多種程式語言、多種晶片平台的聯合編譯、運行而設計的統一編程平台,包含編譯器、工具鏈、運行時等關鍵部件。方舟編譯器還在持續演進中,陸續將上述能力實現和開源。

方舟編譯器的4大優勢:

1、多語言聯合將同一應用中的不同語言代碼聯合編譯、聯合優化,消除語言間的性能「鴻溝」,降低開發者的優化成本

2、軟硬體協同編譯器與晶片實現軟硬體協同優化,充分發揮硬體能效,應用體驗更佳

3、輕量運行時通過編譯器的語言實現能力和優化能力增強,應用運行時的開銷更小

4、多平台支持支持面向多樣化的終端設備平台進行編譯和運行,根據設備特徵提供便捷的開發與部署策略,提高開發效率

45家合作夥伴:

此外,從官網給出的介紹看,目前已有至少45款第三方應用支持華為方舟編譯器,都是大家耳熟能詳的超大用戶量APP。

具體開源計劃:

2020年:開始對Java編譯器工具鏈開源,支持Java程序編譯。

2021年:開始對JavaScript編譯器工具鏈開源,可用於JS程序的編譯。

方舟編譯器開源路標(綠色部分是本期開源內容,藍色部分待開源)

十年方舟,再造安卓

可能很多人不知道,華為為方舟編譯器準備了十年。

2009年,華為啟動5G基礎技術研究的同時,開始創建編譯組,第一批海內外研究人員加入。

2013年,華為推出面向基站領域的自研編譯器HCC,並正式提出編譯器框架構想。

2014年,眾多海內外專家加入華為,方舟項目正式啟動。

2016年,成立編譯器與程式語言實驗室。

2019年,華為方舟編譯器正式面世!

實際上,方舟已經不是傳統意義上從高級語言到機器碼的「萬能翻譯」,更是一個編譯運行系統。方舟編譯器這一顛覆式的技術堪稱安卓系統性能革命,將帶來巨大的性能提升,官方稱操作流暢度提升可高達60%。

一方面,方舟編譯器首次在Java領域將虛擬機幹掉了,也是軟體史上首次將Java/C/C++等混合代碼一次編譯成機器碼直接在手機上運行,徹底告別Java的JNI額外開銷,也徹底告別了虛擬機GC內存回收帶來的應用進程掉線,使操作流暢度大幅提升。如果說目前最新的安卓系統是和諧號動車,那麼經方舟編譯的安卓系統便是高鐵,是「復興號」。

華為手機直接通過方舟編譯器替換了Android system-server的所有後台服務,這一項就已經足夠讓華為EMUI比其他安卓系統更快一步。根據華為官方測試,方舟編譯器提升手機系統操作流暢度高達24%系統響應性能提升44%。入手P30系列的用戶,應該已經體驗到了。

另一方面,方舟編譯器用空間換性能,直接將編譯器的代碼優化搬到了開發者環境,不再被手機端的硬體資源所限制,為代碼優化提供了無限可能。

安卓卡頓,再見!

安卓的四大命門:

第一個命門:Java的「虛擬機」

第二個命門:Java的「原罪」——額外的JNI開銷

第三個命門:代碼優化空間有限

第四個命門:Java現有內存回收機制易造成間歇性卡頓

方舟的一個使命,就是解決安卓虛擬機GC內存回收帶來的「Stop World」。目前安卓手機內存資源不夠用的時候,GC直接叫停所有應用,所以偶爾會遭遇莫名卡頓。

方舟編譯器採用了引用計數法(RC,Reference Counting)來進行內存的實時回收,並且配合使用了專門的消除環算法(消除對象互相引用帶來的無法回收問題),來避免GC集中式回收帶來的系統卡頓。相比GC,方舟的內存回收是實時的而非集中式的,且不需要暫停應用進程,這樣便大大消除了卡頓。

方舟編譯器整體框架

為了從機制避免手機內存被環引用「吃掉」,方舟編譯器引入annotation的「告警」標示,對基礎類的環進行標註。當然,Java程式設計師也可以對業務代碼中的環進行標註。經過豐富的實踐驗證,方舟這種機制可減少大部分程序中環的出現。另外一方面,方舟編譯器在運行狀態下引入了高效的環回收機制,允許有選擇的智能回收某個APP的內存占用,這對傳統的環回收算法是一個非常棒的改進。

解決安卓的四大命門,出於安卓,勝於安卓,超越iOS,並且全面兼容安卓,這就是華為方舟編譯器的使命!

文章來源: https://twgreatdaily.com/6DAv8WwBJleJMoPM8Upm.html