自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

華為方舟編譯器正式開(kāi)源,脫離 GitHub 實(shí)現(xiàn)自主托管

新聞 前端
近日,華為的方舟編譯器終于迎來(lái)了開(kāi)源,而且開(kāi)源代碼還是承載在自家的官網(wǎng)上。

本文轉(zhuǎn)自雷鋒網(wǎng),如需轉(zhuǎn)載請(qǐng)至雷鋒網(wǎng)官網(wǎng)申請(qǐng)授權(quán)。

近日,華為的方舟編譯器終于迎來(lái)了開(kāi)源,而且開(kāi)源代碼還是承載在自家的官網(wǎng)上。面對(duì)這樣一個(gè)肩負(fù)「出于安卓,勝于安卓」使命的編譯器,自問(wèn)世以來(lái)就備受大家的關(guān)注;此次開(kāi)源,更是吸引了大眾的目光。

那么到底這個(gè)編譯器從開(kāi)發(fā)至今都經(jīng)歷了哪些挑戰(zhàn)?獲得了哪些機(jī)遇?現(xiàn)在又擁有怎樣的魔力?它對(duì)于華為而言,意味著什么? 

[[276400]]

十年磨劍,華為「方舟」

為了造這艘「方舟」,華為磨劍十年。

  • 2009 年,華為啟動(dòng) 5G 基礎(chǔ)技術(shù)研究的同時(shí),開(kāi)始創(chuàng)建編譯組,第一批海內(nèi)外研究人員加入。

  • 2013 年,華為推出面向基站領(lǐng)域的自研編譯器 HCC,并正式提出編譯器框架構(gòu)想。

  • 2014 年,眾多海內(nèi)外專家加入華為,方舟項(xiàng)目正式啟動(dòng)。

  • 2016 年,成立編譯器與編程語(yǔ)言實(shí)驗(yàn)室。

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

據(jù)華為官方介紹,方舟編譯器是為支持多種編程語(yǔ)言、多種芯片平臺(tái)的聯(lián)合編譯、運(yùn)行而設(shè)計(jì)的統(tǒng)一編程平臺(tái),包含編譯器、工具鏈、運(yùn)行時(shí)等關(guān)鍵部件。它是首個(gè)完全替代語(yǔ)言虛擬機(jī)的靜態(tài)編譯器,并且完全不需要解釋器,同時(shí)還兼顧 Java 開(kāi)發(fā)效率和 C 語(yǔ)言運(yùn)行效率。

8 月 31 日下午 17 時(shí),方舟編譯器開(kāi)源官網(wǎng)上線——OpenArkCompiler(開(kāi)源方舟編譯器),開(kāi)放了框架源碼,開(kāi)發(fā)者們可以下載源代碼包,了解熟悉方舟編譯器的架構(gòu)思想。

OpenArkCompiler 介紹

  • 面向多設(shè)備、支持多語(yǔ)言的統(tǒng)一編程平臺(tái)。

  • OpenArkCompiler 是來(lái)自華為方舟編譯器的開(kāi)源項(xiàng)目。

OpenArkCompiler 四個(gè)技術(shù)特點(diǎn)

  • 能能夠?qū)⒉煌Z(yǔ)言代碼編譯成一套可執(zhí)行文件,在運(yùn)行環(huán)境中高效執(zhí)行:

支持多語(yǔ)言聯(lián)合優(yōu)化、消除跨語(yǔ)言調(diào)用開(kāi)銷;

更輕量的語(yǔ)言運(yùn)行時(shí);

軟硬協(xié)同充分發(fā)揮硬件能效;

  • 支持多樣化的終端設(shè)備平臺(tái)

  • 開(kāi)源計(jì)劃

  • 編編譯器框架代碼開(kāi)源

OpenArkCompiler 開(kāi)源范圍

  • 編譯器 IR+中端語(yǔ)言實(shí)現(xiàn)

OpenArkCompiler 開(kāi)放能力

  • 框架開(kāi)源供參考學(xué)習(xí),了解方舟編譯器架構(gòu)及框架代碼

  • 開(kāi)發(fā)者可構(gòu)建出完整編譯器工具鏈,支持 Java Sample 程序編譯(非應(yīng)用)

脫離GitHub,自主托管

目前方舟編譯器的源代碼已經(jīng)都放出來(lái)了,但并沒(méi)有在 GitHub 開(kāi)源。目前方舟編譯器的代碼托管在華為云與碼云平臺(tái)(https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/home),在未來(lái)走向開(kāi)放治理以后,將按照所掛靠機(jī)構(gòu)的模式來(lái)托管。如下所示為開(kāi)源代碼的界面,里面包含了眾多代碼和文檔等文件。

