解密新一代 Java JIT 编译器 Graal

发布时间:2019-11-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了解密新一代 Java JIT 编译器 Graal脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文思路很清晰,分两步走。第一步,老的即时编译的缺陷导致新的编译器孕育而生。第二步,具体讲解Graal编译器的特性。

老即时编译

流程

先启动解释编译,分析出解释多次的代码,使用c1编译器进行编译,再次分析c1编译器编译多次的代码,使用c2编译器进行编译。

c2编译器是最重要的一环,因为c2编译出高度优化的机器码。

缺陷

1.旧代码难以扩展和维护
2.使用更多的JVM内联函数,开发成本太大。

具体解释第二点缺陷

JVM启动的时候会检测运行在哪个处理器上,并且更具特定的处理器生成特定的内联函数表,极大的运用了硬件的能力。这样就导致对于特定的处理器需要特定的内联表函数,就需要更多的内联函数。所以导致开发成本和维护成本大。

新即时编译

目标

更好的编译Java代码,那么出发点就是JIT就是将字节码转换为机器码,在Java中就是从byte[]转到另外一个byte[],那么转换代码可不可以用java来写。

优势

  • 工程师开发新编译器的进入门槛要低得多。
  • 编译器的内存安全性。
  • 能够利用成熟的 Java 工具进行编译器开发。
  • 更快的新编译器功能原型设计。
  • 编译器可以独立于 HotSpot。
  • 编译器能够自己编译自己,以生成更快的 JIT 编译版本。

脚本宝典总结

以上是脚本宝典为你收集整理的解密新一代 Java JIT 编译器 Graal全部内容,希望文章能够帮你解决解密新一代 Java JIT 编译器 Graal所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。