vlambda博客
学习文章列表

华为开源了方舟编译器,这次看到源码了


嵌入式linux QQ交流群:175159209,欢迎爱好者加入交流技术问题!


今年 4 月份华为发布了方舟编译器(ArkCompiler),同时宣布将在 8 月将其编译框架代码开源,开发者可以研究参考,并在 11 月完整开源方舟编译器代码。目前在华为云官网上我们已经看到释出的源码下载包:

https://www.huaweicloud.com/kunpeng/software/ArkCompiler.html

华为开源了方舟编译器,这次看到源码了

按照官方说法,方舟编译器是首家完全替代语言虚拟机的静态编译器,完全不需要解释器;同时兼顾 Java 开发效率和 C 语言运行效率的编译器。相比现有的编译机制,有如下优势:

  • 方舟编译器是一种静态的编译方式,而现有的 Android 系统,运行一个应用程序首先启动虚拟机,然后读入应用程序代码,逐条解释执行。会占用较多的处理资源,影响程序执行的效率。当然,也有包括 AOT 或 JIT 等提前或运行时的编译技术,把部分程序转换成机器码直接在 CPU 上执行。但是,仍旧无法做到 100% 做到摆脱虚拟机的执行,这也是当前 Android 阵营不如 iOS 阵营的关键。

  • 华为方舟编译器的静态编译方式可将语言里的动态特性直接翻译成机器码,手机安装应用程序后可全速运行程序,彻底消除虚拟机的弊病,带来效率上的极大提升。

  • 方舟编译器是在开发环境部署的编译器,而现有编译过程,主要发生在手机上,带来额外的资源消耗。

方舟编译器针对通用 ARM 芯片架构进行编译优化,未来将通过软硬件协同设计,将麒麟芯片的能力发挥到极致。同时方舟编译器支持 Java 标准用法,三方应用可直接进行编译,不需要修改代码。但如果希望获得更加好的性能或内存方面的提升,则可以通过调整代码结构,与方舟编译器配合优化来实现。


华为方舟编译器作为一款全新的安卓应用编译器可以显著提高手机的运行速度,它不采用现有安卓编译器边解释边执行的模式,而是将这种动态编译改为静态编译,可以做到全程执行机器码,进而高效运行程序,大大缩短程序响应时间。

华为官方表示方舟编译器能够将系统操作流畅度提升 24%、系统响应力提升 44%、第三方应用操作流畅度提升 60%。

华为开源了方舟编译器,这次看到源码了

源码主页介绍方舟编译器是基于 GCC 开发的交叉编译器套件,它包括了 C、C++ 与 Fortran 的前端,也包括了这些语言的库(如 libstdc++ 与 libgcc 等)。HCC 运行在 X86 Linux 架构服务器上,生成的二进制运行在 Aarch64 架构服务器上。

同时页面上似乎还有一篇未完成的博文:“华为发布 C/C++ 编译器”,目前无法访问,估计是发布会上将正式发表的公告,但为什么是“C/C++ 编译器”并且没有 Java/Kotlin 前端?

嵌入式Linux中文站

最专业的中文嵌入式Linux网站,8年磨剑,注册用户数万人

分享 嵌入式 & Linux 技术干货、教程、资讯、高薪职位

订阅点击标题下方“嵌入式Linux中文站”

分享点击右上角分享按钮

投稿[email protected]


       点击下方“ 阅读原文 ”查看更多