您的位置 网站首页 潮科技

十年磨一剑!深入剖析华为方舟编译器的前世今生

30日,余承东在微博宣布,方舟编译器将于8月31日开源。自从今年4月在发布会上亮相后,终于开始真正面向大众。那到底方舟编译器的开源会给我们带来什么影响,方舟本身又有什么优势呢,下面跟着小编一起揭开这层面纱。

十年磨一剑!深入剖析华为方舟编译器的前世今生

重要的时间线

2009年,开始创建编译组,第一批海内外研究人员加入,这便是方舟萌芽最初始的团队。

2013年,正式提出编译器框架构想,这便是方舟的前身。

2014年,方舟项目启动,大批清华、中科院博士加入,其中有在海外的周志德(Fred Chow)。

2016年,成立编译器与编程语言实验室。

2017年5月,方舟编译器上的第一个 Java 程序 “HelloWorld” 跑通。

2017年8月,华为方舟跑通了第一个安卓后台服务DiskStatus。

2018年春节前一周,方舟编译器跑通 Android 系统所有后台服务,并成功移植到手机。

2018年除夕前夜,启动方舟编译手机的Beta测试。

2019年4月,华为方舟编译器在 P30 系列的国内发布会上对外宣布。

2019年8月,华为方舟编译器部分开源

方舟的实质效果

从时间线我们可以看到,方舟最初从一个编译组团队开始,随后变成了实验室。方舟项目最初由一个编译器架构衍生出来,最后逐渐壮大,直到编译第一个Java程序,跑通第一个安卓服务,编译出第一个手机应用,一路势如破竹,一战成名。

由这个路径可以看到,方舟最终是应用到手机上的,特别是在安卓手机上。同样的代码,经过方舟编译后,操作流畅度有显著的提升。在华为自己的P30手机上,使用方舟编译后的安卓后台服务,提升手机系统操作流畅度高达24%,系统响应性能提升44%。下面是一个直观的对比图。

十年磨一剑!深入剖析华为方舟编译器的前世今生

是不是速度快了很多,这就是技术的力量。同时说个题外话,支付宝本周更新了一个版本,达到了应用秒开,很多人瞬间就想到是不是方舟编译器的功劳,后来支付宝回应说,是自己对架构做了优化,并非使用了方舟。

如何点石成金

十年磨一剑!深入剖析华为方舟编译器的前世今生

看到了P30这么流畅的速度,是不是很心动呢。但既然是方舟的功劳,也就是说我们不必都买P30,只要方舟开源,利用方舟编译同样的应用,就能让加载速度有显著的提升。但同时也有人问,既然有方法能让速度更快, 那为什么没有人早点做出来呢,甚至是谷歌自己也不对安卓系统做优化呢,这个就得从编译技术说起了。

计算机的世界里只有二进制0和1,而人类对于这种枯燥的数字敏感度极低,所以发明了高级编程语言,用近似人类的语言来组织程序。编译器就是将高级语言转换成计算机二进制语言的工具。方舟编译器就是将程序员用Java写的程序转换成计算机语言的工具。但是和安卓原来的编译器比,为什么速度会变快呢,这又得从安卓系统的特殊性说起了。

安卓源自于Linux内核,而Linux是用C/C++语言开发的系统,为什么安卓用Java编译也能运行起来?因为安卓为了能够运行Java程序,在系统调用前经过了一个虚拟机,虚拟机就像一个翻译,使Java语言和C语言也能互通。安卓使用Java作为开发语言,真是成也萧何败萧何,依靠众多的Java使用者,和Java本身的高级语言特性,使得安卓的开发门槛降低,一下涌现众多开发者,也使安卓从0开始的生态,短时间内就拥有的众多的应用数量。但经过虚拟机这样的“翻译”,也意味着运行效率降低了。谷歌对这件事自然也是清楚的,从第一代的Dalvik虚拟机,到后来的JIT机制,再到ART,再到安卓7.0的混合编译,安卓的流畅度在逐步上升。

而方舟在优化这条路上,走的是另外一条路线。首先,Java号称跨平台,一次编译多处运行,靠的就是虚拟机。虽然在不同的硬件平台上运行,但有虚拟机这样的中转站,所以可以无视硬件而运行。而首先方舟去掉的就是虚拟机。要想让Java直接去掉虚拟机而运行,是有很多技术上的问题的,这里就不展开了。但通过方舟实验室多年的努力,克服种种难关,终于把这个问题解决了,最终方舟编译出来的应用是不运行在虚拟机上的。去掉虚拟机后运行速度之快是不言自明的,但也会带来一个问题,这个应用不能在不同的手机运行了。如果手机使用的芯片方案不同,那么程序员得根据不同的手机编译不用的应用,而且应用商店也得根据手机的不同,提供不同的安装包。好吧,就是程序员多累一点,对用户来说,完全没增加什么操作。

另外,方舟优化了安卓内存回收机制,可以消除原来的莫名卡顿。

船来了

十年磨一剑!深入剖析华为方舟编译器的前世今生

从官方宣传来说,方舟走的是这四步:

1、干掉虚拟机

2、干掉混合语言调用的开销

3、编译时代码优化

4、使用新的内存回收机制

可以看到,方舟已经不仅仅是一个编译器,更是一个编译运行系统。

随着方舟的开源,会有更多的人为这个系统添砖加瓦,到时手机移动应用也会迎来一个新的时代,我们一起拭目以待吧。


携景网为您提供:十年磨一剑!深入剖析华为方舟编译器的前世今生.

内容均来源于原创和网络转载,所有内容仅代表个人观点,与本网站无关.

转载请保留出处及本站地址:https://www.xiejing.com/technology/10900.html

联系我们

联系我们

客服&投诉: QQ交谈

合作微信:xiejinghezuo

邮箱:

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部