专栏名称: 网易科技
网易科技频道,有态度的科技门户。
目录
51好读  ›  专栏  ›  网易科技

让华为P30运行如飞的,是这个叫方舟的……

网易科技  · 公众号  · 科技媒体  · 2019-04-29 14:09

正文

请到「今天看啥」查看全文


消除了跨语言调用开销

王成录向记者们详细阐述了方舟编译器能提升流畅度、响应能力的工作原理。

首先,方舟编译器是多语言联合优化编译器,“消除了跨语言调用开销,这是影响Android性能开销比较大的核心原因之一。”



据王成录介绍,目前Android应用市场里95%的APP都是多种开发语言:“逻辑部分,都是Java代码,但是为了增强它的能力,可能所有的APP的开发者,都会用C写个库供Java来调用。”

Java是一门面向对象编程语言,具有简单性、面向对象、分布式等特点,虽然运行效率不及C++,但开发效率高、跨平台性更强的优势,让JAVA成为了安卓开发的首选,而通过JNI调用本地C/C++库也是目前开发者们都在做的。

但,Java和C语言之间使用接口调用,必然会形成额外的性能开销;王成录表示,华为方舟编译器将不同语言代码在开发环境中编译成一套可执行文件,这样执行效率更高。

消除了影响性能的虚拟机机制并实时回收内存

王成录认为华为方舟编译器的第二大特点是消除了影响性能的虚拟机机制。



在安卓系统发展过程中,虚拟机不可被忽视:Android系统是以Linux为内核构建的,为了降低应用的开发难度,并将其适配到不同硬件配置的设备上,Google在Linux内核之上构建了一个虚拟机,Android应用使用java开发,运行在虚拟机之上。

在安卓4.4之前,Dalvik就是安卓系统上使用的虚拟机,基于寄存器。从Android 2.2开始,Dalvik开始使用JIT(Just In Time)技术来进行代码转译,将频繁调用的代码转换为二进制码,不用每次解释,而在此前Dalvik虚拟机将所有的Java语句逐句解释执行,效率很低。







请到「今天看啥」查看全文