关于GraalVM的说明

GraalVM介绍

         GraalVM 是由 Oracle Labs 开发的新一代高性能运行时,它不仅能显著提升 Java 应用在 JVM 上的执行效率,更能通过其革命性的 原生镜像(Native Image)技术,将 Java 应用编译成独立的、平台相关的可执行文件。这使得 Java 应用拥有了毫秒级启动极低内存占用的能力,完美契合云原生、Serverless 和微服务等现代应用场景。通俗的说就是可以把class文件直接编译成可执行文件,不依赖JDK执行,运行速度快,内存占用低。

关于国产平台及中间件是否支GraalVM的说明

1. 从授权方GraalVM分为社区版和商业版

功能项GraalVM CE 社区版GraalVM EE 企业商业版(含新版 Oracle GraalVM)
开源协议GPLv2 with Classpath Exception,完整开源闭源专有许可,不可二次分发;新版商用免费但不开源
使用成本个人 / 企业开发、生产永久免费旧版需 Java SE 订阅付费;新版 Oracle GraalVM 生产免费,无官方售后
官方技术支持无 7×24 工单 SLA,仅 GitHub 社区付费订阅提供官方故障排障、安全补丁、专项调优支持
自定义移植源码公开,可自主移植龙芯 LoongArch/RISC-V闭源,无源码,仅官方 x86/AArch64 预编译包

2. 关于支持平台

    官方仅提供x86/AArch64平台的windows、linux版本,龙芯、申威等平台版本不提供。

3. 按运行方式

    (1) GraalVM 运行时 (GraalVM Runtime):这是一个功能完整的 JDK 发行版,可以像 OpenJDK 或 Oracle JDK 一样直接运行 .jar 文件。它内置了一个名为 Graal Compiler 的高性能 JIT 编译器,可以替换掉 HotSpot 的 C2 编译器,为传统 JVM 应用提供潜在的性能提升。

    (2) 原生镜像 (Native Image):这是 GraalVM 最具颠覆性的特性。它是一个 AOT (Ahead-of-Time) 工具。它能在构建时对您的 Java 应用进行静态分析,将应用代码、所有依赖库以及 JDK 运行时中实际用到的部分,全部链接并编译成一个独立的二进制可执行文件(如 Linux 下的 my-app,Windows 下的 my-app.exe)。

优势:启动速度极快(毫秒级)、内存占用极低、无需安装 JVM 即可运行。

限制:由于是静态分析,Java 中的动态特性(如反射、动态代理、JNI)需要显式配置才能被识别。

       通俗的说:如果GraalVM当普通JDK使用,则传统的Java类程序均可以运行。若是想通过Native Image将Java程序编译成二进制可执行文件,举例:

(1) 下载安装GraalVM

(2)  创建简单的Java程序

package com.tong;
public class HelloWorld {
      public static void main(String[] args) {
         System.out.println("Hello, GraalVM Native Image!");
      }
}

(3) 通过javac编译为class文件。

(4) 通过native-image命令来构建二进制文件

#native-image [全局选项] [目标选项(-H:xxx、-R:xxx)] [类路径] 主类名 [-o 输出文件名]
native-image  -cp ./ com.tong.HelloWorld -o helloworld

        构建成功后,您会在当前目录下看到一 helloworld或 helloworld.exe的可执行文件,该文件可以脱离JDK来运行。

注意:以上只是一个简单举例,当应用使用了 Spring Boot、Hibernate 等框架时,它们大量依赖反射。此时直接构建 Native Image 会失败。解决方案是使用 GraalVM 提供的 Tracing Agent 来自动生成所需的反射配置文件。后期运行过程中的调试也变的麻烦。

所以要考虑采用GraalVM要从这几方面来分析:

1. GraalVM的商业授权。

2. GraalVM支持的平台,先咨询麒麟、统信操作系统等是否支持GraalVM。

3. GraalVM的使用方式,一是当传统的JDK来使用,TongWeb支持;二是通过Native Image生成二进制文件,TongWeb企业版目前不能采用这种方式,绝大部分应用也很难一次性通过Native Image编译成功,后期运维、分析问题也是需要考虑的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值