华为方舟编译器,华为在底层重造安卓系统

一、什么是方舟编译器

方舟编译器虽然是在 4.11 日 HUAWEI P30 系列国内发布会上公布的应用编译技术,但其实华为早在 5 年前就开始布局,并投入数百专家团队,历经多次尝试,才在 EMUI 9.1 上实现了机器代码的翻译。几千年来,人们从裹腹耐寒到智慧创新,从未停止探索世界的步伐。同时,他们将这些智慧赋予更多的物体,比如机器。
想让机器读懂人类情感,他们之间就需要有个“翻译”,来充当人机交互的桥梁,也就是专业人士口中的编译技术。
它能够将 C、Java 等高级语言转换为机器能读懂的低级语言,将精妙的代码转化为 0 和 1 的二进制指令,消除了沟通障碍,从而驯服了机器。
可以说编译器是软件与芯片之间的桥梁,其性能,效率直接影响到机器的运行效率。

二、方舟编译器和Java的故事

而既有的安卓系统框架与应用之间,仍然使用的是不被机器直接读懂的 Java 语义,最初的解决方案是通过增加一个虚拟机制(JVM),相当于一个“中间层”将 Java 语言“翻译”为机器可以读懂的汇编指令。


中间层”翻译一句 Java 语义机器就执行一段,也就是“边解释边运行”(动态编译),不但效率低,耗费系统资源,对操作流畅度也有影响。


尽管安卓系统 6.0 以后采用了 ART (Android Runtime)模式,对调用次数多的 Java 代码编译为机器码(静态编译);在设备空闲的时候进行一些预编译,解决了部分 Java 代码执行效率问题,但对于动态语义部分还是无法实现静态编译,仍需要虚拟机充当“翻译”边解释边运行,效率和体验提升有限。

而方舟编译器,采用了全新的系统及应用的编译和运行机制,对所有的 Java 语义全部做到静态编译,直接将 Java 语言“翻译”成机器语言(静态编译),消除了虚拟机动态编译的额外开销,实现了开发和运行效率的兼容并举。

如果把编译器看做一个翻译,就好比我们去到一个语言不通的国家,原本只能通过同声翻译(虚拟机)来进行交流沟通,难免效率低下。而华为方舟编译器更像是让您直接获得了语言能力,从而可以摆脱同声翻译(虚拟机),可以更畅快地与当地人沟通。

根据华为实验室的测试数据,EMUI 9.1 在仅仅对系统组件 System Server 应用了华为方舟编译器后,系统操作流畅度提升 24%,系统响应性能提升 44%。同时,新浪微博极速版在应用方舟编译器之后,操作流畅度最高提升了60%

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

三、方舟编译器在底层重造安卓系统体验

据王成录透露,在方舟编译器发布当天,电话被打爆了,业界的开发者都高度关注。

为什么会这样?因为方舟编译器是对安卓底层机制的重构,给用户体验带来的提升是颠覆性的。

它解决的是安卓手机上最大的痛点:“卡顿”。编译器,就像是人类和机器沟通的桥梁,承担着将高级语言“翻译”成机器能懂的机器码,并按照指令运行。但是,在安卓系统中,编译器却有一个绕不过的坎儿:虚拟机。安卓系统虽然在不断演进,但始终需要虚拟机来实现解释和执行。

用翻译的方式来比喻,更容易理解。安卓程序的虚拟机中有解释器和编译器,相当于是有两个翻译在运行。解释器好像现场翻译,演讲者讲一句,就需要停下来翻译一句给编译器,编译器则结合上下文一次翻译一大段。两个翻译同时在搞,于是你听到的内容就是断断续续的,你的系统就会变得非常卡顿。

而且,虚拟机的统一回收内存也是卡顿的罪魁祸首之一,Java的虚拟机模式提供了内存GC(垃圾回收)机制,内存垃圾是集中回收,但全局回收时需要短暂中断应用,成为随机卡顿的根因之一。

那么,方舟编译器带来的颠覆在哪里呢?首先,方舟的内存回收机制是随用随回收,回收时无需暂停应用,因内存回收的随机卡顿就消除了。其次,方舟编译器是在应用打包的时候直接编译出了机器指令,无需繁琐的虚拟机运行,彻底消除了虚拟机的动态编译的额外开销,从边翻译边执行到提前编译机器码直接执行(运行时无需再编译),大幅提升了效率,让性能得到大幅提升。

用量化的方式可以很好地看到这种性能提升的效果:有了方舟编译器的手机,能实现系统操作流畅度提升24%,系统响应性能提升44%。
能实现这样的效果,方舟编译器的内存回收机制也功不可没。原来虚拟机的内存回收是统一进行的,全局回收时需要暂停应用(导致卡顿);而方舟编译器则是内存随用随回收,回收时无需暂停应用,显然能够避免卡顿。

方舟编译器看起来深奥,但是对应用开发者和用户来说却很简单。王成录说,对于应用开发者无需修改代码,只需要用方舟编译器重新编译,就能带来性能的提升。对于用户来说,只要在应用市场下载编译过的应用,就直接能享受到性能提升的好处。

重新编译,会带来应用安装包和安装后占用空间的增大,以微博极速版为例,安卓9.0的apk是9.7Mb,安装后是37.5Mb,而使用方舟编译器后的安装文件apk是23Mb,安装完后大约不到50Mb。但是,使用方舟编译器后的性能提升却是颠覆性的,微博极速版的操作流畅度提升了60%!

一句话,方舟编译器给安卓程序的性能提升结果非常显著。这个性能提升可以用应用执行时间来衡量,而应用执行时间=应用执行指令总条数X平均每条指令所用CPU cycle数/ CPU频率,CPU频率由手机硬件决定,方舟编译器可以实现平均每条指令所用CPU cycle数更少、应用执行指令总条数更少,从而带来更快的应用执行时间。

同样用翻译来比喻这种编译带来的性能提升。““What happens in Vegas, stays in Vegas”如果比作最初的应用,如果不编译,翻译可能是“在拉斯维加斯发生的一切,就留在拉斯维加斯”,而方舟编译器编译带来的则是“勿念过往 活在当下”,显然要好得多。

总结

所以,方舟编译器、EROFS超级文件系统等颠覆性的技术创新,只是华为在软件领域不断突破和努力的缩影。华为正在凭借自己的技术实力和不断努力,重造安卓系统的体验。

除了硬件的技术突破,软件也在用户体验中扮演越来越重要的角色。这就是软件的力量,通过持续的技术进步,持续的生态开放,让消费者感受到,华为的产品体验在进步,安卓系统的体验在进步。​​​​

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,914评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,935评论 2 383
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,531评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,309评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,381评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,730评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,882评论 3 404
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,643评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,095评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,448评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,566评论 1 339
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,253评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,829评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,715评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,945评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,248评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,440评论 2 348

推荐阅读更多精彩内容