今日华为EMUI官方微信发文宣布,方舟编译器开源准备就绪,将于8月31日起开源。方舟编译器是完全替代了语言虚拟机的静态编译器,从此不再需要解释器。相比现有的编译机制有以下明显优势:
1、方舟编译器是一种静态的编译方式,而现有的Android/ target=_blank class=infotextkey>安卓系统,运行一个应用程序首先启动虚拟机,然后读入应用代码逐条解释执行,无法做到100%做到摆脱虚拟机,这也是当前安卓阵营面临的问题。
简单一句话,只要是经过编译器编译的应用,在应用市场上架以后,用户下载的APK 就是编译好的了,方舟编译的应用在开发阶段就已完成了。
2、华为方舟编译器的静态编译方式可将语言里的动态特性直接翻译成机器码,手机安装应用程序后可全速运行程序,彻底干掉了虚拟机,极大提升了系统运行效率。
方舟编译器对于系统在这方面的提升,官方曾这样描述:
一、EMUI 9.1对系统主要服务System Server进行静态编译化,带来了系统流畅度提升24%,系统响应性能提升44%以上的收益。
二、微博极速版实现了静态化编译后,流畅度提升高达60%。通过上方演示视频来看,经过方舟编译优化的App,在流畅度度方面的提升很明显。
此外,方舟编译器还带来了新的系统垃圾回收机制。以往安卓的垃圾回收机制是集中回收,由于JAVA虚拟机的特点,系统会不停的地自动回收内存垃圾,保证内存不会溢出。
更要命的是,当内存低于某个标准值后,它就会自动杀掉优先级低的进程。系统会集中关闭被标记的多余进程,这就造成了随机性的卡顿。相信大家遇到过这种情况,启动游戏时,点按应用瞬间进入前会感觉莫名的卡顿,界面像是迟钝了一下。
而方舟编译器在这方面有什么不同,它的内存回收机制是随用随回收,回收时不需要暂停应用,而是直接回收内存垃圾,这大大提高了系统运行速度和效率。