运行速度大突破华为《方舟编译器》详解

2019-10-21 10:30宋奇
计算机与网络 2019年9期
关键词:方舟安卓开发者

宋奇

2019年4月11日,华为春季发布会上,除了P30系列,另外一个词也在程序员届火了一把———“华为方舟编译器”。据介绍,华为《方舟编译器》可以让安卓性能突飞猛进。近日,华为王成录博士对《方舟编译器》的原理进行了讲解,表示华为从2009年就创建编译组,期间推出自研编译器HCC、编程语言CM等,一直到如今推出了《方舟编译器》。

什么是编译器

编译器是连接人类世界与机器世界之间的一座桥梁,同时也扮演着“翻译者”的角色。它将程序员使用的高级语言翻译成机器能明白的机器码,从而使得手机能够听懂并执行人类的指令。现有的安卓系统主要是在手机上进行编译,往往有部分程序需要一边转换一边执行,影响程序执行的效率。

优化编译器对程序运行性能及用户体验有显著影响,但它的开发,从系统软件到应用软件,需要投入大量的时间和精力进行研发,这一板块在国内尚属“无人区”。华为已经在研发编译器的路上积累了多年,早至2009年华为就创建了编译组,到2013年推出自研编译器HCC,终于,在2019年《方舟编译器》正式与大家见面。华为在移动通信领域遥遥领先,这背后是华为人前赴后继的努力和无数次尝试。

《方舟编译器》安卓性能革命突破

当前大部分安卓应用都涉及不同的开发语言,不同语言形成的代码需要在运行态中进行协同从而产生额外消耗。而《方舟编译器》是业界首个多语言联合优化的编译器,开发者在开发环境中可以一次性将多语言统一编译为一套机器码,运行时无需产生跨语言带来的额外消耗,并可以进行跨语言的联合优化,提升运行效率。

安卓自身的编译技术在不断的发展,但始终需要在运行中依赖虚拟机来进行动态编译和解释执行,对系统资源消耗较大。而《方舟编译器》在开发环境中就可以完成全部代码的编译,手机安装应用程序后无需依赖虚拟机资源,即可全速运行程序,带来效率上的极大提升。例如:EMUI 9.1仅仅对系统组件System Server应用了华为《方舟编译器》后,就带来了系统操作流畅度提升24 %,系统响应性能提升44 %的收益。

《方舟编译器》,高效的回收机制

内存管理是程序开发与运行时需要重点考虑的部分,也和系统流畅度息息相关。安卓在内存回收上采用集中回收机制,全局回收时更需要暂停应用,这也是随机卡顿的根本原因之一。而《方舟编译器》提供了更高效的内存回收机制,回收时无需暂停应用,随时用随时回收,大大提高了运行速度。

《方舟编译器》应用级编译优化

代码优化是编译器最为核心的功能,也是评判一个编译器优劣最重要的标准。当前由于安卓应用使用了虚拟机机制,难以面向不同应用对虚拟机进行针对性的灵活优化。安卓ART的AoT和JIT动态编译因为是运行在手机上,受资源所限,因而只能使用简单的优化算法。而《方舟编译器》由于是在应用开发阶段进行编译,所以可以允许不同应用灵活采用不同的编译优化方案,而且因为在开发环境编译不会受到手机性能的限制,可以使用更多先进的优化算法,从而使得每个应用的性能达到最佳。

简单易用,开放开源

华为在持续进行技术创新的同时,也注重将技术成果回馈给行业,华为《方舟编译器》在开发构建的阶段为开发者提供快速的集成编译环境,大大降低了開发者的学习成本和使用成本,令产业与用户受益。华为《方舟编译器》会从2019年开始全面开源,邀请整个产业及其相关链条一起共同关注和提升安卓性能体验。

华为将在2019年8月的华为终端开发者大会宣布方舟编译框架代码开源,后续会在2019年11月的绿盟开发者大会实现完整《方舟编译器》代码开源。

猜你喜欢
方舟安卓开发者
洪方舟《战疫·长城》 《西凉鼓乐图》
林露露,你就是童话里那个天使
让iPhone变安卓,这是真的野
文物表情包
Recent Promotion and Commercialization of Kun Opera
“85后”高学历男性成为APP开发新生主力军
16%游戏开发者看好VR
学习安卓应用开发
安卓机器人
诺伍兹的方舟