OpenArkCompiler方舟编译
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)源
時(shí)間:2019年8月
開(kāi)源范圍:編譯器IR+中端語(yǔ)言實(shí)現(xiàn)
開(kāi)放能力:
框架開(kāi)源供參考學(xué)習(xí),了解方舟編譯器架構(gòu)及框架代碼
開(kāi)發(fā)者可構(gòu)建出完整編譯器工具鏈,支持Java Sample程序編譯(非應(yīng)用)
后續(xù)開(kāi)源范圍 陸續(xù)開(kāi)源編譯器前端、后端、編譯優(yōu)化;完整支持Java程序編譯、JavaScript語(yǔ)言應(yīng)用的編譯等。
如何使用
? source build/envsetup.sh arm release 或
? source build/envsetup.sh arm debug
? make setup
? make
? make libcore
? make testall
孵化器項(xiàng)目
? FutureWei編譯器分支 https://gitee.com/openarkcompiler-incubator/mapleall
? Maple Engine https://gitee.com/openarkcompiler-incubator/maple_engine
相關(guān)文檔
? 架構(gòu)設(shè)計(jì)原理
o MAPLE IR Design
o RC API
o Naive RC操作插入原理
o 虛函數(shù)表和接口函數(shù)表設(shè)計(jì)介紹
o Phase設(shè)計(jì)介紹
o Maple通用模塊應(yīng)用手冊(cè)
? 環(huán)境配置
? 開(kāi)發(fā)者指南
? 編程規(guī)范
? C++編程探討之指針
華為方舟編譯器
方舟編譯器是華為推出的首個(gè)完全自主研發(fā)的編譯器平臺(tái),于2019年8月31日正式上線。方舟編譯器已成為碼云最快達(dá)成5000 Star的開(kāi)源項(xiàng)目。
華為方舟編譯器是華為公司專門(mén)為軟件廠商研發(fā)的統(tǒng)一編程平臺(tái),包含編譯器、工具鏈、運(yùn)行時(shí)等關(guān)鍵部件。該編譯器支持多種編程語(yǔ)言、多種芯片平臺(tái)的聯(lián)合編譯與運(yùn)行,能夠有效解決安卓程序“邊解釋邊執(zhí)行”的低效率問(wèn)題。
2019年8月31日,華為方舟編譯器開(kāi)源官網(wǎng)正式上線。
2019年11月,華為方舟編譯器獲“2019東北亞優(yōu)秀開(kāi)源項(xiàng)目”獎(jiǎng)。
研發(fā)背景
編譯器是連接人類世界與機(jī)器世界之間的一座橋梁,任何在手機(jī)上的程序,都需要經(jīng)歷軟件開(kāi)發(fā)的過(guò)程,軟件開(kāi)發(fā)使用的語(yǔ)言,易于程序員理解的高級(jí)語(yǔ)言,程序在手機(jī)上運(yùn)行需要轉(zhuǎn)換成可以高效執(zhí)行的機(jī)器碼,這樣的轉(zhuǎn)換過(guò)程就是由編譯器完成的。可以說(shuō)編譯器是用來(lái)生成軟件的軟件,連接軟件與芯片的橋梁,其性能,效率直接影響到最基礎(chǔ)的消費(fèi)者體驗(yàn)。
技術(shù)特點(diǎn)
安卓系統(tǒng)使用Java作為編程語(yǔ)言,易于開(kāi)發(fā),但是不會(huì)將代碼直接編譯成機(jī)器語(yǔ)言,程序運(yùn)行時(shí)有相當(dāng)一部分代碼,還需要通過(guò)手機(jī)上的虛擬機(jī)臨時(shí)同步編譯,影響程序執(zhí)行的效率。華為方舟編譯器采取了靜態(tài)編譯的方式,首個(gè)取代了安卓虛擬機(jī)模式的靜態(tài)編譯器。
性能效果
方舟編譯器采用全程執(zhí)行機(jī)器碼高效運(yùn)行程序,架構(gòu)進(jìn)一步得到優(yōu)化,可供開(kāi)發(fā)者在開(kāi)發(fā)環(huán)境一次性的將高級(jí)語(yǔ)言編譯為機(jī)器碼,手機(jī)安裝應(yīng)用程序后可全速運(yùn)行程序,帶來(lái)效率上的極大提升。根據(jù)華為實(shí)驗(yàn)室的測(cè)試數(shù)據(jù),EMUI 9.1在僅僅對(duì)系統(tǒng)組件System Server,應(yīng)用了華為方舟編譯器后,就帶來(lái)了系統(tǒng)操作流暢度提升24%,系統(tǒng)響應(yīng)性能提升44%。
開(kāi)源計(jì)劃
在方舟編譯器面世之時(shí),華為就宣布未來(lái)將這一技術(shù)開(kāi)源,希望更多的APP廠商,高校,安卓手機(jī)廠商,開(kāi)源社區(qū)的開(kāi)發(fā)者能一同加入進(jìn)來(lái)。
華為計(jì)劃在2020年將方舟編譯器完整開(kāi)源,幫助開(kāi)發(fā)者構(gòu)建完整的工具鏈。華為還將提供代碼調(diào)優(yōu)工具,開(kāi)發(fā)者可以選擇根據(jù)工具的優(yōu)化,建議來(lái)調(diào)整自己的代碼,與方舟編譯器配合獲得更優(yōu)的執(zhí)行效果。
截至2019年,已經(jīng)有40多個(gè)頂級(jí)應(yīng)用通過(guò)方舟的編譯,上架到華為應(yīng)用商城,未來(lái)將有更多的第三方使用方舟編譯器。同時(shí),方舟編譯器所有代碼也將開(kāi)源給業(yè)界。
參考鏈接:
https://gitee.com/openarkcompiler/OpenArkCompiler?utm_source=alading&utm_campaign=repo
總結(jié)
以上是生活随笔為你收集整理的OpenArkCompiler方舟编译的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 传统编译原理
- 下一篇: MLIR与Code Generation