安卓性能革命?华为方舟编译器解密

来源 :电脑爱好者 | 被引量 : 0次 | 上传用户:s5067744
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读


手机底层和高级程序间的“翻译官”


  对于手机的底层系统和CPU来说,它们只“认识”0和1这样的机器码,而在安卓上运行的APP大多是由Java开发的,这种高级程序语言必须转换成机器码,才能够被底层系统所识别(图1)。
  从高级语言的源代码到系统底层目标码的转换,是由编译器来完成的,它的角色比较接近现实中的翻译,因为我们人脑(类似安卓手机的CPU)不懂外语,想要和外国人交流的话就需要借助翻译(即编译器),将外语转换为我们可以理解的母语。好的翻译可以影响双方交流的流畅度,而一个好的编译器同样直接影响着手机系统和软件的运行效率。


方舟编译器为安卓加速


  此次华为开发的方舟编译器是怎样提高手机系统效率的呢?
  开发安卓应用目前用得最多的是Java,它所创建的源文件经过编译生成Class.dex文件,最后被打包成DEX字节码文件,再由安卓系统中的Dalvik、Art(编译器)负责将DEX字节码翻译成机器码,手机CPU识别出机器码中的操作命令后即可实际执行了。有兴趣的朋友可以用72ip解开安卓应用的APK安装文件,就会发现其中包含有Class.dex文件(图2)。



  每次安卓应用运行时,Dalvik动态地将一部分Dalvik字节码解释为机器码。随着应用的运行,更多的字节码被编译和缓存,这就是典型的“边解释边执行”的安卓运行模式。虽然这种模式具有更小的内存占用和更少的设备物理空间占用优势,但是也导致安卓系统的运行效率更为低下。这也是为什么很多安卓机型在硬件配置上可以甩掉iPhone几条街,但是系统流畅度仍然不如iOS的根本原因(图3)。



  另外一方面,由于Java的跨平台特性是靠字节码实现的,这就导致应用运行时,必须先将高级语言转换成字节码,再将字节码转换成机器需要的语言,而且还得需要虚拟机环境才能运行,过多的中间环节使得运行效率进一步受到影响。
  针对这一问题,方舟编译器—方面从机器码的编译效率入手,它不像传统的安卓编译器那样“边解释边执行”,而是将动态编译改进为静态编译,这样可以做到全程执行机器码高效运行程序,大大缩短了程序响应时间。这有些像我们在优酷上看电视连续剧,传统的安卓是一集集按部就班地播放,方舟编译器则类似使用了快进的方式快速预览全集,这样看连续剧花的时间更少,但是该有的劇情一个都不会少(图4)。



  另—方面,方舟编译器摒弃了虚拟机运行环境的依赖。现在安卓上的应用95%都涉及到多种语言的开发,如C、C++、Java等,不同的语言代码保持独立,在运行环境中进行协同,因此会产生系统性能的部分损耗。比如大部分依靠Java开发的应用需要虚拟机环境才能运行,这无形中增加了性能的损耗,方舟编译器则可以做到将不同语言的代码放到同一套编译好的执行文件中,省去虚拟机额外的损耗,从而提高效率(图5)。
  通过上述两方面的优化,部署方舟编译器的手机可以有明显的速度提升。根据华为发布会公布的测试结果(内部测试):EMUI 9_, 1中仅仅对系统组件System Server使用方舟编译器进行优化,就可以带来24%的系统流畅度提升,系统响应性能提高44%。目前第三方APP适配后(微博极速版)操作流畅度可以提升60%。现在配备的方舟编译器的P30 Pro已经上市,从网友实际使用体验看,系统运行速度和同等配置机型相比也有明显的提升(图6)。但是否真能与官方宣传数据相符,还需要静待第三方权威机构的测试结果。


安卓性能提升任重道远


  华为计划在2019年1 1月的绿盟开发者大会上将完整的方舟编译器代码开源。如果开发者都可以使用统一的方舟编译器,那么安卓底层编译开发就可以实现统一化,大大降低碎片化的问题,改善其性能劣势。
  不过方舟编译器毕竟是针对系统底层的优化,需要海量第三方应用的开发和适配,这是一件非常花费时间的事情。而且不是先进的编译技术就一定能“一统江湖”,安卓应用的生态现极为混乱不堪,各厂商对系统优化的理解也均不相同,在大家没有形成统一意见时,利益竞争往往会摆在第一优先级。“方舟”是未来的主流还是华为的自娱自乐,这些都有待时间来验证。
