1、华为所谓的 “方舟编译器” 与其说是一个编译器,不如说是一个编译运行系统;这个系统的运行需要开发环境和终端(也就是智能手机)的配合,其目的是绕过 Android 操作系统中 App 的运行所必须依赖的虚拟机,将 Java/C/C++ 等混合代码一次编译成机器码直接在手机上运行,彻底告别 Java 的 JNI 额外开销,也彻底告别了虚拟机的 GC 内存回收带来的应用进程掉线——从而最终实现 Android 操作系统的流畅度。
2、方舟编译器的这一实现过程中,需要解决四个方面的问题。
第一:将 Java 代码直接编译成机器码;
第二:解决混合语言的 JNI 开销;
第三:在统一 IR 之外进行代码优化;
第四:解决 Android 内存回收带来的卡顿问题。
3、无论是编译器还是解释器,只是在虚拟机上打补丁;手机上的虚拟机+编译器+解释器本身不仅占用硬件资源,还无法最大发挥软件运行性能。正因如此,所以绝大部分手机厂商只能无奈的通过简单粗暴提升 Android 手机的内存和存储空间,来弥补虚拟机的弊端。
4、华为方舟编译器团队对 IR 进行了长达五年的精雕细琢,逐渐摸索出 “大脑” 里每一条神经、每一个神经元的信号规律,并在此基础上发明了一套核心专利,使得不同语言代码在开发者环境中能够统一编译成同一套可直接执行的机器码,从而彻底消除了混合语言互相调用的开销。


雷达卡



京公网安备 11010802022788号







