codeblocks带编译器版本_媲美iOS?华为方舟编译器真有那么玄乎吗?

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

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

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

b70fe8dc0bb42ac1488bbc08b4a4ac39.png

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

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

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

简单来说,编译器就是人类和机器沟通的桥梁。比如一部手机,里面的程序是由程序员使用高级语言开发的,当我们要启动某个程序(比如打开一个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系统上更加匹配、性能才能够得到充分发挥,因此对于旨在超越三星夺冠的华为来说,方舟编译器也将成为其争冠之路上的重要砝码。

36eaa4e50b25a203d4c0e08b4dc360dd.png

def0b57a9e2f37033b26bf6d71934d9c.png如果觉得本文有意思,欢迎点下右下角
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开源——开源不仅仅意味着免费,但就算是仅仅是免费这一点,就非常重要了,不是吗? 跨平台——我的工作需要写的C++程序,就要求是跨Linux和Windows平台,没有选择Code::Blocks之前,我在Linux下用KDevelop,在Windows下使用Borland 或 Microsoft的软件,由于二者不兼容而要多做的事情太多。或许你暂时并不考虑跨平台,但为了将来,能跨平台总不是坏事,对了Code::Blocks也支持Mac系统呢。 纯C/C++写成——作为一名C++程序员,我“顽固”地保留一点可能并不必要的自尊:写C++程序,还是用C++写的IDE吧。让我选择一款以其它语言写成的IDE来写C++程序,我有那么一点点完全不必要的心理障碍。其实用C++写的程序最大好处是你不用额外安装庞大的运行环境,譬如你不用装.net也不装java。 支持多编译器——包括Borland C++,、VC++、Inter C++等等超过20个不同产家或版本编译器支持。无特定要求下,我还是主要用g++。配对的,调试器也是支持多种。 插件式的框架——插件式的集成开发环境,最著名的是Java编程工具Eclipse了,这种方式让一款IDE保留了良好的可扩展性,应该说,作为一款开源的IDE,这是最合理的选择。Code::Blocks很多核心功能,包括“调试功能”,都通过插件来实现。非核心方面的插件嘛,我用得最多的,是代码格式美化、自动上Google Codes查找……偶尔也会玩玩“俄罗斯方块”以及“贪吃蛇”…… 经常更新——几乎每个月都会有更新。开源软件最怕的就是不更新了。 内嵌可视设计——和大家熟悉的VB、Delphi/C++Builder相比,它的可视窗口设计器,其“傻瓜性”差了一大截,其主要原因在在主流的跨平台图形窗口的定位体系,都是采用定位“容器”来实现的,这一点一开始会不太习惯,但在熟悉之后,设计各种对话框,也非常直观。一点点不直观,换来的是你的程序很容易迁移到别的操作系统,同时还让你对窗口设计更深入了,倒也值。 C++扩展库支持——通过它的一个用以支持Dev C++的插件,可以下载大量C++开源的扩展库。比如网络操作,图形算法,压缩、加密等等……我现在最常用到一款就是iconv,用来转换汉字编码。扩展库下载,及使用方法,请见本站相关课程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值