0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

媲美iOS 华为方舟编译器它的玄乎所在

h1654155972.5890 来源:fqj 2019-05-07 11:42 次阅读

自华为P30系列发布以来,火了的除了手机新品本身以外,还有近日越来越“红”的黑科技——华为方舟编译器。

改造Android、媲美iOS安卓手机从此不卡顿……一时间,舆论对华为方舟编译器的渲染近乎神话。据说自发布会结束后,华为软件内部团队的电话几乎被打爆,很多开发者都想了解方舟编译器的更多信息

那么,华为方舟编译器究竟是干嘛的?被余承东称为“安卓性能革命”的方舟编译器对于华为手机的战略发展有何意义?对于Android阵营以及整个产业又将带来哪些影响呢?

传统编译器绕不过去的“坎儿”

首先,来看看啥是编译器?

按照定义:编译器是将“一种语言(通常为高级语言)”翻译成能直接被计算机或虚拟机执行的目标代码,编译器的效率将直接影响程序运营性能和效率。

简单来说,编译器就是人类和机器沟通的桥梁。比如一部手机,里面的程序是由程序员使用高级语言开发的,当我们要启动某个程序(比如打开一个APP)的过程中,编译器扮演着“翻译者”的角色,把高级语言转换成机器能读懂的机器码,并按照指令运行。

编译器如此神通广大,但在安卓的世界里,它却有一道绕不过去的“坎儿”那就是VM。VM是运行在安卓程序中的一个虚拟计算机,它还带了2个翻译——解释器和编译器。当用户打开APP过程中,虚拟机开始运行,为了把高级语言转换成机器能听懂的语言,虚拟机中有解释器和编译器两个翻译在运行;解释器好像现场翻译似的,演讲者讲一句它就停下来翻译一句给编译器听,然后编译器结合上下文一次翻译一大段内容让机器听懂。两个翻译同时发声,手机听到的内容只能是断断续续,一边翻译一边执行,这也是安卓卡顿的一个重要来源。

对此,华为消费者BG软件部总裁王成录指出,目前安卓系统主要在手机上进行编译,虽然谷歌一直在不断提升原生安卓编译器效率,比如安卓5.0版本之前安卓采用解释执行+JIT方式,安卓6.0开始尝试ART虚拟机,再之后采用解释执行+JIT+AoT综合模式。不过为了解决安卓程序开发的兼容性问题,ART虚拟机长期存在,安卓编译器可以通过JIT和AoT编译大部分Java语言,但对于Java的动态特性无能为力,仍然需要边解释边执行,这也导致了安卓系统流畅性下降。

四大亮点

从“边翻译边执行”到提前编译机器码

针对安卓系统面临的流畅性问题尤其是编译器问题,华为方舟编译器的特性恰恰能够绕过VM,消除虚拟机动态编译的额外开销,实现了开发和运行效率的兼容并举,从“边翻译边执行”到提前编译机器码,直接执行。

据王成录介绍,华为方舟编译器主要有以下四大亮点:

亮点1.首个多语言联合优化的编译器,消除了跨语言调用开销。当前大部分安卓应用都涉及不同开发语言,不同语言形成的代码需要在运行态中进行协同从而产生额外消耗,而方舟编译器是业界首个多语言联合优化的编译器,开发者在开发环境中可以一次性将多语言统一编译为一套机器码,运行时无需产生跨语言带来的额外消耗,并可以进行跨语言的联合优化,提升运行效率。

亮点2.程序运行时无需依赖虚拟机,减少了资源占用,同时实现了高效的内存回收机制。

亮点3.第三,方舟编译器可以针对不同应用灵活编译优化。

亮点4.对于开发者学习和使用成本非常低。以上这些技术亮点,均能给应用开发者带来更多优化自己应用的机会。

超越苹果三星的重要加码

用华为的话说,方舟编译器编译的应用在开发阶段就已完成。也就是说,只要是经过编译器编译的应用,在应用市场上上架了以后,用户下载的就是编译过的了。

华为测试结果显示,使用方舟编译器最终将提升24%的系统操作流畅度,提升44%的系统响应能力,以及提升60%的三方应用操作流畅度,“Android系统将比iOS系统还要流畅”。这一技术将正式开源给开发者,让所有人都可以使用方舟编译器对应用预编译。

在华为看来,方舟编译器作为全新的系统及应用的编译和运行机制,从DNA层面对安卓进行了改造,解决了安卓应用边解释边运行的低效问题,让手机能直接听懂“高级语言”,可以说是近几年来安卓阵营最大的根本性革新。能够大幅降低安卓系统随机卡顿的问题,打破了人机之间的藩篱,让用户能直观感受到的就是使用体验更加持久流畅。

笔者认为,也许采用方舟编译器之后安卓系统以及应用将比iOS系统还要流畅这个说法可能言过其实,因为iPhone和其搭载的iOS系统独树一帜、在系统流畅性方面仍然领先安卓。但有了方舟编译器,安卓系统流畅性差、应用开启和运行速度势必将得到大幅提升,缩小与iOS的差距,华为也成为首家在系统层面主动寻求颠覆式创新的手机厂商

对于志在超越苹果的华为来说,缩小安卓与iOS系统流畅性的差距,也将助力华为手机在超越苹果尤其是高端市场更进一步增加实力;而对于超越三星成为成全球第一手机厂商的目标来说,虽然方舟编译器将正式开源给开发者,使用方舟编译器对应用进行预编译的APP也可能将在其他品牌手机上适配使用,但估计华为出品的方舟编译器应该还是在华为自家的EMUI系统上更加匹配、性能才能够得到充分发挥,因此对于旨在超越三星夺冠的华为来说,方舟编译器也将成为其争冠之路上的重要砝码。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为
    +关注

    关注

    215

    文章

    34293

    浏览量

    251152
  • 苹果
    +关注

    关注

    61

    文章

    24348

    浏览量

    196773
  • 编译器
    +关注

    关注

    1

    文章

    1618

    浏览量

    49043
  • 方舟编译器
    +关注

    关注

    0

    文章

    60

    浏览量

    184