圖 1 方舟開(kāi)源代碼界面

本次方舟編譯器開(kāi)源的是編譯器框架部分源碼,包括編譯器中間表示(IR,Intermediate Representation)和語(yǔ)言編譯實(shí)現(xiàn),同時(shí)搭配編譯器其他二進(jìn)制組件,實(shí)現(xiàn) Java 程序到 aarch64 匯編指令的編譯過(guò)程。開(kāi)發(fā)者可基于開(kāi)源代碼+二進(jìn)制,編譯構(gòu)建出編譯器工具鏈,嘗試對(duì) Java 程序進(jìn)行編譯。

社區(qū)參與者可以通過(guò)框架源碼學(xué)習(xí)方舟編譯器的編譯器中間表示(IR)及基本的中端編譯框架,熟悉方舟編譯器的架構(gòu)思想,并參與諸如對(duì)編譯器中端優(yōu)化的貢獻(xiàn)。開(kāi)發(fā)者則可通過(guò)代碼托管平臺(tái)參與社區(qū)貢獻(xiàn),包括文檔貢獻(xiàn)和代碼貢獻(xiàn),同時(shí)也可在此平臺(tái)上反饋相關(guān)問(wèn)題和需求。

圖 2 方舟編譯器當(dāng)前開(kāi)源范圍

盡管方舟編譯器暫時(shí)只支持 Java 和 Kotlin 程序輸入,但官方消息稱,方舟編譯器還在持續(xù)演進(jìn)中,也將陸續(xù)實(shí)現(xiàn)更多功能的開(kāi)源。根據(jù)之前華為在開(kāi)發(fā)者大會(huì)上公布的信息,作為鴻蒙 OS 的重要工具,方舟編譯器從 2019 年 8 月開(kāi)始,將分步驟持續(xù)進(jìn)行開(kāi)源。具體的開(kāi)源計(jì)劃如下:

  • 2020 年:開(kāi)始開(kāi)源 Java 編譯器工具鏈,支持 Java 程序編譯。

  • 2021 年:開(kāi)始開(kāi)源 JavaScript 編譯器工具鏈,可用于 JS 程序的編譯。

架構(gòu)示意圖

圖 3 方舟編譯器架構(gòu)示意圖

當(dāng)前方舟編譯器支持 Java/Kotlin 程序字節(jié)碼的前端輸入,其它編程語(yǔ)言的支持(如 C/C++/JS 等)還在規(guī)劃中,方舟編譯器的中間表示(IR)轉(zhuǎn)換器將前端輸入轉(zhuǎn)換成方舟 IR,并輸送給后端的優(yōu)化器,最終生成二進(jìn)制文件,二進(jìn)制文件與編譯器運(yùn)行時(shí)庫(kù)文件鏈接生成可執(zhí)行文件,在方舟的運(yùn)行環(huán)境中就可執(zhí)行該文件。

方舟編譯器 IR 是支持程序編譯和運(yùn)行的中間程序表示。程序源代碼中的任何信息對(duì)于程序分析和優(yōu)化都是有幫助的,所以方舟 IR 的目標(biāo)是盡可能完整詳細(xì)地提供源程序的信息。關(guān)于方舟編譯器 IR 的詳細(xì)信息,可以參考(https://www.openarkcompiler.cn/document/frameworkDesgin)。

左秒虛擬機(jī),右殺 JNI

華為宣稱,方舟編譯器可將安卓應(yīng)用流暢度最高提升 60%,提升手機(jī)系統(tǒng)操作流暢度高達(dá) 24%,系統(tǒng)響應(yīng)性能提升 44%。

根據(jù)華為實(shí)驗(yàn)數(shù)據(jù),EMUI 9.1 在僅僅對(duì)系統(tǒng)組件 System Server 應(yīng)用了華為方舟編譯器后,系統(tǒng)操作流暢度提升 24%,系統(tǒng)響應(yīng)性能提升 44%。新浪微博極速版是第一款采用方舟編譯器的第三方應(yīng)用,操作流暢度提升 60%。

「出于安卓,勝于安卓,超越 iOS,并且全面兼容安卓」,是方舟編譯器的使命。目前,方舟已經(jīng)可以實(shí)現(xiàn)「混合語(yǔ)言的統(tǒng)一中間表示和完全靜態(tài)編譯」。這也正是它主要的兩大優(yōu)點(diǎn):

  • 方舟編譯器首次在 Java 領(lǐng)域?qū)⑻摂M機(jī)去掉了,也是軟件史上首次將 Java/C/C++等混合代碼一次編譯成機(jī)器碼直接在手機(jī)上運(yùn)行,徹底告別 Java 的 JNI 額外開(kāi)銷,采用內(nèi)存回收機(jī)制,使操作流暢度大幅提升。

  • 方舟編譯器用空間換性能,因此可直接將編譯器的代碼優(yōu),并化搬到了開(kāi)發(fā)者環(huán)境;使得開(kāi)發(fā)者不再被手機(jī)端的硬件資源所限制,為代碼優(yōu)化提供了無(wú)限可能。

