广告

华为方舟编译器开源了哪些内容?

2019-09-04 网络整理 阅读:
自华为开源平台网站公布了一些测试和说明文件后,吸引了不少代码爱好者前来围观。从网友反馈来看,大家对方舟编译器的开源十分期待。

华为方舟编译器开源官网8月31日正式上线,方舟编译器代码正式出现在华为开源平台HUAWEIOpenSource上。方舟编译器是华为自研操作系统鸿蒙OS的重要组成部分,本次方舟编译器框架代码的正式上线,也意味着华为鸿蒙OS向开源走近了一步。9Zdednc

自华为开源平台网站公布了一些测试和说明文件后,吸引了不少代码爱好者前来围观。从网友反馈来看,大家对方舟编译器的开源十分期待。9Zdednc

方舟编译器开源了哪些内容?

据华为官网介绍,本次方舟编译器开源的是编译器框架部分源码,包括编译器中间表示(IR)和语言编译实现,同时搭配编译器其他二进制组件,实现Java程序到aarch64汇编指令的编译过程。9Zdednc

014ednc201909049Zdednc

开发者可基于开源代码+二进制,编译构建出编译器工具链,尝试对Java程序进行编译。社区参与者可以通过框架源码学习方舟编译器的编译器中间表达(IR)及基本的中端编译框架,熟悉方舟编译器的架构思想,并参与诸如对编译器中端优化的贡献。9Zdednc

=016ednc201909049Zdednc

▲方舟编译器整体框架9Zdednc

方舟编译器框架代码可完成Java静态编译,包括类层次关系分析、虚方法表和接口表的生成、native函数的处理等,以及基于引用计数的内存管理方式,提供RC插入功能。9Zdednc

根据华为公布的时间表,后续还将开源编译器前端、后端;支持 Java 程序编译、JavaScript 语言应用的编译等。现在的官网也只是方舟编译器孵化期间的网站,「正式毕业后的官网待定」。9Zdednc

根据之前华为在开发者大会上公布的信息,作为鸿蒙OS的重要工具,方舟编译器从2019年8月开始,将分步骤持续进行开源。具体的开源计划如下:9Zdednc

2020年:开始对Java编译器工具链开源,支持Java程序编译。9Zdednc

2021年:开始对JavaScript编译器工具链开源,可用于JS程序的编译。9Zdednc

官方网站:https://www.openarkcompiler.cn/home9Zdednc

代码托管网站:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler9Zdednc

码云镜像仓库地址:https://gitee.com/harmonyos/OpenArkCompiler9Zdednc

方舟编译器的四大技术亮点

方舟编译器有着以下四大技术亮点:9Zdednc

1、是一种多语言联合优化编译器,消除了跨语言调用的开销9Zdednc

方舟编译器则可以让不同语言代码在程序开发环境中环境中编译成一套语言统一的可执行文件,在硬件的运行环境高效执行。9Zdednc

也就是说,方舟编译器中吸纳了现在安卓生态中的各种主流框架和库,对不同语言做了统一的程序优化,直接编译成机器指令。9Zdednc

2、程序运行时无需依赖虚拟机,减少资源占用,并且建立了高效的内存回收机制9Zdednc

方舟编译器摆脱了原有安卓系统虚拟机的编译模式,把动态的部分全部变为静态编译,其核心是一定要对Java语言动态特性非常深入理解。9Zdednc

Java是非常庞大的,需要对安卓现有的应用,可能会用到哪些库,这些库之间怎么用理解,需要大量的分析运行状态,才能够将这些动态特性完成提前的编译。同时由于方舟编译器统一将程序编译为机器语言,所以也是跨硬件平台的。9Zdednc

3、可针对不同应用灵活编译优化,翻译出性能更佳的机器指令9Zdednc

现有的安卓编译,大部分代码在虚拟机环境运行,其创建遵循同一套“模板”,所以难以作深度的优化。9Zdednc

方舟编译器可针对不同应用灵活编译优化,每个应用编译优化方案由开发者自己来定,分别形成不同应用优化后的机器码。9Zdednc

4、开发者学习和使用成本低,打包时即编译9Zdednc

方舟编译器的又一亮点是,在应用开发构建的阶段为开发者提供快速的集成编译环境。而现行安卓系统则是在用户将应用下载后,在终端上实现编译的。9Zdednc

普通用户直接受益者

