助力 Android 抗衡 iOS,华为发布方舟编译器!

金百利菲律宾真人在线

帮助Android反击iOS,华为发布了Ark编译器!

传说中的诺亚方舟可以拯救所有人类,那么真正的方舟编译器真的可以打破Android系统性能的原始限制吗?

c841a0f53fd347d993e7b5ff777dbd2c.jpeg

CSDN从东方IC付费下载)

要说P30系列会议上个月在巴黎举行,华为刚刚装满了硬件,只有苹果,那么4月11日,在国内市场上海推出P30系列手机,华为刚看了一眼随便。谷歌。

之所以说这次会议的推出,这次会议的推出,国内消费者不仅热烈追捧P30系列,它比国际版价格低约2000元,也是制造技术的大事。圈子激烈争论,就是华为消费者企业CEO余承东在新闻发布会上花了两分钟“随意介绍”和一个神秘的Android系统性能革命突破应用程序方舟编译器。

没有硬实力,你怎么能取得革命性的突破?

事实上,从名称的角度来看,很多人的第一感觉是“高上”,此外,它似乎也隐喻了未知创新的视野,无限的潜力和丰富的扩张。至于这个名字的由来,很多网友推测这可能与华为研发技术首席科学家Fred Chow有关:

首先,他是开源Open 64编译器的首席架构师,拥有25年的编译经验,并于2014年加入华为硅谷子公司FutureWei;

其次,Fred chow可以被视为“方舟”。

那么真正的Ark编译器的“魅力”是什么?根据余承东在新闻发布会上的解释,华为Ark编译器可以解决Android程序“执行时执行”的低效率,实现架构级优化,并显着提高性能。

为此,余承东还以汽车运营为例突出了两个不同之处:

现有的Android系统:执行解释效率低下;

使用华为Ark编译器:执行机器代码以高效运行程序。

16c26eb10e484b7ca004c35b8f28a5f8.jpeg

其中,执行的解释是什么?执行机器代码的整个过程是什?矗?

Android编译原理

首先,许多程序员可能知道对于CPU,无论是用Java,C/C ++还是Python编写,结果都是一样的,因为它无法直接识别代码。毕竟,目前的计算机只能根据电压的变化来计算,即高电压为1,低电压为0,这个数字系统称为二进制。二进制代码语言也称为机器语言,可以由计算机直接识别。因此,无论是Android应用程序还是iOS应用程序,您都希望在CPU中运行它,您需要将其翻译或编译为机器代码。

接下来,我们将用Android平台进行说明。众所周知,大多数Android应用程序都是由Java开发的,Java代码的执行依赖于Java虚拟机(JVM),后者提供字节码文件(.class)。运行时环境支持在将Java程序编译为.class文件之后,JVM将程序解释为本地系统以供执行。后一个过程通常称为“解释执行”。

另外,还有一种称为“编译执行”的模式,它主要分为两种类型:

JIT(即时编译),运行时编译;

在程序运行之前编译的AOT(Ahead-Of-Time,运行时编译)可以避免运行时的编译性能消耗和内存消耗。

就Android系统而言,JIT功能的首次引入是在Android 2.2版本中。当时,谷歌的目的是提高Android的运行速度。也就是说,当应用程序运行时,JIT编译器将在编译后编译新类。代码将针对相当简化的本机脚本进行优化,以便下次达到相同逻辑时速度更快。但是,JIT并不昂贵,并且JIT在运行时编译成本很高,这很容易导致卡。因此,在4.4版本之后,Dalvik虚拟机逐渐被废弃,而JIT也被弃用。

在随后的Android 5.0系统中,ART正式取代了Dalvik。 ART完全放弃了JIT并使用了AOT编译。这种方法的优点是,当第一次安装应用程序时,字节码将被预编译成原型脚本,使其成为真正的本地应用程序,因此应用程序的启动和运行速度将大大提高。但是,这种方法也有很大的缺点。首先,在安装应用程序时需要完全编译应用程序,并且用户等待安装花费的时间太长。其次,在安装过程中翻译的机器代码占用了大量的内存空间。

因此,谷歌在安装时间,内存占用,电池消耗和性能之间做出妥协,并重新加入了Android 7.0版本中的JIT编译模式。当前的Android系统引入了编译,解释和JIT的混合。运行。详细地说,当安装应用程序时,您不需要像Android 6.0那样完全预编译应用程序,但是根据JIT编译器的分析结果,一方面解释设备充电期间的“冷代码”或其他空闲时间。另一方面,“热代码”由JIT在实际使用时编译。

202af5d15f0d4ea0b62e370aaeb50eec.png

https://source.android.google.com/devices/tech/dalvik/jit-compiler

以上是华为所描述的原有Android系统的低效率。 Ark编译器如何实现机器代码高效运行程序的完整执行?

由于该项目仍对公众开放,目前尚不清楚。但是,许多开发人员推测Ark编译器更有可能直接将应用程序的安装包打包,将APK转换为机器代码格式,以便系统可以直接识别它。最终结果是我们必须等待项目开源才能揭开神秘面纱。

华为Ark编译器对Android系统有什么影响?

但是,于承东在现场表示,Ark编译器不仅可以解决Karton的应用问题,还可以提高系统运行流畅度24%,系统响应速度提高44%,第三方应用程序运行流畅度提高60% 。与此同时,俞承东还呼吁App开发者尽快使用它们。

看来,Android应用与iOS系统之间的差距在性能上有了很大的提升,正在逐步缩小,甚至超过了潮流。实际上,Ark编译器可以实现这样的性能提升,这对企业,开发人员和用户来说无疑是一件好事。对于华为本身,余承东上个月在接受德国《世界报》采访时称,华为已经开发了自己的智能手机和电脑操作系统,以防美国技术巨头不再授权现有系统。到了这个时候,将揭示开源的编译器,整体可以看作华为已经为尚未发布的操作系统的生态系统布局做好充分准备。

所以,对于这个你有什么想法?

参考:

https://m.mydrivers.com/yidian/newsview.aspx?tid=523860&s=cm

https://blog.csdn.net/yifanyingying/article/details/79368410

[结束]

看看更多