华为吓人的GPU Turbo技术,跟据说能提升60%流畅度的方舟编译器,性能到底如何?

狐狸灬糊涂


前一阵子,华为P30系列发布,最为明显的升级就是相机拍照部分,外加上P20打下的基础,突破了自己,就算是突破了整个行业,然而从长远的眼光看,华为P30的发布带来的拍照提升只是例行升级,真正懂行的人都注意到了华为推出的“方舟编译器”,也看出来了华为真正的技术实力。

方舟编译器简单来说,就是可以将高级语言比如Java,直接编译成变成机器码的技术。它最大的优势就在于绕过了安卓系统的VM(虚拟机),从使得应用可以像苹果引以为傲的iOS系统一样,转化出的机器码可以直接由CPU运算,从而使得运行效率大大提升。

概括的话,什么事都变得很简单,为了证明方舟编译器的技术含量,我想还是有必要详细介绍一下它的运行原理。

经历过九年义务教育的我们都知道,计算机是只认识0101这样的二进制代码。对于人脑来说,直接用这样的二进制代码来编程,显然是不太现实的。于是汇编语言就出现了,属于低级语言,只是一系列的字母指令集,后来为了实现更复杂的功能,高级语言诞生了,比如C语言,Java,python等等,能够用更短的代码实现更复杂的功能。

当然了高级语言计算机是无法直接读取的,这里就需要用到编译器了,而编译器就是将一种高级语言转译成一种低级语言的程序,起到关键的“承上启下”作用,所以编译的复杂程度直接会影响程序的执行效率,比如C语言比Java语言的执行效率高,正是因为C语言编译出来的是CPU可以直接执行的机器码,而Java语言则先是Java虚拟机(JVM)编译Java语言,然后JVM再编译成机器码。所以多出来的这一步就会被放大,影响到应用的运行,这也是安卓系统的应用前期卡顿的主要原因,虽然之后谷歌针对JVM做出了一系列的改进和优化,但还是难以彻底解决。

反观苹果的iOS系统,直接使用Clang/LLVM来编译出机器码,就没有安卓还要一个中间层那么麻烦,所以iOS如丝滑般流畅的原因也因为如此,还有一个不可忽视的因素是闭环。而安卓系统的底层是Linux系统搭建的,同时又因为安卓系统开源,为了解决应对不同硬件环境的适配问题,谷歌就增加了基于JIT(动态编译)的虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA应用框架,所有的安卓应用都是运行在这个虚拟机上。

当然了谷歌也知道这样效率不好,于是在Android 5.0版本中,使用了ART模式来替换Davlik虚拟机。而ART是一个AOT (Ahead of Time)编译器,是指在应用运行前就把字节码静态编译成机器码,就避免了每次打开应用都要虚拟机编译的麻烦。然而只是代码的静态编译,Java本身的动态特性,在执行代码过程中会有动态类的加载(就是使用轮子),而静态编译时无法预测会加载哪些动态类。

所以弄了半天,还是需要虚拟机的动态编译能力。而安卓想要像iOS那样流畅,就必须跳过虚拟机,而方舟编译器,解决的就是这个问题。

根据官方信息,华为的方舟编译器也基于AOT编译器,不过方舟编译器创造性地静态编译了动态类,把所有的Java代码都编译成机器码,这样也就可以完全避开虚拟机,直接编译成机器码在手机CPU上运行,也就能够有iOS系统一样的高效。除了直接编译之外,方舟编译器也优化了编译算法,并且在内存回收方面也有一定的改进,不仅是应用,对系统运行的流畅度也有很大的提升。

当然了,如此重大的提升,难道谷歌就不会想到吗。想得到,但力不从心。因为想要使用方舟编译器,得从应用的打包编译上架重新开始,开发者必须按照方舟编译器的标准重新编译应用安装包,所以这并不只是安卓系统,也需要应用的配合才能使用,目前好像只有微博极速版做了适配。

当然了,华为也宣布将方舟编译器全面开源,提供完整的编程框架和应用开发工具,将更多的开发者参与到方舟编译器的开发和使用,共同提升整个安卓生态的体验。方舟编译器编译是基于ARM指令集开发的,所以全面开源意味着其它厂商的安卓系统也可以使用。

