为什么华为方舟编译器要搞 10 年?

华为方舟编译器历经10年研发终开源,旨在超越安卓,提升Java应用性能。面对技术挑战,华为自2009年起组建团队,至2019年正式发布。方舟编译器的难点在于处理Java动态特性,提升内存效率及JNI性能,确保兼容性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击上方“开发者技术前线”,选择“星标”

18:55 在看 真爱


640?wx_fmt=png
来自:开源中国
2019年8月31日,华为方舟编译器开源官网正式上线。 华为的方舟编译器终于迎来了开源,而且开源代码还是承载在自家的官网上。面对这样一个肩负「出于安卓,胜于安卓」使命的编译器,自问世以来就备受大家的关注;此次开源,更是吸引了大众的目光。
那么到底这个编译器从开发至今都经历了哪些挑战?获得了哪些机遇?现在又拥有怎样的魔力?它对于华为而言,意味着什么?
华为宣称为了造这艘「方舟」,磨剑十年

2009 年,华为启动 5G 基础技术研究的同时,开始创建编译组,第一批海内外研究人员加入。

2013 年,华为推出面向基站领域的自研编译器 HCC,并正式提出编译器框架构想。

2014 年,众多海内外专家加入华为,方舟项目正式启动。

2016 年,成立编译器与编程语言实验室。

2019 年,华为方舟编译器正式面世。


640?wx_fmt=png


为何方舟需要研发 10 年?


一时间引起热议。在方舟技术专家所在的微信群中,关于为何方舟需要研发 10 年的问题被首次回应。

640?wx_fmt=jpeg

JFinal 作者詹波的疑惑是为什么方舟编译器需要花费 10 年时间才实现:

640?wx_fmt=png


方舟编译器官网的深度解密文章表明,做出方舟编译器的难度极大。我理解为比做一个 C++ 编译器的难度要大得多得多,否则打造方舟编译器不会需要十年时间。
而 C++ 远比 Java 复杂度高,为什么做一个 Java 编译器的难度会远比做 C++ 编译器要高得多呢?
官网的方舟深度解密文章中并未透彻说明核心难点在哪里。
关于方舟编译器的深度解析,可以查看:。
方舟专家不闲解答了他的疑惑,他介绍,首先在构思方舟的时候华为并没有选择 C++,是因为国内生态开发者主要还是 Java/Kotlin 为主,而 Java 本身是动态语言,如果要能够在服务器侧做到静态编译,又不能动手裁剪语言的动态能力,就需要 IR,运行时,编译器以及编程框架一起修改。这还要考虑复杂的兼容问题,导致技术方案选型的困难。
其次要想提高流畅度,需要提升内存使用效率、提升 JNI 效率,需要想尽办法控制动态绑定对性能的影响,需要 profile 上有更准确的信息,这是系统工程上的困难。
640?wx_fmt=jpeg
不闲表示,其实二进制编译也只是一种技术路线,简单的 AOT 也是生成二进制,问题的关键是如何提升编译后的代码执行效率,这是当前的主要困难。做出一个可以工作的不难,难在做出世界顶尖性能。“甲骨文、Jetbrains 等很多海外公司都在做类似尝试,如果不是有大牛压台……我们国内能做 IR 设计和内存模型的人很少,大家也都不再用汇编编程了。”
640?wx_fmt=jpeg

究竟是方舟编译器是真厉害,还是吹的厉害?届时还要看实际运用中的数据,就留给时间证明吧,让我们拭目以待!

---END---

选择”开发者技术前线 “星标?,内容一触即达。点击原文更多惊喜!

开发者技术前线 汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。

历史推荐





点个在看,月薪几万!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值