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系统上更加匹配、性能才能够得到充分发挥,因此对于旨在超越三星夺冠的华为来说,方舟编译器也将成为其争冠之路上的重要砝码。

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

    关注

    216

    文章

    35293

    浏览量

    256966
  • 苹果
    +关注

    关注

    61

    文章

    24557

    浏览量

    204852
  • 编译器
    +关注

    关注

    1

    文章

    1663

    浏览量

    50454
  • 方舟编译器
    +关注

    关注

    0

    文章

    63

    浏览量

    470

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    边缘设备AI部署:编译器如何实现轻量化与高性能?

    电子发烧友网综合报道 AI编译器是专门为人工智能(AI)和机器学习(ML)模型设计的编译器,其核心目标是将高级的AI模型描述(如计算图、神经网络结构)转换为特定硬件平台(如CPU、GPU、FPGA
    的头像 发表于 07-06 05:49 ?5502次阅读

    什么样的代码会被编译器优化

    现在的编译器有多智能,可能你辛辛苦苦写的代码,在编译器看来就是几句废话,直接被删除掉。
    的头像 发表于 01-16 16:38 ?683次阅读

    Triton编译器与GPU编程的结合应用

    Triton编译器简介 Triton编译器是一种针对并行计算优化的编译器,它能够自动将高级语言代码转换为针对特定硬件优化的低级代码。Triton编译器的核心优势在于其能够识别并行模式,
    的头像 发表于 12-25 09:13 ?961次阅读

    Triton编译器如何提升编程效率

    在现代软件开发中,编译器扮演着至关重要的角色。它们不仅将高级语言代码转换为机器可执行的代码,还通过各种优化技术提升程序的性能。Triton 编译器作为一种先进的编译器,通过多种方式提升编程效率,使得
    的头像 发表于 12-25 09:12 ?854次阅读

    Triton编译器在高性能计算中的应用

    先进的编译技术,为高性能计算提供了强大的支持。 Triton编译器简介 Triton编译器是一种开源的编译器框架,旨在为异构计算环境提供高效的编译
    的头像 发表于 12-25 09:11 ?1099次阅读

    Triton编译器的优化技巧

    在现代计算环境中,编译器的性能对于软件的运行效率至关重要。Triton 编译器作为一个先进的编译器框架,提供了一系列的优化技术,以确保生成的代码既高效又适应不同的硬件架构。 1. 指令选择
    的头像 发表于 12-25 09:09 ?1158次阅读

    Triton编译器的优势与劣势分析

    据流分析技术,能够自动识别并优化深度学习模型中的计算瓶颈,从而提高模型的整体性能。 支持多种硬件平台的优化,包括CPU、GPU、FPGA等,为深度学习模型的部署提供了更广泛的选择。 灵活可扩展 : Triton编译器采用了模块化的设计思想,开发者可以根据需要自定
    的头像 发表于 12-25 09:07 ?1364次阅读

    Triton编译器在机器学习中的应用

    1. Triton编译器概述 Triton编译器是NVIDIA Triton推理服务平台的一部分,负责将深度学习模型转换为优化的格式,以便在NVIDIA GPU上高效运行。Triton编译器
    的头像 发表于 12-24 18:13 ?1172次阅读

    Triton编译器的常见问题解决方案

    Triton编译器作为一款专注于深度学习的高性能GPU编程工具,在使用过程中可能会遇到一些常见问题。以下是一些常见问题的解决方案: 一、安装与依赖问题 检查Python版本 Triton编译器通常
    的头像 发表于 12-24 18:04 ?3440次阅读

    Triton编译器支持的编程语言

    Triton编译器支持的编程语言主要包括以下几种: 一、主要编程语言 Python :Triton编译器通过Python接口提供了对Triton语言和编译器的访问,使得用户可以在Python环境中
    的头像 发表于 12-24 17:33 ?1071次阅读

    Triton编译器与其他编译器的比较

    Triton编译器与其他编译器的比较主要体现在以下几个方面: 一、定位与目标 Triton编译器 : 定位:专注于深度学习中最核心、最耗时的张量运算的优化。 目标:提供一个高度抽象、灵活、高效
    的头像 发表于 12-24 17:25 ?1118次阅读

    Triton编译器功能介绍 Triton编译器使用教程

    Triton 是一个开源的编译器前端,支持多种编程语言,包括 C、C++、Fortran 和 Ada。Triton 旨在提供一个可扩展和可定制的编译器框架,允许开发者添加新的编程语言特性和优化技术
    的头像 发表于 12-24 17:23 ?1900次阅读

    分享关于编译器的科普

    源代码分析工具和IDE集成。GCC被构建成一个单一的静态编译器,这使得非常难以被作为API并集成到其他工具中。 GCC比Clang支
    的头像 发表于 12-09 09:49 ?645次阅读

    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 ?2291次阅读
    Keil<b class='flag-5'>编译器</b>优化方法