其他文献
“画图”轻松绘制小猪佩奇  不少朋友担心自己不会画画,其实只要能画出简单的几何图形,“拼装”后就可以绘制出各种各样的小猪。画图软件不需特意寻找,使用系统自带的软件即可。以Windows10为例,在“开始”菜单的搜索框中输入“画图”,找到该应用后点击即可启动。  点击展开工具栏上的“形状”,选中“椭圆”,然后按Shift键不放,用鼠标画出一大一小两个连接的圆形。这里为了方便展示,笔者将图形设置成了不
期刊
1.免费获取全功能正版随便用  办公软件当然要名正言顺用正版。对于个人用户来说,除了免费的金山WPS Office个人版,Ashampoo Office Free也是一個免费的好选择。首先运行下载的安装程序,看到安装需要激活码的提示。不要慌,点击Get free activation key按钮,可以免费获取激活码(图1)。软件会自动连接到其官网,输入我们自己的E-mail地址,点击“申请完全版本
期刊
配置与安装 经验的表现  首先,是不是DIY“菜鸟”从配置单就可以看出来了,要做到选件精准、装机合理,那么就应该明确自己的需求,搞懂类似产品的区别。例如有些人喜欢写酷睿i3、360主板一类的配置,但这些产品属于不同代的产品、不同的品牌型号,价格和性能差异很大,很容易被JS钻了空子(图1)。①某网店所谓的i7+1060高配置游戏主机  其次,要装机够稳,机箱、电源、散热器(散片)也是非常重要的,如果
期刊
1.加载Power View  使用Power View之前,必须先安装Microsoft Silverlight,然后再加载PowerView。启动Excel窗口,点击“文件一选项”,在弹出的“Excel选项”窗口中选择“加载项”,在“管理”处选择“COM加载项”,点击“转到”,在弹出的窗口中勾选“Microsoft Power View for Excel”,点击“确定”(图2)。2.制作Po
期刊
“走鋼丝”的知识共享CCt议  传统版权有两个极端,一端是“版权所有”,另一端是进入公有领域的“不保留任何权利”。而知识共享CC协议(Creative Commonslicense的简称)则在两者之间“走钢丝”找平衡,既可以让创作者“保留部分权利”,又能确保促进文化、知识的进步。CC协议给出了四种权利,即署名权的Attribution(BY)、非商业用途的Noncommercial(NC)、禁止演
期刊
正确认识应用需求  在拟定攒机计划之前,我们都会对电脑的硬件需求有一定的认识,根据这些需求设计配置单,然后进行选购。不过对很多典型应用,我们的认识是否真的正确呢?比如一说到游戏,就想起高端电脑,想起旗舰处理器、高端显卡、电竞键鼠……一说到视频处理,就想起超多核心、超大内存、专业显卡……一说到服务器就更是最高配置+最强散热一类的了。而一说办公、学习电脑,则要么是非酷睿不用,要么是能多省钱就多省钱……
期刊
瘟疫传说:无罪(A Plague Tale: Innocence)  中世纪的欧洲曾经爆发了非常可怕的“黑死病”,它肆虐整个欧洲,造成大量人口死亡,对欧洲文明造成了重大打击。由Asobo工作室开发的这部《瘟疫传说:无罪》便是设定在这个背景下的故事。  这款游戏的海报给玩家留下最深的印象就是一片密密麻麻的鼠群,这些老鼠就像死亡的使者,将可怕的疾病传遍欧洲。在疾病面前,骑士的铠甲与刀剑都变得绵软无力,
期刊
如今几乎所有的第三方APP都需要登录后才能解锁全部功能,此时如何管理无数种账户和密码就是一种令人头疼的问题了。如果你的手机品牌恰好是华为或荣耀,在升级到EMU19.0系统后就能解决上述困扰了。  华为/荣耀手机在升级到EMU19.0系统后,就会在“设置一安全与隐私”中增加—项名为“密码保险箱”的功能(图1)。首次进入该功能需要输入锁屏密码,勾选“密码保险箱”后(图2),在启动某APP,输入账户和密
期刊
廉颇未老尚能饭否  在笔记本厂商的定位中,采用17.3英寸屏幕的机型大都主打高端市场,所以它们在与最新的九代酷睿和GTX16/RTX20独显搭配时售价较高,此时采用八代酷睿的老将在经历几番调价后,就将展露更出色的性价比。如今戴尔游匣G3 -17和机械革命X8Ti Plus的售价就出现了松动,前者已经跌破了8000元,而后者也正逐渐向6×××元价位发起冲击。  目前采用九代酷睿+GTX1650的游戏
期刊
在Windows系統中,我们可以利用多账户实现“多系统”,每个账户都有自己独有的空间,互不干扰。可惜,Android系统自身并没有提供类似的功能,想获得多账户的体验,就只能依靠手机现有的功能替代了。  以华为/荣耀手机为例,在EMUI8.×或以上版本的系统中,可在“设置一安全和隐私”中找到“隐私空间”功能的入口,通过该功能就能实现类似双系统的既定目标(图1)。首次使用“隐私空间”需要使用主系统密码
期刊