原文标题:媲美iOS?华为方舟编译器真有那么玄乎吗?

文章出处:【微信号:C114-weixin,微信公众号:C114通信网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MSP430优化C/C++编译器v21.6.0.LTS

    电子发烧友网站提供《MSP430优化C/C++编译器v21.6.0.LTS.pdf》资料免费下载
    发表于 11-08 14:57 0次下载
    MSP430优化C/C++<b class='flag-5'>编译器</b>v21.6.0.LTS

    TMS320C6000优化C/C++编译器v8.3.x

    电子发烧友网站提供《TMS320C6000优化C/C++编译器v8.3.x.pdf》资料免费下载
    发表于 11-01 09:35 0次下载
    TMS320C6000优化C/C++<b class='flag-5'>编译器</b>v8.3.x

    C7000优化C/C++编译器

    电子发烧友网站提供《C7000优化C/C++编译器.pdf》资料免费下载
    发表于 10-30 09:45 0次下载
    C7000优化C/C++<b class='flag-5'>编译器</b>

    Keil编译器优化方法

    我们都知道,代码是可以通过编译器优化的,有的时候,为了提高运行速度或者减少代码尺寸,会开启优化选项。
    的头像 发表于 10-23 16:35 315次阅读
    Keil<b class='flag-5'>编译器</b>优化方法

    AI编译器技术剖析

    随着人工智能技术的飞速发展,AI编译器作为一种新兴的编译技术逐渐进入人们的视野。AI编译器不仅具备传统编译器的功能,如将高级语言编写的源代码转换为机器可执行的代码,还融入了人工智能技术
    的头像 发表于 07-17 18:28 1458次阅读

    人工智能编译器与传统编译器的区别

    人工智能编译器(AI编译器)与传统编译器在多个方面存在显著的差异。这些差异主要体现在设计目标、功能特性、优化策略、适用范围以及技术复杂性等方面。以下是对两者区别的详细探讨,旨在全面解析其内在差异。
    的头像 发表于 07-17 18:19 1671次阅读

    Meta发布基于Code Llama的LLM编译器

    近日,科技巨头Meta在其X平台上正式宣布推出了一款革命性的LLM编译器,这一模型家族基于Meta Code Llama构建,并融合了先进的代码优化和编译器功能。LLM编译器的推出,标志着Meta在人工智能领域的又一重大突破,将
    的头像 发表于 06-29 17:54 1454次阅读

    SEGGER编译器优化和安全技术介绍 支持最新C和C++语言

    SEGGER编译器是专门为ARM和RISC-V微控制设计的优化C/C++编译器建立在强大的Clang前端上,支持最新的C和C++语言功能。 除其他外,其主要功能包括: 1) 尺寸
    的头像 发表于 06-04 15:31 1398次阅读
    SEGGER<b class='flag-5'>编译器</b>优化和安全技术介绍 支持最新C和C++语言

    C语言:嵌入式开发中的关键编译器角色

    嵌入式程序开发跟硬件密切相关,需要使用C语言来读写底层寄存、存取数据、控制硬件等,C语言和硬件之间由编译器来联系,一些C标准不支持的硬件特性操作,由编译器提供。
    发表于 04-26 14:53 545次阅读
    C语言:嵌入式开发中的关键<b class='flag-5'>编译器</b>角色

    QT开发学习笔记1(安装交叉编译器

    QT安装交叉编译器
    的头像 发表于 02-18 10:02 853次阅读
    QT开发学习笔记1(安装交叉<b class='flag-5'>编译器</b>)

    RL78系列的C编译器包数据手册

    电子发烧友网站提供《RL78系列的C编译器包数据手册.pdf》资料免费下载
    发表于 01-26 15:55 1次下载
    RL78系列的C<b class='flag-5'>编译器</b>包数据手册

    华为举办鸿蒙生态千帆启航仪式,余承东公布HarmonyOS NEXT开放申请

    据余承东介绍,为实现核心竞争力的突破,华为通过多年的努力构建出一套包含鸿蒙内核、ArkTS/仓颉编程语言、方舟编译器/毕昇编译器、ArkUI以及盘古AI大模型等在内的完整生态体系。
    的头像 发表于 01-19 09:34 813次阅读

    Triton编译器的原理和性能

    为Torch inductor的基本组件,以合成针对GPU的高效内核。与传统库使用相比,这具有多种优势。允许创建各种各样的融合,它可以独立调整,并且的内存占用更小。本次演讲将介绍Triton编译器,并描述使其能够以最少的用户
    的头像 发表于 12-16 11:22 2722次阅读
    Triton<b class='flag-5'>编译器</b>的原理和性能

    TVM编译器的整体架构和基本方法

    有将近两个月没有学习一些新东西,更新一下博客了。一直在忙公司的一个项目,是做一款支持LSTM和RNN的通用架构加速IP。自己恰好负责指令编译工作,虽然开始的指令比较粗糙,没有一套完整的编译器架构
    的头像 发表于 11-30 09:36 2282次阅读
    TVM<b class='flag-5'>编译器</b>的整体架构和基本方法

    编译器的优化选项

    一个程序首先要保证正确性,在保证正确性的基础上,性能也是一个重要的考量。要编写高性能的程序,第一,必须选择合适的算法和数据结构;第二,应该编写编译器能够有效优化以转换成高效可执行代码的源代码,要做到
    的头像 发表于 11-24 15:37 853次阅读
    <b class='flag-5'>编译器</b>的优化选项