0
雷鋒網(wǎng)消息,8 月 5 日,趕在 2019 年華為全球開發(fā)者大會正式開幕的前幾天,華為正式對外發(fā)布了此前已經(jīng)對外公布的編譯工具——方舟編譯器。
據(jù)了解,方舟編譯器是基于 GCC(GNU Compiler Collection,GNU 編譯器套件) 開發(fā)的交叉編譯器套件,它包括了 C、C++、Fortran 的前端,也包括了這些語言的庫(如 libstdc++、libgcc 等)。HCC(即華為方舟編譯器) 運行在 X86 linux 架構(gòu)服務器上,生成的二進制運行在 Aarch64 架構(gòu)服務器上。
此前,華為在 4 月份的華為 P30 系列國內(nèi)發(fā)布會上宣布了方舟編譯器的存在。按照官方說法,方舟編譯器是首家完全替代語言虛擬機的靜態(tài)編譯器,完全不需要解釋器;同時兼顧 Java 開發(fā)效率和 C 語言運行效率的編譯器。相比現(xiàn)有的編譯機制,有如下優(yōu)勢:
方舟編譯器是一種靜態(tài)的編譯方式,而現(xiàn)有的 Android 系統(tǒng),運行一個應用程序首先啟動虛擬機,然后讀入應用程序代碼,逐條解釋執(zhí)行。會占用較多的處理資源,影響程序執(zhí)行的效率。當然,也有包括 AOT 或 JIT 等提前或運行時的編譯技術(shù),把部分程序轉(zhuǎn)換成機器碼直接在 CPU 上執(zhí)行。但是,仍舊無法做到 100% 做到擺脫虛擬機的執(zhí)行,這也是當前 Android 陣營不如 iOS 陣營的關(guān)鍵。
華為方舟編譯器的靜態(tài)編譯方式可將語言里的動態(tài)特性直接翻譯成機器碼,手機安裝應用程序后可全速運行程序,徹底消除虛擬機的弊病,帶來效率上的極大提升。
方舟編譯器是在開發(fā)環(huán)境部署的編譯器,而現(xiàn)有編譯過程,主要發(fā)生在手機上,帶來額外的資源消耗。
方舟編譯器針對通用 ARM 芯片架構(gòu)進行編譯優(yōu)化,未來將通過軟硬件協(xié)同設(shè)計,將麒麟芯片的能力發(fā)揮到極致。同時方舟編譯器支持 Java 標準用法,三方應用可直接進行編譯,不需要修改代碼。但如果希望獲得更加好的性能或內(nèi)存方面的提升,則可以通過調(diào)整代碼結(jié)構(gòu),與方舟編譯器配合優(yōu)化來實現(xiàn)。
目前,華為已經(jīng)放出了方舟編譯器的詳細介紹頁面,相關(guān)下載地址也已經(jīng)給出。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。