所有文章 > 正文

十年磨一剑 !方舟编译器已上线

作者: GCT

时间: 2019-09-03 18:33

8月31日,华为方舟编译器开源官网正式上线,方舟编译器代码正式出现在华为开源平台HUAWEI OpenSource上,这意味着开发者能在官网上获取相关代码、了解和学习方舟编译器。

下载 (1).jpg

何为编译器?编译器就是将“一种计算机语言”翻译为“另一种计算机语言”的程序。高级计算机语言便于开发者们编写、阅读交流以及维护,如C、C++、Java等,而低级机器语言是计算机能直接解读、运行的机器代码。

编译器是连接人类世界与机器世界之间的一座桥梁,任何在手机上的程序都需要经历软件开发的过程,软件开发使用的语言是易于程序员理解的高级语言,程序在手机上运行需要转换成可以高效执行的机器码,这样的转换过程就是由编译器完成的。可以说编译器是用来生成软件的软件,是连接软件与芯片的桥梁,其性能、效率直接影响到最基础的消费者体验。

当前的安卓系统使用Java作为编程语言,易于开发,但是不会将代码直接编译成机器语言,程序运行时有相当一部分代码还需要通过手机上的虚拟机临时同步编译,影响程序执行的效率。华为方舟编译器采取了静态编译的方式,是首个取代了安卓虚拟机模式的静态编译器。

余承东表示,方舟编译器有别于其他编译器边解释边执行的机制,采用了全程机器码高效运行程序的机制。而此次选择开源,是为了吸引广大开发人员,为鸿蒙系统生态链奠定基础。目前华为已与46款应用展开合作,包括天猫、京东、今日头条、QQ、支付宝等主流应用。华为称将对各类流行应用进行编译优化,并在未来不久上线。目前华为系的手机有20余款将支持方舟编译器。

从2009年华为成立编译小组,2012年成立编译器与编程语言实验室,到今年的方舟编译器,华为可谓十年磨一剑。根据华为的介绍,方舟编译器在采用了机器码高效运行程序后,架构进一步得到优化,性能也有了明显提升。通过华为方舟编译器编译后的程序系统,操作流畅度提升24%,系统响应速度提升44%,三方应用操作流畅度提升60%。

方舟编译器之所以有较高的开发效率和运行效率,是因为方舟编译器采用静态编译方式,而现有的安卓系统,运行程序首先要启动虚拟机,之后读入程序代码,在进行逐条解释执行,这样会占用较多的资源,影响程序执行的效率。而方舟编译器可将动态语言直接翻译成机器码,手机安装应用程序后可全速运行程序,彻底消除虚拟机的弊病,大幅提升了效率。

方舟编译器的优势

多语言联合:将同一应用中的不同语言代码联合编译、联合优化,消除语言间的性能“鸿沟”,降低开发者的优化成本。

软硬件协同:编译器与芯片实现软硬件协同优化,充分发挥硬件能效,应用体验更佳。

多平台支持:支持面向多样化的终端设备平台进行编译和运行,根据设备特征提供便捷的开发与部署策略,提高开发效率。

轻量运行时:通过编译器的语言实现能力和优化能力增强,应用运行时的开销更小。

09033.png

方舟编译器架构示意图

当前方舟编译器支持Java/Kotlin程序字节码的前端输入,其它编程语言的支持(如 C/C++/JS 等)还在规划中,方舟编译器的中间表示(IR)转换器将前端输入转换成方舟IR,并输送给后端的优化器,最终生成二进制文件,二进制文件与编译器运行时库文件链接生成可执行文件,在方舟的运行环境中就可执行该文件。

[关于转载]:本文为“AMiner”官网文章。转载本文请联系原作者获取授权,转载仅限全文转载并保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“AMiner”官网。谢谢您的合作。

二维码 扫码微信阅读
推荐阅读 更多