顾名思义,编译器相当于一个翻译器,将程序员编程使用的高级语言翻译成机器能懂的代码,目前 Android 系统的应用运行时主要采用边「翻译」边执行的模式,会消耗部分资源且影响运行效率,而华为的方舟编译器则优化了这个过程,在开发环境中完成全部代码编译,所以应用在运行时不需要再经过编译即可直接将操作指令送达处理器执行,给用户带来的直观感受就是系统更流程、应用运行更快了。9Zdednc

017ednc201909049Zdednc

▲图片来自:CNBETA9Zdednc

根据华为实验室的测试数据,EMUI 9.1 仅系统组件 System Server 应用了华为方舟编译器后,系统操作流畅度提升 24%,系统响应性能提升 44%。9Zdednc

可以说,作为普通用户,我们虽然不会直接接触到方舟编译器,但却是该技术的直接受益者。9Zdednc

Android 版的支付宝前不久就因为更新后启动速度和响应速度大为提升,被网友猜测是采用了方舟编译器,虽然官方后来澄清是通过容器框架原生化、虚拟机调优等方式改善了使用体验,但在方舟编译器官网列出的合作伙伴中,支付宝赫然在列,此外还有新浪微博、淘宝、抖音、QQ、等常用应用共 45 个。9Zdednc

018ednc201909049Zdednc

方舟编译器要发挥实际作用,正是需要各应用开发者的支持,如果这些大公司确实基于方舟开发出相应的版本,想必能带动更多应用「上船」,到时候消费者才能真正享受到方舟编译器带来的好处。9Zdednc

如果方舟编译器取得不错的效果,也有望带动华为手机的销量,目前已有多款华为和荣耀机型支持方舟编译器,当然,方舟编译器的成功无疑也将为鸿蒙 OS 打下坚实的基础。9Zdednc

(责编:Demi Xia)9Zdednc

本文为EDN电子技术设计 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 华为Hi3861开发板助力推广鸿蒙系统,或基于RISC-V架构 Hi3861开发板:属于轻量系统类设备(参考内存≥128KB),适用于联接类模组设备,为各类IoT设备提供连接能力。此外,华为还有Hi3518和Hi3516两款开发板适用小型系统类设备(参考内存≥1MB)。
  • 爱芯元智沉浸式黑光体验,AI赋能让ISP没有上限 人工智能产业的逐渐成熟,驱动了AI芯片的快速发展,也对人工智能芯片的画质提出了更高的要求,现有的镜头与传感器在物理学上已经接近极限,ISP(Image signal processor)作为SoC中负责画质处理和提升的主要单元,其发展也已经达到‘天花板’,业界迫切需要找到新的方式来提升画质。AI赋能ISP成为画质升级的最优解。
  • 华为或于2022年推出麒麟830/720芯片,工艺上“退”至14n 日前, 外媒消息称,华为有望在2022年更新两款麒麟芯片,分别是麒麟830和麒麟720,均采用14nm制程工艺。此外,有网友认为这则爆料不可信,在该网友看来,海思的这张海报想说的,应该是不会放弃麒麟的设计。他还特别提到,中芯国际好像也因为制裁的缘故没有办法给华为供货吧?这种情况下华为能找哪家代工呢? ​
  • 哪种蓝牙MCU最适合您的设计? 当今的蓝牙微控制器是集成的微小奇迹。即使是空间要求最小的嵌入式设计中也适用,并将CPU、内存资源和外设以及射频功能所需的元件封装在一起。但蓝牙MCU的型号以及其具有的“蓝色色调”多得让人眼花缭乱、无从选择。
  • 小米12 Pro 拆解:屏幕、性能、续航、声音、样样都 Pro? 小米12 Pro发布后,微机分WekiHome与艾奥科技分别在B站发表了拆机视频,微机分WekiHome在视频简介中甚至表示“作为 2021 年度最后一台旗舰手机小米12 Pro,屏幕,系统,相机,续航,声音,样样都 Pro”。感兴趣的小伙伴不妨与EDN小编一起,看看小米12 Pro内部做工用料到底Pro到了什么程度。
  • 太阳能汽车是终极的电动汽车吗? 为何只考虑通过电网或先进的家用太阳能、水力、地热系统充电的电动汽车呢?为何不干脆将太阳能电池置于车顶上,从而有可能不需要连接到任何系统呢?它是属于个人的,可以携带,也是可以从永无止尽的免费来源取得的终极能源类型——还有什么比这更好的呢?
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了