Re: [新闻] 解读| 华为方舟编译器是如何实现Android

楼主: Vett (Vett)   2019-04-26 14:37:24
: 华为方舟编译器究竟改变了什么?
: 首先,方舟编译器是配合华为EMUI 9.1 操作系统而打造的一个编译工具。
: 按照华为方面的说法,虽然方舟编译器是在2019 年4 月11 日发布,但是华为早在5 年前就开始布局,2013 年推出了自研编译器HCC,2014 年编程大神Fred Chow 加入,担任华为编译器技术首席科学家,2016 年华为成立编译器与编程语言实验室,投入了数百的专家团队经历了多次尝试,才在EMUI 9.1 上实现了机器代码的翻译。
: 按照上述Android 操作系统的代码运行逻辑,华为编译器最大的优势在于,它绕过了VM。
重点一
: 简单来说,在百人专家团队的打造下,华为方舟编译器可以将高级语言(Java)直接变成机器码,无需再通过Android 操作系统中内置的VM 编译器。按照华为方面的说法:方舟编译器编译的应用在开发阶段就已完成;也就是说,只要是经过编译器编译的应用,在应用市场上上架了以后,用户下载APK 的就是编译过的了。
: 换句话说,通过方舟编译器,开发者的应用在下载之前就已经转化成为机器可以识别的代码,因而可以在手机上快速安装、启动和运行,而无需在经过VM 的编译——某种程度上,方舟编译器是将编译过程提前到应用开发阶段,从而大幅度减少了智能手机和操作系统的运行负担。
: 按照华为方面的说法,采用华为编译器之后,提升效果如下:
: EMUI 9.1 仅仅对系统组件System Server 应用了方舟编译器之后,系统流畅速度提升了24%,系统响应速度提升了44%;
: 第三方应用(目前采用了新浪微博极速版)的操作流畅度提升了60%。
: 不可忽视的是,实际上,要想实现华为所言的效果,就首先需要第三方的应用开发者采用方舟编译器对自家的App 提前进行改造,从而能够上架华为应用商店——这也是余承东在4 月11 日的发布会呼吁开发者积极参与的原因。
: 除了代码编译,方舟编译器也提供了更高效的内存机制,它与Android 内存回收的不同之处在于:
: 内存管理是程序开发与运行时需要重点考虑的部分,也和系统流畅度息息相关。Android 在内存回收上采用集中回收机制,发声全局回收时更需要暂停应用,这也是随机卡顿的根因之一。而方舟编译器提供了更高效的内存回收机制,回收时无需暂停应用,随时用随时回收,大大提高运行速度。
重点二
: 另外,在方舟编译器的编译环境下, 还可以对代码进行优化。目前,由于Android ART 的AoT 和JIT 动态编译因为是运行在手机上,受资源所限,因而只能使用简单的优化算法。而方舟编译器由于是在应用开发阶段进行编译,所以可以允许不同应用灵活采用不同的编译优化方案,而且因为在开发环境编译不会受到手机性能的限制,可以使用更多先进的优化算法,从而使得每个应用的性能达到最佳。
: 2019,全面开源
: 其实,在4 月11 日的发布会上,华为方面已经表示,方舟编译器也将开放给第三方合作伙伴,希望共同构建开发者生态的“方舟朋友圈”。
: 目前,华为已经宣布方舟编译器会从2019 年全面开源;其中,华为将在2019 年8 月的华为终端开发者大会宣布方舟编译框架代码开源,后续会在2019 年11 月的绿盟开发者大会实现完整方舟编译器代码开源。
: 对于华为方舟编译器的开源,雷锋网将保持关注。
: 雷锋网(公众号:雷锋网)注:本文部分内容编自知乎平台作者weishu的回答内容,已经获得作者授权。
: https://m.leiphone.com/news/201904/oshefuZTLnU00mJO.html
: 心得:好吧,其实我整天都看不懂,只知道好像很厉害
: 有厉害的人可以解释个吗感谢
: 这样子卓卓是不是在效能上要成功反超果果了呢!
: 太令人期待啦!
这系列文章不知道能不能钓到 jserv
反正我先起个头
就目前的的公开资讯吧
方舟编译器这个名字代表了他的巨大工作量
我猜的啦 底层就是重做一套语言再加上相容 Java
而且只有华为自己的OS才能发挥功能
除非Google把整套解决方案放到Android里面
不然要形成 iOS 的生态系还是难啦
就大陆几个大型app会投资源下去玩而已
不过看方舟编译器的效果确实明显降低了 Android 的 jit 的时间
不过有人还没习惯 Android 就是会这样顿一下吗
哈哈哈

Links booklink

Contact Us: admin [ a t ] ucptt.com