6月3日,荣耀产品总经理熊军民在知乎发布文章《熊叔随笔:聊一聊我眼中的方舟编译器》,详解了安卓编译器的缺点,与方舟编译器的改进,揭开了方舟编译器身上的神秘面纱。
熊军民表示,编译器是一种将“高级语言”翻译为能直接被计算机或虚拟机执行目标代码的程序,编译器的效率直接影响程序运行性能和效率。
谷歌此前多次调整过安卓的编译器模式,从Dalvik虚拟机、到JIT、再到ART,在Android 7.0版本,谷歌采用了AOT+ JIT+解释执行的混合模式,为了达到一个安装时间、空间占用和性能之间的平衡。
但熊军民认为目前Android依然存在边解释边执行的代码运行方式,Google也多次调整编译代码的模式,但是相比iOS依然有性能差距。
而方舟编译器则解决了这一问题。
方舟编译器最大的优势在于它绕过了VM。方舟编译器是首家完全替代语言虚拟机的静态编译器,完全不需要解释器。兼顾Java开发效率和C语言运行效率的编译器。
相比安卓现有的编译机制,方舟编译器拥有3大优点:
1.方舟编译器是一种静态的编译方式,而现有的安卓系统,运行一个应用程序首先启动虚拟机,然后读入应用程序代码,逐条解释执行。会占用较多的处理资源,影响程序执行的效率。当然,也有包括AOT或JIT等提前或运行时的编译技术,把部分程序转换成机器码直接在CPU上执行。但是,仍就无法做到100%做到摆脱虚拟机的执行,这也是当前安卓阵营不如IOS阵营的关键。
2.华为方舟编译器的静态编译方式可将语言里的动态特性直接翻译成机器码,手机安装应用程序后可全速运行程序,彻底消除虚拟机的弊病,带来效率上的极大提升。
3.方舟编译器是在开发环境部署的编译器,而现有编译过程,主要发生在手机上,带来额外的资源消耗。
有鉴于此,华为方舟编译器能带来系统性能的显著提升。
1.EMUI 9.1对系统主要服务System Server进行静态编译化。带来了系统流畅度提升24%,系统响应性能提升44%以上的收益。
2.微博极速版实现了静态化编译后,流畅度提升高达60%。
此前荣耀总裁赵明曾高度评价方舟编译器:“这是一个极其巨大的提升,我们一直期待着安卓系统能够超越iOS。荣耀20系列经过方舟比那一起的处理之后,我们拥有可以媲美iPhone的体验,甚至来说在某些方面我们已经优于它。”