vlambda博客
学习文章列表

卧槽!华为方舟编译器竟然这么牛逼

 多点在看,就是真爱

作者: 华为终端、懒虫 | 来源:知乎  

https://www.zhihu.com/question/319688167

华为在P30发布会上,本来是发布手机产品的,顺带提了下,即将开源的方舟编译器,大家反而对这个方舟编译器的兴趣大于了P30手机。小编今天带大家来唠嗑下方舟编译器。

安卓性能革命,提升操作系统流畅度和系统响应。到底有多流畅,看下三星S10+和华为P30 Pro的在微博应用上的对比测试视频:

Replay Share Like

0/0

进度条,百分之0
00:00
/
00:40
00:40
全屏

继续观看

卧槽!华为方舟编译器竟然这么牛逼

转载
,
卧槽!华为方舟编译器竟然这么牛逼
刘望舒


研发方舟编译器的目的

方舟编译器,应该是取自诺亚方舟。华为还有一个部门叫“2012实验室”,在华为内部有着非常高的地位。海思就是2012实验室底下的二级部门之一。看得出来华为具有非常强烈的危机意识。方舟编译器的战略地位应该跟麒麟芯片差不多吧,二者可以类比一下。华为海思的麒麟芯片,从十来年前就开始开发,早期完全是赔本在做,拿钱换经验。在友商喜滋滋地用着高通和MTK芯片占据市场份额时,华为推出的早期手机芯片表现非常差,被用户和网友骂了个狗血淋头。但是华为依然在坚持着设计并使用自己的CPU(2014年推出麒麟芯片开始),哪怕差也不妥协用高通。

直到近几年,华为终于尝到了自研芯片的甜头。在友商们为了个骁龙855首发争个不停的时候,华为已经在一边自己玩去了(不止是手机CPU,其它如WIFI芯片,华为也在逐步用海思芯片替换国外公司的产品)。至此,硬件方面的诺亚方舟可以说基本建成,虽然还需要国外的桅杆、船桨等配件,但基本的船身和发动机已经替换成自己的东西,未来即使国外禁售,小破船也能继续开下去。软件方面安卓系统离不开谷歌,虽然目前安卓还是开源系统,谷歌还不对手机厂商收费。但万一收费了呢?个人估计方舟编译器就是华为在手机软件层面打造的诺亚方舟。通过提升编译效率,体现在系统流畅度上,吸引更多的安卓手机厂商来使用方舟编译器,逐渐撬松谷歌对于安卓系统的掌控力度。如果哪一天,谷歌在安卓系统上直接卡住手机厂商的脖子,那么华为就会呼吁大家去他那儿。虽然华为这船不比谷歌大,但好歹不会淹死,再集众人之力,打造一个新的开源手机生态。(来源知乎:懒虫,出处:https://www.zhihu.com/people/dqdong)

方舟编译器虽然是在 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%。


卧槽!华为方舟编译器竟然这么牛逼

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

说了这么多,看个视频,一分钟了解一下华为方舟编译器吧!


Replay Share Like

0/0

进度条,百分之0
00:00
/
00:54
00:54
全屏

继续观看

卧槽!华为方舟编译器竟然这么牛逼

转载
,
卧槽!华为方舟编译器竟然这么牛逼
刘望舒


综上所述,方舟编译器作为全新的系统及应用的编译和运行机制,从 DNA 层面对安卓进行了改造,打破了性能和功耗的的跷跷板,解决了安卓应用变解释边运行的低效问题,让手机能直接听懂“高级语言”,可以说是近几年来安卓阵营最大的根本性革新。它解决了安卓系统久用必卡顿的魔咒,打破了人机之间的藩篱,让用户能直观感受到的就是:

1、 提升了应用的流畅度;

2、 降低手机 CPU 的开销;

3、 进一步降低功耗提升了手机续航能力;

4、 为用户带来更加持久流畅的体验。

发布会上余总也表示方舟编译器将会在 EMUI 后续的版本开发中运用到更多模块中,并且面向业界全面开源,更多开发者可参与到方舟编译器的开发、使用中。那么方舟编译器的效果究竟如何,我们拭目以待吧!

(来源知乎:华为终端,出处:https://www.zhihu.com/org/hua-wei-zhong-duan/activities


----------  END  ----------

推荐文章





卧槽!华为方舟编译器竟然这么牛逼

                                                            在看也是一种认可