安卓

首页 » 常识 » 常识 » 方舟编译器采用IOS系统方案,流畅度飙升
TUhjnbcbe - 2024/3/6 17:03:00

日前华为在P30系列手机发布会上推出方舟编译器,据华为官方介绍,方舟编译器能从根本上提升安卓系统的流畅度。为什么方舟编译器会有如此大的魔力让华为能夸下如此海口,今天就来和大家简单了解一下。

首先我们要理解的是编译器这个概念,现在编程得到的可执行二进制程序是直接给cpu运行,但是直接用cpu能理解的二进制直接编写程序不太可能,因此就诞生了编译器,它能将方便我们理解编写维护的汇编语言转化成为cpu能理解的语言,也就是说编译器本身就是一个翻译程序,安卓本身是基于linux进行开发,大部分程序都是基于Java语言编写。

由于Java语言的特殊性,安卓程序需要通过虚拟机转化为机器码,为了提高效率,安卓5.0正式使用了ART取代虚拟机,ART是一个AOT编译器,在我们安装软件的过程中将汇编语言编译成机器码,大大提升程序的执行效率,不过这样带来的另外一个问题就是程序安装好时变长,而且由于Java本身的限制,部分特性依然需要虚拟机出来帮忙,安卓的垃圾回收机制也是个问题,分配给之前打开程序的内存空间不用的时候,虚拟机就会启用GC,一启用所有应用线程就会罢工,等到GC结束才会重新开始干活,这就是为什么安卓手机偶尔会卡顿一下的原因。

方舟编译器之所以能从底层提升流畅度,就是因为方舟解决了这两个问题,目前公开信息表示方舟编译器同样基于AOT,厉害的地方在于方舟将曾经及时进行的翻译过程转变成了静态的机器码,也就是说将翻译器气给踢了出局,程序能直接在CPU上运行,带来的执行效率提升立竿见影,而且方舟采用了引用计数法取代GC,配合消除还算法进行内存的实时回收,避免GC集中式的内存回收所导致的卡顿。

就是说手机发现你这个程序没有在用了,就会实时回收之前分配给它的内存,经过方舟编译器重新编译的安卓应用,执行效率上有了质的飞跃,就等开发者们用方舟编译器重新编译自家的应用了。不过目前效率执行最高的还是IOS的LLVM编译器,因为IOS上的程序都是直接用统一的语言编写,直接就能用LVVM编译成机器码在cpu上运行,这也是IOS流畅的根本原因,方舟编译器做的就是让安卓应用像IOS应用一样运行,你说华为这波利不厉害。

1
查看完整版本: 方舟编译器采用IOS系统方案,流畅度飙升