方舟编译器,华为的暗渡陈仓

栏目: 服务器 · 编程工具 · 发布时间: 4年前

内容简介:最近几天,华为的Mate20,V20等产品先后更新了方舟编译器,按照华为的说法,方舟编译器可让系统操作流畅度提升24%,系统响应速度提升44%,第三方应用重新编译后流畅度可提升60%。而且华为从多个方面优化了系统。去年,华为的GPU turbo技惊四座,如今又搞出方舟编译器,华为意欲何为呢?关于安卓慢的问题,从2008年安卓一问世就有人提了。安卓是在Linux系统上的一个Java虚拟机。代码是Java写得,这让安卓早期具有非常好的兼容性。所以后来能有X86安卓。

最近几天,华为的Mate20,V20等产品先后更新了方舟编译器,按照华为的说法,方舟编译器可让系统操作流畅度提升24%,系统响应速度提升44%,第三方应用重新编译后流畅度可提升60%。而且华为从多个方面优化了系统。

去年,华为的GPU turbo技惊四座,如今又搞出方舟编译器,华为意欲何为呢?

一、 安卓为什么慢?

关于安卓慢的问题,从2008年安卓一问世就有人提了。安卓是在 Linux 系统上的一个 Java 虚拟机。代码是Java写得,这让安卓早期具有非常好的兼容性。所以后来能有X86安卓。

同时,用Java语言编程,非常有利于开发者迁移到安卓平台,因为在安卓之前,很多功能手机都是支持Java的,手机程序的开发者都用Java,这是谷歌为了普及安卓做的选择。

但是,兼容和普及是有代价的,这就是速度。

安卓早期版本用的是解释执行加上编译执行,编译用的JIT(Just in time)模式,这个效率是巨慢的,所以安卓早期效率很低。

在 Android 5.0后正式采用 ART (Android Runtime)来解决之前的Java 代码执行效率问题。系统会把所有Java代码提前编译为机器码,提升执行效率。但是,这种模式安装速度慢、占用磁盘空间大。

Android 7.0后,Google做了很大的改进,安装的时候,还是解释执行,编译用的JIT(Just in time)模式。这样安装速度快,而你使用以后知道你常用什么了,再利用空闲的时候预先编译。

Android 8.0,谷歌改进了解释器,解释模式执行效率大幅提升。

Android 10.0上提供了预先放置热点代码的方式,应用在安装的时候就能知道常用代码会被提前编译。

就是说,现在谷歌的安卓已经经过很多次改进,在安装速度、执行速度上有了很好的平衡。

安卓虽然还慢,但是相比以前已经有了巨大的进步。

二、方舟编译器要做什么?

华为发现,现在95%的程序,为了效率,都是C++和Java混合开发的。

然后Java代码在通过安卓的虚拟机变成机器码,而C++的代码直接变成机器码。

于是,华为推出方舟编译器,不管你用什么语言,Java也好,C++也好,直接用我的编译器编译成机器码。

更可怕的是,华为搞了自己一套Runtime,用方舟编译了以后,直接连过去。这样华为脱离安卓的限制,做很高程度的优化。

用户如果还在安卓限制中,全部执行机器码,优化程度也离不开安卓。而华为做底层,同样给安卓开发的程序,经过华为方舟编译器的编译,连接到华为底层的Runtime,就可以优化到非常快。

所以,华为说系统操作流畅度提升24%,系统响应速度提升44%,第三方应用重新编译后流畅度可提升60%。

三、 暗渡陈仓

从明面上看,华为搞这个方舟编译器,是为了优化华为手机的速度,大家都用ARM公版,华为怎么能更快一点呢?搞底层的Runtime和编译器,一样给安卓开发的程序,用我的编译器,连接我的Runtime,打包成机器码下载,速度就快了。

但是,这意味着安卓的分裂,经过华为方舟编译器编译出来的机器码,其他手机不能用!

就是说,一个公司开发一套安卓APP,让所有手机都能用是一个编译,用华为的方舟编译器便于出来,就只能华为用,而且速度比通用编译的更快。

这就很可怕了,如果有一天,华为和谷歌闹翻,不用安卓了,只要华为这个编译器在,用户给谷歌开发的程序,一编译,就可以给华为的手机用。那华为就不需要谷歌了,安卓的生态系统直接拿来用就行了,而且速度比谷歌的更快。

这才是华为搞编译器的终极目的,明修栈道,暗渡陈仓。

特别声明:本文为DoNews签约作者原创,文章版权归原作者及原出处所有。转载请联系DoNews专栏获取授权。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Introduction to Computer Science Using Python

Introduction to Computer Science Using Python

Dierbach, Charles / 2012-12 / $ 133.62

Introduction to Computer Science Using Python: A Computational Problem-Solving Focus introduces students to programming and computational problem-solving via a back-to-basics, step-by-step, objects-la......一起来看看 《Introduction to Computer Science Using Python》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具