8月31日,华为官宣方舟编译器正式上线,源代码已开放下载。据悉,目前方舟编译器还在持续演进中,华为表示计划在2020年将方舟编译器完整开源,帮助开发者构建完整的工具链。
但JFinal作者詹波看完关于方舟编译器的深度解析后注意到——为什么完整开源要用10年之久?为什么做一个Java编译器的难度会远比做C++编译器要高得多呢?这一提问一时间引起热议。
方舟技术专家所在的微信群中,方舟编译器专家“不闲”首次回应了这一问题,包括为何不选C++、整体顶尖性能等方面的考虑:
方舟专家“不闲”介绍称,首先在构思方舟的时候华为并没有选择C++,是因为国内生态开发者主要还是Java/Kotlin为主,而Java本身是动态语言,如果要能够在服务器侧做到静态编译,又不能动手裁剪语言的动态能力,就需要IR,运行时,编译器以及编程框架一起修改。这还要考虑复杂的兼容问题,导致技术方案选型的困难。
其次,要想提高流畅度,需要提升内存使用效率、提升JNI效率,需要想尽办法控制动态绑定对性能的影响,需要profile上有更准确的信息,这是系统工程上的困难。
“不闲”表示,其实二进制编译也只是一种技术路线,简单的AOT也是生成二进制,问题的关键是如何提升编译后的代码执行效率,这是当前的主要困难。他引用甲骨文等海外巨头作为例子类比指出,“做出一个可以工作的不难,难在做出世界顶尖性能。”
品牌、内容合作请点这里:寻求合作 ››
想看更多前瞻的文章?扫描右侧二维码,还可以获得以下福利:
下载APP
关注微信号
扫一扫下载APP
与资深行业研究员/经济学家互动交流让您成为更懂趋势的人
违法和不良信息举报电话:400-068-7188 举报邮箱:service@qianzhan.com 在线反馈/投诉 中国互联网联合辟谣平台
Copyright © 1998-2024 深圳前瞻资讯股份有限公司 All rights reserved. 粤ICP备11021828号-2 增值电信业务经营许可证:粤B2-20130734