泛览天下

阅读,看尽天下事

厉害了,华为方舟编译器

2021-09-07 22:50:29


方舟编译器是华为鸿蒙生态中非常重要的一环,让Android应用的性能得到了很大的提升。


早在2019年8月31日,华为就宣布开源方舟编译器,标志着鸿蒙OS启动开源第一步。方舟编译器是华为鸿蒙生态中非常重要的一环,让Android应用的性能得到了很大的提升。

厉害了,华为方舟编译器

方舟编译器

本人也是计算机专业出身的,深知编译器的难度有多大、多复杂,大学时《编译原理》这门课程是最头痛的,到现在也只记得词法分析、语法分析几个术语而已。

今天我们就来详细讲解一下方舟编译器。

一、什么是方舟编译器

华为方舟编译器是华为公司专门为软件厂商研发的统一编程平台,包含编译器、工具链、运行时等关键部件。该编译器支持多种编程语言、多种芯片平台的联合编译与运行,能够有效解决安卓程序“边解释边执行”的低效率问题。

目前,方舟编译器的源代码在Gitee上托管,有兴趣的同学可以自己动手实际体验一下。

二、方舟编译器原理分析

首先,简单说一下软件的运行原理。在手机硬件设备上运行的是机器指令,所有的软件最终都需要转换成机器代码,才能够运行。

因此,安卓App借助了Java虚拟机的运行机制,也就是需要虚拟机把安装在手机上的代码,转换成硬件设备能运行的机器代码。无论Google如何进行优化,只要有这个转换操作,就会对系统的性能带来影响。

方舟编译器则是另辟蹊径,它能够做到,让软件开发者在源代码开发阶段,就将安卓的应用程序编译成机器代码。这样一来,软件安装在Android系统上时,已经是机器代码了,可以直接运行,不需要再进行转换,也就节省了额外的性能开销。

当然,Android的虚拟机除了进行代码的编译外,还会对软件的运行过程进行内存管理、垃圾回收。但Google的虚拟机,是在内存不足时,才集中进行内存的回收,回收的过程是比较消耗性能的,影响用户操作。

针对这一方面,方舟编译器又进行了优化处理。它对分配出去的每一块内存进行监控,只要内存使用完后,就进行实时的回收、释放,以便其他程序再次申请使用。由于是实时内存回收,就能提升内存的使用率,减小内存的浪费。分散式的内存回收,也不会像集中式内存回收那样,对用户的使用体验产生明显的影响。

三、方舟编译器的优点

总的来说,方舟编译器的优点就是,让安卓应用软件性能得到了非常大的提升。

从上面的方舟编译器原理上,也能定性分析出性能肯定能获得提升。另外,华为官方也给出了实际测试的数据,定量的说明性能提升的情况。

根据官方数据显示,经过方舟编译器的优化,在系统操作流畅度上可以提升24%,在系统响应上可以提升44%,在三方应用操作流畅度上可以提升60%。

由于其优秀的性能表现,也得到了国内互联网顶尖应用的支持,40余家顶尖应用就已经宣布和方舟展开合作。

厉害了,华为方舟编译器

这里,我们不得不佩服华为的技术团队,为他们点赞,民族的企业也是国人的骄傲。