非常高兴能有机会去探索华为西安研究所,更与研发面对面交流了解了华为方舟编译器的深层信息,而且也进入到了首次开放的IOT实验室,体验了荣耀9X的智慧通信2.0,此功能除了可以智能识别主副卡信号强度,使手机一直处在信号满格状态外,还可以做到主卡打电话,副卡也能接收来电,同时还能流畅的上网,简直不要太酷炫!
不过我个人最感兴趣的就是华为方舟编译器了,当天研发大佬也解答了我们好多个问题,下面我把自己感兴趣的给大家摘录一下:
1.用户具体在哪些应用或操作当中能够体验到华为方舟编译器的好处?
答:相信大家都已经看了周末的那个开发者大会,我们在大会上已经明确了,除了这个微博极速版之外,我们还跟40多家应用伙伴进行了合作,包括我们平常用的这个淘宝、QQ、支付宝、头条等等,也在未来的一两个月之内会陆续上线。而且我们常用的一些APP都会进行编译更新,后续也会跟进!
2.方舟编译器的开发都经历了哪些过程?中间有没有遇到困难?
答:其实这个是一个比较长的历程,如果回顾一下这个过程的话,其实从09年的时候,我们华为,在做这个5G的基础研究的时候,因此成立了这样的一个编译的技术组,在2013年的时候,我们推出了一个针对基站的这样的一个自研的编译器,也在这个时候,我们基本明确了,这个编译器的基础技术框架,在2016年的时候,华为成立了针对编译器以及编译语言的基础实验室,直到2019年,我们经过了这么多年的优化,才推出了,手机上面的这个方舟编译器。
3.荣耀9X启动方舟编译器是什么时候开始的?
答:其实大家应该知道,我们第一次接触方舟编译器是在华为p30的发布会上,也就是今年三月份的时候,当时我们是完成了针对这个麒麟980芯片方舟编译器的适配,但其实在这个之前我们就已经投入到了现在荣耀9X上面用到的麒麟810芯片的适配。前后大概经历了半年多的时间,我们也达到了810芯片上这个方舟编译器商用的水平。
4.方舟编译器如何提升系统的流畅性?
答:其实大家应该看到过关于这类的一些科普的帖子或文章,在我这边看来,核心内容主要有两个点:
第一点,大家都知道这个安卓本身有一个核心的命门,就是一个java虚拟机,整个安卓应用的上传是用这个java的构件,但它又不可避免的要做到的一个事情就是要把java的这个自解码变成可以直接在机器上运行的机器码,这就导致了它在运行的过程中,要去完成这样一个转换。那我们方舟编译器的出现,它就直接可以把我们这个java,包括C、C++这样混合编程直接变成我们的机器码,他就大大提升了代码运行的这样一个效率。
第二点,也是安卓的一个核心机制:内存回收。安卓的内存回收它是这样的一个机制,当整个系统运行到内存不足的时候,会触发内存回收。就是我们所说的“GC”,在“JC”的时候,这个系统是不能做其他任何事情的,只能等待或者系统把这个内存回收这个工作完成以后,才能做其他的事情。我们方舟编译器采用了更加先进的“RC”机制,我们会对每一块内存进行精细化管理,监控每一块内存的使用情况,当这个内存不再被使用的时候,随时回收。保证我们这个系统的内存,随时都处于一种高效运行的状态。
上面说的这个比较复杂,我来解读一下:第一个就相当于是说我和一个外星人在交流,外星人,他要有一个翻译器,把他的话语翻译成我们人类能听懂的语言,方舟编译器达到的效果就是我们直接和一个人类来对话,少了中间翻译的过程。
第二个就相当于,安卓一下子就把内存全部都回收回来,在这个过程中就会导致有一些卡顿,方舟编译器就是,精确的来分析一下哪一个不用的时候就把它回收一下内存内存释放,其他的不管。相当于方舟编译器是随收随用,可以理解为“一次性模式”。
5.方舟编译器经历了十年的过程,在过程当中有没有经历几个阶段?在其他方面还有什么应用?
答:从技术发展整个的维度上来看,在十年历程中,我们方舟编译器应该是有三个阶段。
第一个阶段,主要是对方舟编译器整个框架的确立和构建;
第二个阶段,我们更多的是做了对这个动态语言语义的这样一个建模,这个阶段主要是面向一些物联网;
第三个阶段,是我们整个对这个手机行业,特别是对安卓这样一个体系优化的探索。
到现在我们推出了这样的一个方舟编译器,更多的给大家介绍的,还是在手机应用方面上的一些优化,但方舟编译器的优化,却不仅仅于此,其他的我们会在后面合适的时机表达出来。
6.与微软、谷歌、苹果这些行业大佬相比,我们方舟编译器处于什么位置?
答:这些都是业界的一些巨头,他们在编译器方面的积累会比我们要长很多时间,我们作为一个后来者,其实更多的是吸收了他们的一些经验,比如他们这么多年积累的一些知识和优势,当然我们也在上面做了很多的创新,包括我们前面介绍的这个静态编译,以及内存回收的机制,我们还有很长的路要走,当然我们相信我们会越做越好!
我的理解,出发的晚,用的技术会更新,架构也会更新,不管是我们现在的方舟编译器,还是未来的鸿蒙系统都会是更新的技术。其实方舟编译器这样的里程技术,技术积累都是需要时间的,我们现在的时间可能还比较有限,但是我们相信后面我们会主动的和世界上最先进的技术做到同样一个状态!
7.方舟编译器这么好,有没有向其他厂商推广的这样一个计划?
答:我们在这个周末的开发者大会上,已经做了一个方舟编译器整个开源的计划,我们可以看到,总共分为两个阶段。
第一个阶段,在今年的八九月份,会把方舟编译器的整个框架开源出来。
第二个阶段,到2020年,就是随着我们方舟编译器的这样一个优化、完善,我们会把整体的代码开放给业界。
我们也欢迎更多的厂商和伙伴加入到我们方舟的这个家庭里来。
8.方舟编译器的软件是要做一个专门的优化的,那方舟编译器编译过的软件会单独做一个应用商店吗?
答:现在方舟编译器这个应用都是针对安卓上的应用的一个优化,后续已经优化的安卓应用(就是现在已经公布的40多个以及后续更多的几乎所有厂家)都会以一种正常应用包的形式放在华为应用市场上(有专属标志),用户到时候会很方便的,在华为应用市场上找到经过方舟编译器编译过的软件。
9.其他的厂商如果想要支持方舟编译器,那他们应该怎么做?难不难?
答:我们在整个开源的过程中,包括我们明年去做整个方舟编译器的开源的时候,我们会把整个方舟编译器的工具链和环境都做好,在这样的一个工具链下面,其他的合作厂商和伙伴想加入,想把整个方舟编译器纳入到自己的这个软件体系里边,是一个非常便捷的过程,我们欢迎更多的合作伙伴,大家来加入进来,我们共同优化和探索编译器的技术。
大家有没有感到对方舟编译器有了更深层次的理解呢?我是觉得这项技术简直不要太酷炫,而且像荣耀9X这样的千元机也可以拥有,非常给力。总之这次西研所的方舟速度之旅不虚此行,被华为的硬核实力震惊!