这里我们就能看出来华为对研发的投入,以及对生态的规划,并不只是说说而已。开开发布会卖卖手机只是小打小闹的事情,华为的目标是全方位的生态建立。不管你是对华为这个品牌报什么看法,但不得不承认目前在国内只有华为有这样的实力去做整个产业上的事,去构建属于自己的生态,方舟编译器就是这个过程中的催化剂。


饭子音乐


首先,我们先来了解一下GPU Turbo。被称为——革命性图形处理加速技术GPU Turbo,打通了EMUI操作系统以及GPU和CPU之间的处理瓶颈,通过软硬件的优化协同,实现了图形处理效率的大幅提升,图形处理性能提升了约60%,而且降低了功耗,从多方面进行提升,在这种程度上令人惊叹。

其次,如荣耀20Pro,便是拥有方舟编译器的手机。它能绕过虚拟机直接执行应用,降低学习和使用成本,不仅速率能大大提高,还能更有针对性地优化不同的软件。在流畅度方面,是受到众多用户的高度盛赞的,性能好。


科技趣闻


既然叫方舟编译器,那本质还是个编译器,所以我们先了解一下什么是编译器?其实就是将我们所理解的语言转化为机器认识的0和1的程序,当然要是更准确的说法应该是将高级语言转化为低级语言。其实在安卓中是有着编译器存在的,毕竟如果没有编译器的话不论任何一款软件或是系统都寸步难行。

安卓的开发核心是什么?不少人以为是linux,其实安卓的开发核心是Java(这也就是为什么近几年的java工程师比原来还吃香),因为Java自身有着强大的跨平台性,所以安卓为了开发资源更加丰富也就转投了Java阵营,虽然说Java很不错,但Java的跨平台性也必须要提一下,因为这就是方舟编译器存在的核心。

那么方舟编译器是什么意思呢?就是打算革了ART、虚拟机的命,再说的清楚一点,安卓目前的运行方式从AOT+ART变成了JIT+AOT+ART,再加上ART本身还是一个虚拟机,如此的组合也就代表着安卓的每个程序运行时还是要通过虚拟机和实时编译的方式进行运作,虽然相比从前的JIT+Dalvik效率提升了不少,但依然还是比编译型语言速度慢上一些,这也是为什么安卓相比IOS来说应用启动运行流畅度都要差上一点。

那么方舟编译器呢?从如今知道的消息来说,敢称自己系统响应、系统操作和第三方APP流畅度都有提升,基本上就是相当于前后段全部重写,不过重写的选择就非常有趣了,目前来说海思还不支持llvm,也就是没有机器模式,所以后端用的就是GCC,而前端因为海思抱紧了ARM架构大腿,所以参考ARM的前端是在clang上开发的,华为应该也是在clang的基础上做二次改进,所以前后端的选择有很大可能性是clang+GCC。

那么方舟编译器大面积推广的可能性有多大?说实话不大,参考安卓7.0版本开始使用AOT+JIT就能够看出来,况且目前没看到哪个开发用ARM的编译器,考虑到兼容问题自然还是抱紧官方的大腿更好。未来方舟编译器是否能成功,还是要看兼容性问题是否能够完美解决,以及华为是否能够拉上盟友一同造势。


影音真烧钱


华为980 就已经能达到 服务器的级别了 美国针对华为 可能就是因为这个 美国宇航局要用麒麟980 作为最高服务器端 美国军方也是要用麒麟 可华为不给 所以美国才禁华为的 980这处理器 的速度 都能用在时光穿越了 都能造出黑洞


我的天啊我叫什么啊


王者荣耀gpu 50fps 最近升9.1.0.321 可以达到60fps


松鼠Python


就是个彻底的噱头,我的mate10pro升级以后是废了,流畅度是比以前差些的,谁特么昧着良心说更流畅的首先会怀疑你做虚假宣传


默默你我


不知道,反正用了快2年的m10p,才刷最新的9.1……一点都不卡,流畅的很……


kaixinmaju


方舟编译器是个厉害角色 但是效果,,,,跟苹果的0b-c相比 查的有点远 这几年华为最大的改变 还是ui设计吧 感觉比以前好看太多了


kingorcsk2211


非常好!速度提升,续航增加👍


樊晓辉96979876


他们吹的谁知道啊,目前为止也没有第三方专业评测出来,全是他们自己说的


分享到:


相關文章: