华为方舟编译器软件

2022-04-27发布者:郝悦皓大小: 下载:0

文件大小:

软件介绍

方舟编译器官方介绍

是华为公司为了提升android系统的编译效率推出的一项系统及应用的编译和运行机制。2019年4月,在华为p30系列国内发布会上,华为首次宣布了该技术。

背景介绍

编译器是连接人类世界与机器世界之间的一座桥梁,任何在手机上的程序都需要经历软件开发的过程,软件开发使用的语言是易于程序员理解的高级语言,程序在手机上运行需要转换成可以高效执行的机器码,这样的转换过程就是由编译器完成的。可以说编译器是用来生成软件的软件,是连接软件与芯片的桥梁,其性能,效率直接影响到最基础的消费者体验。

当前的安卓系统使用java作为编程语言,易于开发,但是不会将代码直接编译成机器语言,程序运行时有相当一部分代码还需要通过手机上的虚拟机临时同步编译,影响程序执行的效率。华为方舟编译器采取了静态编译的方式,是首个取代了安卓虚拟机模式的静态编译器。

方舟编译器是基于gcc开发的交叉编译器套件,它包括了c、c++、fortran的前端,也包括了这些语言的库(如libstdc++、libgcc等)。hcc运行在x86linux架构服务器上,生成的二进制运行在aarch64架构服务器上。

安装前准备

1)环境要求

方舟编译器支持如下64位操作系统。

suse12sp4及以上版本。

ubuntu16.04及以上版本。

其他glibc版本在2.22及以上的linux发行版。

2)获取软件包

安装方舟编译器需要获取如表2-1所示的开源软件包。

2.安装hcc编译器

1)操作步骤

您可以使用hcctar包将hcc安装到当前用户权限下的任何位置,而不会影响其他编译器的使用。

a)介绍操作入口,例如用xx帐号登录xx环境。

b)登陆hcc下载地址下载压缩包

hcc_arm64le.tar.gz

c)将tar包拷贝至您想要安装的目录。

命令脚本如下所示。

cphcc_arm64le.tar.gz/path/to/your/dir

d)解压缩软件包。

命令脚本如下所示。

tarzxvfhcc_arm64le.tar.gz

e)设置环境变量。

设置环境变量命令脚本如下所示。

exportpath=/path/to/your/dir/hcc_arm64le/bin:$path

hcc编译器提供的编译工具在=/path/to/your/dir/hcc_arm64le/bin目录下。

2)安装后检查

hcc编译器安装完成后,可以执行aarch64-linux-gnu-gcc-v命令查询hcc版本。

image.png


软件功能

性能革命突破

当前大部分安卓应用都涉及不同开发语言,不同语言形成的代码需要在运行态中进行协同从而产生额外消耗。而方舟编译器是业界首个多语言联合优化的编译器,开发者在开发环境中可以一次性将多语言统一编译为一套机器码,运行时无需产生跨语言带来的额外消耗,并可以进行跨语言的联合优化,提升运行效率。

安卓自身的编译技术在不断的发展,但始终需要在运行中依赖虚拟机来进行动态编译和解释执行,对系统资源消耗较大。而方舟编译器在开发环境中就可以完成全部代码的编译,手机安装应用程序后无需依赖虚拟机资源,即可全速运行程序,带来效率上的极大提升。举一个例子:emui9.1仅仅对系统组件systemserver应用了华为方舟编译器后,就带来了系统操作流畅度提升24%,系统响应性能提升44%的收益。

高效的回收机制

内存管理是程序开发与运行时需要重点考虑的部分,也和系统流畅度息息相关。安卓在内存回收上采用集中回收机制,发声全局回收时更需要暂停应用,这也是随机卡顿的根因之一。而方舟编译器提供了更高效的内存回收机制,回收时无需暂停应用,随时用随时回收,大大提高运行速度。

应用级编译优化

代码优化是编译器最为核心的功能,也是评判一个编译器优劣最重要的标准。当前由于安卓应用使用了虚拟机机制,难以面向不同应用对虚拟机进行针对性的灵活优化。安卓art的aot和jit动态编译因为是运行在手机上,受资源所限,因而只能使用简单的优化算法。而方舟编译器由于是在应用开发阶段进行编译,所以可以允许不同应用灵活采用不同的编译优化方案,而且因为在开发环境编译不会受到手机性能的限制,可以使用更多先进的优化算法,从而使得每个应用的性能达到最佳。

开放开源

华为在持续进行技术创新的同时,也注重将技术成果回馈行业,华为方舟编译器在开发构建的阶段为开发者提供快速的集成编译环境,大大降低了开发者的学习成本和使用成本,令产业与更多用户受益。华为方舟编译器会从2019年开始全面开源,邀请整个产业和生态来一起共同关注和提升安卓性能体验。

什么是编译器

编译器是连接人类世界与机器世界之间的一座桥梁,同时也扮演着“翻译者”的角色。它将程序员使用的高级语言翻译成机器能明白的机器码,从而使得手机能够听懂并执行人类的指令。现有的安卓系统主要是在手机上进行编译,往往有部分程序需要一边转换一边执行,影响程序执行的效率。

编译器优化对程序运行性能及用户体验有显着影响,它的开发,从系统软件到应用软件,需要投入大量的时间和精力进行研发,这一板块在国内尚属“无人区”。华为已经在研发编译器的路上积累了多年,早至2009年华为就创建了编译组,到2013年推出自研编译器hcc,对于华为在移动通信领域领先起到了关键作用,这背后是华为人前赴后继的努力和无数次尝试,终于,在2019年方舟编译器正式与大家见面。

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

版权声明:

1 本站所有资源(含游戏)均是软件作者、开发商投稿,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!

2 本站将不对任何资源负法律责任,所有资源请在下载后24小时内删除。

3 若有关在线投稿、无法下载等问题,请与本站客服人员联系。

4 如侵犯了您的版权、商标等,请立刻联系我们并具体说明情况后,本站将尽快处理删除,联系QQ:2499894784

返回顶部