捆绑的 Graal VM 与其他 VM + Graal JIT 之间的区别
Difference between bundled Graal VM and other VMs + Graal JIT
IIUC,GraalVM 项目提供了新的 JIT 编译器,它应该可以与任何 JVM 发行版(OpenJDK、Oracle、Amazon Corretto)一起使用,但是,GraalVM 网站还提供了基于 OpenJDK 的捆绑下载。
那么,将 Graal JIT 与其他发行版一起使用与使用 Graal 自己的发行版之间有什么区别? Graal 是否在他们自己的发行版中进一步优化了 JVM?
新的 JIT 编译器应该可以与任何实现 JEP243 Java 级 JVM 编译器接口的 JVM 一起工作,该接口目前仅由 HotSpot JVM 实现。 GraalVM 团队向 open/oracle JDK8 提供了它的反向移植,它包含在 JDK9 及更高版本中。对于其他发行版(亚马逊等),这取决于它们所基于的 HotSpot 版本。
您可以 运行 使用这些选项与 JDK9+ 捆绑在一起的 Graal 编译器(我认为它仅适用于 Linux):
-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler
您将可以更轻松地使用 GraalVM,因为一切都已经在那里设置,并且您将获得最新的 GraalVM 编译器。最重要的是,GraalVM 提供了额外的功能,例如 Java 程序的快速启动和低内存占用的本机图像,JavaScript,Python,Ruby 等动态语言,和 R,等等。此外,还有一个企业版的 GraalVM,其中包含进一步的优化。
参考文献:
https://www.graalvm.org/ 有关功能的更多详细信息
https://renaissance.dev 社区版和企业版 GraalVM 的基准测试
IIUC,GraalVM 项目提供了新的 JIT 编译器,它应该可以与任何 JVM 发行版(OpenJDK、Oracle、Amazon Corretto)一起使用,但是,GraalVM 网站还提供了基于 OpenJDK 的捆绑下载。 那么,将 Graal JIT 与其他发行版一起使用与使用 Graal 自己的发行版之间有什么区别? Graal 是否在他们自己的发行版中进一步优化了 JVM?
新的 JIT 编译器应该可以与任何实现 JEP243 Java 级 JVM 编译器接口的 JVM 一起工作,该接口目前仅由 HotSpot JVM 实现。 GraalVM 团队向 open/oracle JDK8 提供了它的反向移植,它包含在 JDK9 及更高版本中。对于其他发行版(亚马逊等),这取决于它们所基于的 HotSpot 版本。
您可以 运行 使用这些选项与 JDK9+ 捆绑在一起的 Graal 编译器(我认为它仅适用于 Linux):
-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler
您将可以更轻松地使用 GraalVM,因为一切都已经在那里设置,并且您将获得最新的 GraalVM 编译器。最重要的是,GraalVM 提供了额外的功能,例如 Java 程序的快速启动和低内存占用的本机图像,JavaScript,Python,Ruby 等动态语言,和 R,等等。此外,还有一个企业版的 GraalVM,其中包含进一步的优化。
参考文献:
https://www.graalvm.org/ 有关功能的更多详细信息
https://renaissance.dev 社区版和企业版 GraalVM 的基准测试