昨天华为正式开源了其方舟编译器,一时间引起热议。在方舟技术专家所在的微信群中,关于为何方舟需要研发 10 年的问题被首次回应。

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

方舟编译器官网的深度解密文章表明,做出方舟编译器的难度极大。我理解为比做一个 C++ 编译器的难度要大得多得多,否则打造方舟编译器不会需要十年时间。

而 C++ 远比 Java 复杂度高,为什么做一个 Java 编译器的难度会远比做 C++ 编译器要高得多呢?

官网的方舟深度解密文章中并未透彻说明核心难点在哪里。

关于方舟编译器的深度解析,可以查看:拜拜虚拟机,全面深度解密华为方舟编译器

方舟专家不闲解答了他的疑惑,他介绍,首先在构思方舟的时候华为并没有选择 C++,是因为国内生态开发者主要还是 Java/Kotlin 为主,而 Java 本身是动态语言,如果要能够在服务器侧做到静态编译,又不能动手裁剪语言的动态能力,就需要 IR,运行时,编译器以及编程框架一起修改。这还要考虑复杂的兼容问题,导致技术方案选型的困难

其次要想提高流畅度,需要提升内存使用效率、提升 JNI 效率,需要想尽办法控制动态绑定对性能的影响,需要 profile 上有更准确的信息,这是系统工程上的困难

不闲表示,其实二进制编译也只是一种技术路线,简单的 AOT 也是生成二进制,问题的关键是如何提升编译后的代码执行效率,这是当前的主要困难。做出一个可以工作的不难,难在做出世界顶尖性能。“甲骨文、Jetbrains 等很多海外公司都在做类似尝试,如果不是有大牛压台……我们国内能做 IR 设计和内存模型的人很少,大家也都不再用汇编编程了。”

为何要搞 10 年?方舟编译器专家首次回应相关推荐

  1. 安卓代码拉下来编译后怎么运行_支付宝秒开是因为用了方舟编译器?官方回应...

    近期有不少用户发现,支付宝在更新后可以实现秒开,有传言称支付宝是采用了华为的方舟编译器才达到了这种效果. 有网友在知乎提问:如何看待支付宝采用华为方舟编译器几乎秒开的消息?" 这位网友表示: ...

  2. 权威专家首次回应宠物能否传播新型肺炎:接触到疫情需要监控

    铠霖 乾明 发自 凹非寺  量子位 报道 | 公众号 QbitAI "人会传染宠物吗?宠物染病后会传染人吗?" 新型冠状病毒刚刚爆发之时,不少人都非常关注这些问题. 现在有了权威回 ...

  3. 方舟编译器开源技术沙龙北京站首秀:让开源激活软件开发的潜力

    9月7日,首场方舟编译器开源技术沙龙在华为北京研究所举办.行业专家.高校学者.应用开发者和方舟编译器专家齐聚一堂,以方舟编译器开源为主题,围绕基础软件发展.开源社区构建.开源生态建设等方面进行了深入讨 ...

  4. 华为开发者大会上,鸿蒙问世、方舟编译器开源、还有 EMUI 10;壕置100万美元,苹果推出漏洞攻击报告赏金计划……...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

  5. 华为宣布方舟编译器将开源;​苹果秋季发布会定档9月10日;TypeScript 3.6 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  6. 方舟编译器来了,APK加固还怎么搞

    方舟编译器来了,apk里的代码都变成so文件了,还怎么做加固? 热烈欢迎方舟编译器上线开源! 根据华为发布的方舟编译器架构图可看出,应用方舟编译器后,输出变成了二进制文件,并添加编译器运行时库后最终链 ...

  7. 万字长文详解华为方舟编译器的荣光和使命

    本文由MO编辑部出品,文字超1万,查阅的资料多达上百万文字,并且与华为方舟编译器的专家做过深度访谈.其不仅解析了华为在编译器和手机系统方面做的多年准备,也向读者展现了波澜壮阔的软件产业发展史. 201 ...

  8. 华为新贵!方舟编译器的荣光和使命

    本文由MO编辑部出品,文字超1万,查阅的资料多达上百万文字,并且与华为方舟编译器的专家做过深度访谈.文章高度概括了波澜壮阔的软件产业发展史,解析了华为在编译器和手机系统方面做的多年准备. 2017年5 ...

  9. 关于华为方舟编译器,你想知道的都在这里!

    原文链接地址: 关于华为方舟编译器,你想知道的都在这里! - 华为终端的文章 - 知乎 https://zhuanlan.zhihu.com/p/77108133 2017年5月的一个凌晨,华为某实验 ...

最新文章

  1. 源码分析(一) 进程cleos的命令解析
  2. Putty、Xshell连接Linux
  3. ubuntu笔记:查看Ubuntu的包依赖关系
  4. boost::next_permutation相关的测试程序
  5. C++shell sort希尔排序的实现算法之一(附完整源码)
  6. VC++ CFileDialog文件选择对话框的构造和文件操作
  7. 一加8 Pro或将配备120Hz刷新率屏幕
  8. windows设备管理器
  9. python识别验证码ocr_Python3使用tesserocr识别字母数字验证码
  10. 【图像隐写】基于matlab DWT+DCT+LSB数字水印隐藏提取比较【含Matlab源码 1623期】
  11. ideal如何用标签输出_实战|如何使用JavaScript访问设备前后摄像头
  12. recv函数的返回值梳理
  13. Mongodb索引及explain
  14. 【计算机组成原理】程序,指令,机器指令,微程序,微指令,微命令,微操作的关系
  15. vue老项目升级vue-cli3.0问题总结
  16. 学计算机投影仪定义,一种计算机教学用投影仪射头的制作方法
  17. 图像滤波边界处理方法对图像滤波的影响
  18. 10岁男孩开灯睡觉骨龄发育慢4年上热搜,开灯睡觉都有什么危害?
  19. Android商城项目开源
  20. JDK 18 / Java 18 正式发布:九项 JDK 增强

热门文章

  1. python邮件发送_Python实现邮件发送
  2. plsql如何显示表结构图_产品经理需了解的架构图/结构图知识
  3. oracle 德文符号处理_南沙区专业高效的化妆废水处理操作简单
  4. 配色方案没有头绪?看看给你灵感的专业指导
  5. 实用素材模板|常见的UI设计手法
  6. anaconda 设置python3为主_【windows】下Anaconda详细安装过程
  7. java qrious 二维码中文无反应_来了来了,今天的苹果限免应用刚刚出炉,8款APP在App Store限时免费啦!手慢无~...
  8. 《Web前端开发最佳实践》学习笔记
  9. CUDA的线程层次结构
  10. Linux内核构建与开发