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

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

内容简介:最近几天,华为的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专栏获取授权。


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

查看所有标签

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

Java EE WEB开发与项目实战

Java EE WEB开发与项目实战

李俊青 / 华中科技大学出版社 / 2011-11 / 59.80元

本书采用工程案例的形式,将日常Java EE项目开发所涉及的技术要点进行了解析,系统介绍了Apache的安装、Tomcat的安装、虚拟主机的配置、开发工具的搭配使用、验证码的使用、过滤器的使用、密码的加密与解密、JavaMail邮件发送、Web在线编辑器的使用、文件上传、数据库连接池、Ajax与Servlet的身份认证、Struts框架的应用、JSF框架的应用、Spring框架的应用、Hibern......一起来看看 《Java EE WEB开发与项目实战》 这本书的介绍吧!

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

在线压缩/解压 HTML 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具