为什么选择 GraalVM?

本贴最后更新于 270 天前,其中的信息可能已经时移俗易

GraalVM 是一款强大的虚拟机,它为 Java 开发者提供了许多独特的优势和功能。无论是在资源利用率、启动速度、安全性还是与其他语言的集成方面,GraalVM 都是一个非常有吸引力的选择。

以下是选择 GraalVM 的几个主要原因:

低资源使用

GraalVM 通过提前编译 Java 应用程序为独立的二进制文件,从而降低了内存和 CPU 的使用。与即时编译相比,GraalVM 不需要在运行时进行编译,因此应用程序在运行时需要的资源更少。这使得应用程序在大规模运行时更加高效和经济。

快速启动

GraalVM 可以在构建时初始化部分元素,而不是在运行时,从而实现更快的 Java 应用程序启动速度。这意味着应用程序可以立即达到可预测的最高性能,无需预热过程。

紧凑打包

GraalVM 编译的 Java 应用程序体积小巧,可以轻松打包为轻量级容器镜像,实现快速高效的部署。

提高安全性

GraalVM 通过从二进制文件中排除无法访问的代码(未使用的类、方法和字段)、即时编译基础设施和构建时初始化的代码,减少了 Java 应用程序的攻击面。GraalVM 的封闭世界假设还可以在运行时禁用反射、序列化等动态特性,从而进一步提高应用程序的安全性。此外,GraalVM 还可以在二进制文件中嵌入软件材料清单(SBOM),方便使用常见的安全扫描工具检查 Java 应用程序二进制文件中的已发布 CVE(公共漏洞和暴露)。

构建云原生微服务

GraalVM 得到了许多流行的微服务框架(如 Spring Boot、Micronaut、Helidon 和 Quarkus)和云平台(如 Oracle Cloud Infrastructure、Amazon Web Services、Google Cloud Platform 和 Microsoft Azure)的支持。这使得开发者能够轻松构建云原生的 Java 微服务,将其编译为二进制文件,并在 OCI、AWS、GCP 和 Azure 等云平台上运行。

扩展 Java 应用程序的能力

GraalVM 可以嵌入其他语言(如 Python、JavaScript 等),从而扩展 Java 应用程序的功能。这为开发者提供了更多的选择和灵活性。

兼容现有的开发和监控工具

GraalVM 与现有的 Java 应用程序开发和监控工具兼容。它提供了适用于 Maven 和 Gradle 的构建插件,以及适用于 CI/CD 的 GitHub Actions。GraalVM 还支持 Java Flight Recorder(JFR)、Java Management Extensions(JMX)、堆转储、VisualVM 和其他监控工具。此外,GraalVM 与现有的 Java 编辑器/IDE 和单元测试框架(如 JUnit)兼容。

在 GraalVM JDK 上运行更快的 Java 应用程序

GraalVM JDK 是一个完整的 JDK 发行版,它通过新的高级即时编译器(Graal)使 Java 应用程序运行更快。GraalVM 使用 Java HotSpot VM 作为平台,因此在 OpenJDK 上工作的所有工具和库在 GraalVM JDK 上也能正常运行。GraalVM JDK 将 JVM 中的最后一层优化编译器(C2)替换为 Graal 编# 为什么选择 GraalVM?

GraalVM 是一款强大的虚拟机,它为 Java 开发者提供了许多独特的优势和功能。无论是在资源利用率、启动速度、安全性还是与其他语言的集成方面,GraalVM 都是一个非常有吸引力的选择。

以下是选择 GraalVM 的几个主要原因:

低资源使用

GraalVM 通过提前编译 Java 应用程序为独立的二进制文件,从而降低了内存和 CPU 的使用。与即时编译相比,GraalVM 不需要在运行时进行编译,因此应用程序在运行时需要的资源更少。这使得应用程序在大规模运行时更加高效和经济。

快速启动

GraalVM 可以在构建时初始化部分元素,而不是在运行时,从而实现更快的 Java 应用程序启动速度。这意味着应用程序可以立即达到可预测的最高性能,无需预热过程。

紧凑打包

GraalVM 编译的 Java 应用程序体积小巧,可以轻松打包为轻量级容器镜像,实现快速高效的部署。

提高安全性

GraalVM 通过从二进制文件中排除无法访问的代码(未使用的类、方法和字段)、即时编译基础设施和构建时初始化的代码,减少了 Java 应用程序的攻击面。GraalVM 的封闭世界假设还可以在运行时禁用反射、序列化等动态特性,从而进一步提高应用程序的安全性。此外,GraalVM 还可以在二进制文件中嵌入软件材料清单(SBOM),方便使用常见的安全扫描工具检查 Java 应用程序二进制文件中的已发布 CVE(公共漏洞和暴露)。

构建云原生微服务

GraalVM 得到了许多流行的微服务框架(如 Spring Boot、Micronaut、Helidon 和 Quarkus)和云平台(如 Oracle Cloud Infrastructure、Amazon Web Services、Google Cloud Platform 和 Microsoft Azure)的支持。这使得开发者能够轻松构建云原生的 Java 微服务,将其编译为二进制文件,并在 OCI、AWS、GCP 和 Azure 等云平台上运行。

扩展 Java 应用程序的能力

GraalVM 可以嵌入其他语言(如 Python、JavaScript 等),从而扩展 Java 应用程序的功能。这为开发者提供了更多的选择和灵活性。

兼容现有的开发和监控工具

GraalVM 与现有的 Java 应用程序开发和监控工具兼容。它提供了适用于 Maven 和 Gradle 的构建插件,以及适用于 CI/CD 的 GitHub Actions。GraalVM 还支持 Java Flight Recorder(JFR)、Java Management Extensions(JMX)、堆转储、VisualVM 和其他监控工具。此外,GraalVM 与现有的 Java 编辑器/IDE 和单元测试框架(如 JUnit)兼容。

在 GraalVM JDK 上运行更快的 Java 应用程序

GraalVM JDK 是一个完整的 JDK 发行版,它通过新的高级即时编译器(Graal)使 Java 应用程序运行更快。GraalVM 使用 Java HotSpot VM 作为平台,因此在 OpenJDK 上工作的所有工具和库在 GraalVM JDK 上也能正常运行。GraalVM JDK 将 JVM 中的最后一层优化编译器(C2)替换为 Graal 编

  • GraalVM
    3 引用
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...