方舟编译器背后的黑科技,你造吗?你想知道的都在这里了!

2019-04-25 18:24发布

在前不久的华为P30系列国行发布会上,方舟编译器惊艳亮相,据余承东介绍,华为方舟编译器能解决现有安卓系统存在边解释边执行的低效现象,能够突破原先的运行模式转变为全程使用机器码执行程序。

据华为公布的官方数据称,方舟编译器能够大大提高软件的运行效率,系统操作流畅度提升24%、系统响应速度提升44%、三方应用操作流畅度提升60%。其中,华为方舟编译器还面向业界开源,这对于解决安卓系统碎片化问题将起到革命性的作用。

​方舟编译器自面世以来就备受各界关注,今天,华为王成录将揭开其神秘的面纱,华为方舟编译器背后黑科技,到底是怎样的呢?我们一起来看看。

编译器简单来说是一个“翻译者”的角色,它的主要功能就是将程序员的高级语言翻译成机器码,从而赋能手机听懂并执行人类的指令。而编译器的开发需要长期大量的研发积累,目前在国内仍处于“无人区”阶段,华为从2009创建编译组开始,到2013年华为方舟编译器架构构想(方舟前身)正式提出,再到2019年方舟编译器的正式应用,这其间花了整整十年,这十年间的无数失败、无数次的重来,其间的艰辛,编译组的科研人员是最有话语权的。

直接编译出机器指令,无需繁琐的虚拟机运行

方舟编译器是业界首个多语言联合优化的编译器,开发者在开发环境中可以一次性将多语言统一编译为一套机器码,运行时无需产生跨语言带来的额外消耗,并可以进行跨语言的联合优化。换句话说,方舟编译器在开发环境中就可以完成全部代码的编译,手机安装应用程序后无需依赖虚拟机资源,即可全速运行程序,带来效率上的极大提升。

高效的回收机制

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

方舟可针对不同应用灵活编译优化

安卓ART的AoT和JIT动态编译因为是运行在手机上,受资源所限,因而只能使用简单的优化算法。而方舟编译器由于是在应用开发阶段进行编译,所以可以允许不同应用灵活采用不同的编译优化方案,而且因为在开发环境编译不会受到手机性能的限制,可以使用更多先进的优化算法,从而使得每个应用的性能达到最佳。

华为数十年如一日的坚持,让其在众多厂商中脱颖而出,方舟编译器就是很好的例子,让我们期待下它的下一个十年。

文章来源: https://www.toutiao.com/group/6683728427461116419/