Oracle发布GraalVM Java JIT编译器 - 但仅在其自有JDK中

Oracle发布GraalVM Java JIT编译器 - 但仅在其自有JDK中

💡 原文英文,约1100词,阅读约需4分钟。
📝

内容提要

Oracle在2024年9月为Oracle JDK 23引入了GraalVM JIT编译器作为实验性功能,该编译器比标准OpenJDK JIT编译器更快且易于维护,能显著降低CPU消耗。Oracle还提出了Project Galahad,计划将GraalVM JIT编译器贡献给OpenJDK社区。

🎯

关键要点

  • Oracle在2024年9月为Oracle JDK 23引入了GraalVM JIT编译器作为实验性功能。

  • GraalVM JIT编译器比标准OpenJDK JIT编译器更快且易于维护,能显著降低CPU消耗。

  • Oracle正在调查将GraalVM JIT编译器纳入所有OpenJDK发行版的可能性。

  • Java需要JIT编译器,因为HotSpot JVM在运行时解释Java的字节码,速度较慢。

  • GraalVM JIT编译器是Oracle实验室项目GraalVM的成果,支持多种JVM语言。

  • 标准OpenJDK HotSpot JIT编译器由C1和C2编译器组成,GraalVM JIT编译器在技术上具有优势。

  • 使用GraalVM JIT编译器,Oracle的云业务软件NetSuite的CPU消耗减少了6-7%。

  • GraalVM还有一个Native Image AOT编译器,能生成瞬时启动的本地可执行文件。

  • 使用GraalVM Native Image可能会面临一些限制,但许多应用框架已支持该功能。

  • Oracle在2022年12月提出了Project Galahad,旨在将GraalVM JIT编译器贡献给OpenJDK社区。

  • Project Galahad的目标是更好地将GraalVM项目与OpenJDK和Oracle JDK对齐。

  • 截至2024年11月,Project Galahad是否会导致GraalVM JIT和AOT编译器纳入未来OpenJDK主线版本尚不明确。

  • Azul Systems的副CTO Simon Ritter回答了关于JIT编译器的问题,强调不同JIT编译器的性能差异。

  • Falcon JIT编译器是Azul的Prime OpenJDK发行版中的替代C2编译器,基于LLVM项目。

  • Graal JIT编译器目前仅作为实验性功能包含在Oracle JDK中,尚未纳入OpenJDK。

🔎

延伸解读

GraalVM JIT编译器的优势

GraalVM JIT编译器相较于标准OpenJDK JIT编译器在性能和维护性上具有明显优势。它的设计使得在运行时将常用方法的字节码转换为机器码的过程更为高效,能够显著降低CPU消耗。这对于需要高性能的云业务软件尤为重要,Oracle的NetSuite在使用GraalVM JIT编译器后,CPU消耗减少了6-7%。

Project Galahad的未来

Project Galahad旨在将GraalVM JIT编译器与OpenJDK更好地对接,但截至2024年11月,其是否会导致GraalVM JIT和AOT编译器纳入OpenJDK主线版本仍不明确。开发者应关注该项目的进展,以便及时调整技术栈和开发策略。

GraalVM Native Image的限制

虽然GraalVM Native Image能够生成瞬时启动的本地可执行文件,但使用时可能会面临一些限制,尤其是对于某些老旧的库和框架。开发者在选择使用Native Image时,应仔细评估其应用的兼容性和调试复杂性,以避免潜在的开发障碍。

延伸问答

GraalVM JIT编译器的主要优势是什么?

GraalVM JIT编译器比标准OpenJDK JIT编译器更快且易于维护,能显著降低CPU消耗。

Oracle为什么要将GraalVM JIT编译器引入Oracle JDK 23?

Oracle希望通过引入GraalVM JIT编译器来提高性能和降低CPU消耗,同时探索将其纳入所有OpenJDK发行版的可能性。

Project Galahad的目标是什么?

Project Galahad旨在将GraalVM JIT编译器和Native Image贡献给OpenJDK社区,并为可能的主线版本孵化做准备。

GraalVM Native Image编译器有什么特点?

GraalVM Native Image编译器能生成瞬时启动的本地可执行文件,并在某些情况下达到接近JIT编译器的性能。

使用GraalVM JIT编译器对Oracle的云软件NetSuite有什么影响?

使用GraalVM JIT编译器后,NetSuite的CPU消耗减少了6-7%。

GraalVM JIT编译器目前的状态是什么?

GraalVM JIT编译器目前仅作为实验性功能包含在Oracle JDK中,尚未纳入OpenJDK。

🏷️

标签

➡️

继续阅读