graalvm - 捆绑的 Graal VM 与其他 VM + Graal JIT 的区别
问题描述
IIUC,GraalVM 项目提供了新的 JIT 编译器,它应该适用于任何 JVM 发行版(OpenJDK、Oracle、Amazon Corretto),但是,GraalVM 网站还提供了基于 OpenJDK 的捆绑下载。那么,使用 Graal JIT 与其他发行版 VS 使用 Graal 自己的发行版有什么区别?Graal 是否在自己的发行版中进一步优化 JVM?
解决方案
新的 JIT 编译器应该与任何实现 JEP243 Java-Level JVM Compiler Interface 的 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 的基准测试
推荐阅读
- python - pyodbc/sqlAchemy 启用快速执行许多
- google-analytics - 是否可以在没有 Bigquery 的情况下将 google analytics 360 集成到数据仓库
- scala - Scala-不为理解而编译
- android - 将textNoSuggestions添加到editText后如何在键盘中显示输入按钮?
- android - 为什么在只使用 Android SDK 的情况下,我需要安装 JDK 来构建 Unity 应用程序?
- c# - 有没有办法在 UWP 中链接应用程序?
- makefile - 命令 make 无法识别 Makefile 的“[”
- docker - 源文件已更新,但 CMD 不反映
- javascript - 为什么javascript reduce函数输出字符串数组
- php - PHP如何使用html表格按钮从数据库中删除特定行