我命由我不由天

正如華為自己所寫(xiě):「方舟編譯器開(kāi)源打響了鴻蒙 OS 開(kāi)源的第一槍。通過(guò)持續(xù)的開(kāi)放、開(kāi)源,華為將把自己在軟件方面的技術(shù)能力不斷貢獻(xiàn)給行業(yè),同時(shí)在開(kāi)源社區(qū)中,更多的開(kāi)發(fā)者可以參與并貢獻(xiàn)自己的力量,共同推進(jìn)基礎(chǔ)軟件的發(fā)展?!?/p>

方舟編譯器的開(kāi)源并非偶然,而是華為一直精心運(yùn)營(yíng)的一步棋。當(dāng)這步棋落下的那一刻,也代表了華為進(jìn)一步實(shí)現(xiàn)技術(shù)自主權(quán)的時(shí)候;而正是這樣的獨(dú)立,才讓華為在面對(duì)美國(guó)一次又一次的強(qiáng)勢(shì)打壓之下,依然保持了頑強(qiáng)、不屈服的態(tài)度。

[[276401]]

圖 4 方舟編譯器合作第三方應(yīng)用

根據(jù)官方信息,華為堅(jiān)持每年將銷售收入的 10% 以上投入到研發(fā)中,技術(shù)成果不斷涌現(xiàn),軟件能力持續(xù)增強(qiáng);并且在此基礎(chǔ)上,華為也保持著開(kāi)放、合作、共贏的態(tài)度,不斷推進(jìn)產(chǎn)業(yè)創(chuàng)新與開(kāi)放生態(tài)。從官網(wǎng)的介紹,我們可以看到目前已有 46 款 APP 使用了方舟編譯器進(jìn)行優(yōu)化與性能提升,其中包括我們常用的支付寶、優(yōu)酷、微博等應(yīng)用。

現(xiàn)在方舟編譯器正式開(kāi)源,或許也正意味著華為正在從開(kāi)源領(lǐng)域的主要參與者變成引領(lǐng)者。

官方網(wǎng)站:

https://www.openarkcompiler.cn 

代碼托管網(wǎng)站:

https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler    

碼云鏡像倉(cāng)庫(kù)地址:

https://gitee.com/harmonyos/OpenArkCompiler 

 

責(zé)任編輯:張燕妮 來(lái)源: 雷鋒網(wǎng)
相關(guān)推薦

2019-08-06 08:20:07

編譯器工具開(kāi)發(fā)者

2019-06-26 09:32:28

華為禁令開(kāi)發(fā)

2019-06-14 08:35:14

華為禁令開(kāi)發(fā)

2019-04-12 09:10:25

開(kāi)源技術(shù) 軟件

2019-09-09 09:12:43

2022-01-28 08:22:36

深度學(xué)習(xí)編譯器開(kāi)源

2019-09-02 09:59:48

華為方舟編譯器開(kāi)源

2019-04-26 06:20:32

安卓華為編譯

2019-05-16 09:07:42

華為方舟編譯器

2022-05-18 09:31:42

編譯器開(kāi)源代碼生成

2019-09-17 09:40:06

編譯器開(kāi)源開(kāi)發(fā)者

2021-09-07 11:19:42

操作系統(tǒng)華為鴻蒙

2019-09-02 00:06:36

華為開(kāi)發(fā)者開(kāi)源

2019-08-09 17:33:42

華為鴻蒙開(kāi)發(fā)

2015-01-12 10:12:40

.NET

2022-03-28 10:25:27

前端文件編譯器

2022-11-10 20:20:41

畢昇

2012-05-11 11:32:52

英偉達(dá)CUDA編譯器

2021-06-08 07:48:26

lambda表達(dá)式編譯器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)