方舟編譯器在9月1號正式的進(jìn)行了開源,這也意味著所有的用戶都能夠使用華為的方舟編譯器,它能夠以更快的速度幫助你提升APP的整體的運(yùn)轉(zhuǎn),擺脫以往那種復(fù)雜低效的運(yùn)行方式,讓程序在占用更小的內(nèi)存的同時(shí)能夠更加快速的進(jìn)行運(yùn)行,現(xiàn)在西西提供源代碼包和二進(jìn)制包的下載!
方舟編譯器介紹
方舟編譯器是為了支持多種編程語言,多種芯片平臺(tái)的聯(lián)合編譯,運(yùn)行而設(shè)計(jì)的統(tǒng)一編程平臺(tái),包含編譯器,工具鏈,運(yùn)行時(shí)等關(guān)鍵部件。方舟編譯器還在持續(xù)演進(jìn)中,陸續(xù)將上述能力實(shí)現(xiàn)和開源。
編譯器優(yōu)勢
多語言聯(lián)合
將同一應(yīng)用中的不同語言代碼聯(lián)合編譯,聯(lián)合優(yōu)化,消除語言間的性能“鴻溝”,降低開發(fā)者的優(yōu)化成本
輕量運(yùn)行時(shí)
通過編譯器的語言實(shí)現(xiàn)能力和優(yōu)化能力增強(qiáng),應(yīng)用運(yùn)行時(shí)的開銷更小
軟硬件協(xié)同
編譯器與芯片實(shí)現(xiàn)軟硬件協(xié)同優(yōu)化,充分發(fā)揮硬件能效,應(yīng)用體驗(yàn)更佳
多平臺(tái)支持
支持面向多樣化的終端設(shè)備平臺(tái)進(jìn)行編譯和運(yùn)行,根據(jù)設(shè)備特征提供便捷的開發(fā)與部署策略,提高開發(fā)效率
相關(guān)介紹
當(dāng)前方舟編譯器支持Java / Kotlin程序字節(jié)碼的前端輸入,其它編程語言的支持(如C / C ++ / JS等)還在規(guī)劃中,方舟編譯器的中間表示(IR)轉(zhuǎn)換器將前端輸入轉(zhuǎn)換成方舟IR,并輸送給后端的優(yōu)化器,最終生成二進(jìn)制文件,二進(jìn)制文件與編譯器運(yùn)行時(shí)庫文件鏈接生成可執(zhí)行文件,在方舟的運(yùn)行環(huán)境中就可執(zhí)行該文件
方舟編譯器IR是支持程序編譯和運(yùn)行的中間程序表示。程序源代碼中的任何信息對于程序分析和優(yōu)化都是有幫助的,所以方舟IR的目標(biāo)是盡可能完整詳細(xì)地提供源程序的信息。關(guān)于方舟編譯器IR的詳細(xì)信息,請參考文檔:方舟IR設(shè)計(jì)
相關(guān)新聞
2019年8月31日,華為方舟編譯器開源官網(wǎng)正式上線,并首次開放了框架源碼。方舟編譯器對終端軟件編譯機(jī)制進(jìn)行了架構(gòu)級優(yōu)化,將顯著地提升用戶體驗(yàn)。
本次方舟編譯器開源的是編譯器框架部分源碼,包括編譯器中間表示(IR)和語言編譯實(shí)現(xiàn),同時(shí)搭配編譯器其他二進(jìn)制組件,實(shí)現(xiàn)的Java程序到aarch64匯編指令的編譯過程。開發(fā)者可基于開源代碼+二進(jìn)制,編譯構(gòu)建出編譯器工具鏈,嘗試對爪哇程序進(jìn)行編譯。社區(qū)參與者可以通過框架源碼學(xué)習(xí)方舟編譯器的編譯器中間表達(dá)(IR)及基本的中端編譯框架,熟悉方舟編譯器的架構(gòu)思想,并參與諸如對編譯器中端優(yōu)化的貢獻(xiàn)。