华为方舟编译器正式开源,脱离 GitHub 实现自主托管
2019-09-09
社区参与者可以通过框架源码学习方舟编译器的编译器中间表示及基本的中端编译框架,熟悉方舟编译器的架构思想,并参与诸如对编译器中端优化的贡献。开发者则可通过代码托管平台参与社区贡献,包括文档贡献和代码贡献,同时也可在此平台上反馈相关问题和需求。图 2 方舟编译器当前开源范围尽管方舟编译器暂时只支持 Java 和 Kotlin 程序输入,但官方消息称,方舟编译器还在持续演进中,也将陆续实现更多功能的开源。根据之前华为在开发者大会上公布的信息,作为鸿蒙 OS 的重要工具,方舟编译器从 2019 年 8 月开始,将分步骤持续进行开源。具体的开源计划如下:2020 年:开始开源 Java 编译器工具链,支持 Java 程序编译。2021 年:开始开源 JavaScript 编译器工具链,可用于 JS 程序的编译。架构示意图图 3 方舟编译器架构示意图当前方舟编译器支持 Java/Kotlin 程序字节码的前端输入,其它编程语言的支持还在规划中,方舟编译器的中间表示转换器将前端输入转换成方舟 IR,并输送给后端的优化器,最终生成二进制文件,二进制文件与编译器运行时库文件链接生成可执行文件,在方舟的运行环境中就可执行该文件。方舟编译器 IR 是支持程序编译和运行的中间程序表示。程序源代码中的任何信息对于程序分析和优化都是有帮助的,所以方舟 IR 的目标是尽可能完整详细地提供源程序的信息。关于方舟编译器 IR 的详细信息,可以参考。左秒虚拟机,右杀 JNI华为宣称,方舟编译器可将安卓应用流畅度最高提升 60%,提升手机系统操作流畅度高达 24%,系统响应性能提升 44%。根据华为实验数据,EMUI 9.1 在仅仅对系统组件 System Server 应用了华为方舟编译器后,系统操作流畅度提升 24%,系统响应性能提升 44%。微博极速版是第一款采用方舟编译器的第三方应用,操作流畅度提升 60%。「出于安卓,胜于安卓,超越 iOS,并且全面兼容安卓」,是方舟编译器的使命。目前,方舟已经可以实现「混合语言的统一中间表示和完全静态编译」。这也正是它主要的两大优点:方舟编译器首次在 Java 领域将虚拟机去掉了,也是软件史上首次将 Java/C/C++等混合代码一次编译成机器码直接在手机上运行,彻底告别 Java 的 JNI 额外开销,采用内存回收机制,使操作流畅度大幅提升。方舟编译器用空间换性能,因此可直接将编译器的代码优,并化搬到了开发者环境;使得开发者不再被手机端的硬件资源所限制,为代码优化提供了无限可能。我命由我不由天正如华为自己所写:「方舟编译器开源打响了鸿蒙 OS 开源的第一枪。通过持续的开放、开源,华为将把自己在软件方面的技术能力不断贡献给行业,同时在开源社区中,更多的开发者可以参与并贡献自己的力量,共同推进基础软件的发展。」方舟编译器的开源并非偶然,而是华为一直精心运营的一步棋。当这步棋落下的那一刻,也代表了华为进一步实现技术自主权的时候;而正是这样的独立,才让华为在面对美国一次又一次的强势打压之下,依然保持了顽强、不屈服的态度。图 4 方舟编译器合作第三方应用根据官方信息,华为坚持每年将销售收入的 10% 以上投入到研发中,技术成果不断涌现,软件能力持续增强;并且在此基础上,华为也保持着开放、合作、共赢的态度,不断推进产业创新与开放生态。从官网的介绍,我们可以看到目前已有 46 款 APP 使用了方舟编译器进行优化与性能提升,其中包括我们常用的支付宝、优酷、微博等应用。现在方舟编译器正式开源,或许也正意味着华为正在从开源领域的主要参与者变成引领者。官方网站:https://www.openarkcompiler.cn 代码托管网站:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler    码云镜像仓库地址:https://gitee.com/harmonyos/OpenArkCompiler
        

上一篇:一份完全解读:是什么使神经网络变成图神经网络?
下一篇:毕业五年,几个月入百万知名互联网公司大神的公众号!