鴻蒙比安卓快60%!只因沒了“中間商”

上次講了UI設計與體驗,這次給強迫症們增加一趟擺渡車

(講講鴻蒙系統的底層邏輯與前沿魅力)

鴻蒙比安卓快60%!只因沒了“中間商”

聘請了世界頂級的編譯專家才攻克了編譯器技術,在EMUI 9。1上實現了機器程式碼的翻譯

✎HarmonyOS發展歷程

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

2012年 諾亞方舟實驗室成立,規劃自有作業系統

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

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

2017年 鴻蒙核心1。0完成

2018年 鴻蒙核心2。0完成

2019年4月 EROFS超級檔案系統釋出

2019年8月9日 鴻蒙OS1。0釋出,方舟編譯器上線

2020年12月 鴻蒙OS2。0手機開發者BETA版釋出

2021年6月2日 “萬物皆鴻蒙”

“出於安卓,勝於安卓,超越iOS,並且全面相容安卓”,是方舟編譯器的使命。

【介紹】⊙方舟編譯器2。0

方舟編譯器1。0主要提升了華為手機的APP執行速度流暢度24%↑響應效能44%↑操作流暢度60%↑

而方舟編譯器2。0,主要是優化了多語言多裝置之間的編譯效率。鴻蒙OS2。0在整體的體驗上,在系統方面,鴻蒙OS2。0分散式軟匯流排、分散式資料管理、分散式等三方面升級。

→_→方舟編譯器改變了系統及應用的編譯和執行機制,直接將高階語言編譯成機器碼,讓手機能直接聽懂“高階語言”,消除了虛擬機器動態編譯的額外開銷,提升了手機執行效率。

同時,方舟編譯器還能夠理解程式特徵、使用適合的指令來執行程式,因此能夠極大程度地發揮出晶片的能力。

目前,方舟編譯器聚焦在 Java 程式碼效能上,未來,方舟編譯器將覆蓋多種程式語言(包括 C/C++、JS 等),多種晶片架構(包括CPU、GPU、IPU等),覆蓋更廣的業務場景。

⊙_⊙ ⊙-⊙ +++正文+++ ⊙_⊙ ⊙-⊙

【展望替代】⊙左殺虛擬機器,右殺JNI開源,使用者從此可以告別間歇性卡頓。

實現“混合語言的統一中間表示和完全靜態編譯”。

鴻蒙比安卓快60%!只因沒了“中間商”

首次在Java領域將虛擬機器幹掉

鴻蒙比安卓快60%!只因沒了“中間商”

Java/C/C++等混合程式碼,可以一次編譯成機器碼,直接在手機上執行。

徹底告別Java的JNI額外開銷。

餘承東:方舟編譯器能實現Android效能革命。

鴻蒙比安卓快60%!只因沒了“中間商”

2019年8月9日,鴻蒙OS正式揭開神秘的面紗,堪比颱風“利奇馬”的殺傷力,所到之處無不震驚。今天說說能讓鴻蒙比安卓快60%的秘密——方舟編譯器。

鴻蒙比安卓快60%!只因沒了“中間商”

舉個例子,軟體像電腦系統一樣,編譯器就是最佳化配置,讓軟體更好的為手機服務。

鴻蒙比安卓快60%!只因沒了“中間商”

安卓1。0到Android Q,從2018年至今已有十三年

編譯器都是藉助“中間商”來實現的。

鴻蒙比安卓快60%!只因沒了“中間商”

在安卓1。0的時候,用的是Dalvik的虛擬機器,裡面集成了一個直譯器,每次執行APP時就會喚醒,給硬體下達APP的指令。

鴻蒙比安卓快60%!只因沒了“中間商”

安卓2。2版本引入JIT機制,不用每次都翻譯,只有使用不常用的功能時,才會喚醒翻譯。

(每次將頻繁APP程式碼轉成二進位制,不用逐句翻譯)

由於每次啟動APP都要翻譯,Dalvik虛擬機器比較落後啦~

安卓5。0以ART代替Dalvik,以AOT取代JIT。

無需每次開啟APP重新翻譯一遍,但二進位制程式碼很佔用手機記憶體。

鴻蒙比安卓快60%!只因沒了“中間商”

鴻蒙比安卓快60%!只因沒了“中間商”

Android 9還針對Android常見核心的LLVM編譯添加了CFI核心支援。加強了對使用者隱私的保護。系統禁止這那的

鴻蒙比安卓快60%!只因沒了“中間商”

Android 1。0~9。0仍需要虛擬機器VM實現解釋執行

反觀iOS系統,無VM下來用Clang/LLVM來編譯出機器碼,就沒有安卓還要一箇中間層那麼麻煩,觀感流暢許多!

VM(虛擬機器)是Android系統一個繞不過去的坎。

由於其包含翻譯器和編譯器,其目的就是把 Java 高階語言轉換成機器能懂的語言,也因為這一轉換過程導致了Android的卡頓現象。

⊙_⊙ ⊙-⊙ +++憑什麼?+++ ⊙_⊙ ⊙-⊙

由於大部分的APP用Java/C++等多種語言混合開發,為了統一,還要有互通介面——JNI(Java Native Interface)。

鴻蒙比安卓快60%!只因沒了“中間商”

互通介面——JNI(Java Native Interface)

鴻蒙比安卓快60%!只因沒了“中間商”

故下達指令、執行中間要經過【虛擬機器】-【編譯機】-【互通介面】,這樣能不卡嗎?

方舟編譯器是一種靜態的編譯方式,可將語言裡的動態特性直接翻譯成機器碼,按照現在的安卓系統,執行一個程式要啟動3個“中間商”!!!

方舟編譯器可將手機程式以全速執行,沒有“中間商賺差價”,豈不美哉!!~

鴻蒙比安卓快60%!只因沒了“中間商”

方舟編譯器是完全替代了語言虛擬機器的靜態編譯器,從此不再需要直譯器。

鴻蒙比安卓快60%!只因沒了“中間商”

鴻蒙比安卓快60%!只因沒了“中間商”

吊打安卓5。0方案,速度不止一秒

鴻蒙比安卓快60%!只因沒了“中間商”

開發者的樂園˶⍤⃝˶꒳ᵒ꒳ᵎᵎᵎ

【展望未來】方舟編譯器改變了系統及應用的編譯和執行機制,直接將高階語言編譯成機器碼,讓手機能直接聽懂“高階語言”,消除了虛擬機器動態編譯的額外開銷,提升了手機執行效率。

同時,方舟編譯器還能夠理解程式特徵、使用適合的指令來執行程式,因此能夠極大程度地發揮出晶片的能力。

目前,方舟編譯器聚焦在 Java 程式碼效能上,未來,方舟編譯器將覆蓋多種程式語言(包括 C/C++、JS 等),多種晶片架構(包括CPU、GPU、IPU等),覆蓋更廣的業務場景。

鴻蒙比安卓快60%!只因沒了“中間商”

One as All,All as One

鴻蒙比安卓快60%!只因沒了“中間商”

為不同裝置的智慧化、互聯與協同提供統一的語言,這,就是新一代智慧終端作業系統HarmonyOS 2!