当前位置: 首页 > ai >正文

GraalVM !拥抱云原生的 JVM

这是2024年初的 GraalVM 系列博文,当时写了大纲,知道一年半后的现在才得以完成发布😄

概述

我计划针对GraalVM写一个系列的文章,初步大纲:

  1. GraalVM!拥抱云原生的 JVM
  2. 在JVM跑JavaScript脚本 | FaaS架构简单实现

GraalVM 简介

2024年官网截图
GraalVM 是一款基于 Java 虚拟机 (JVM) 的新型全栈虚拟机,由 Oracle 公司开发和维护。GraalVM 除了支持 Java 语言之外,还支持多种编程语言,如 JavaScript、Python、Ruby、R 等。主要特点是:

  • 高性能:GraalVM 基于 JIT (Just-in-time) 编译技术,在运行时动态生成本地代码,可以显著提高程序的性能。
  • 多语言支持:GraalVM 支持多种编程语言,并可以在不同的语言之间进行互操作。
  • 低内存占用:GraalVM 使用了一种名为 GraalVM Native Image 的技术,可以将应用程序编译成本地可执行文件,从而减少内存占用和启动时间。
  • 可扩展性:GraalVM 提供了多种插件和扩展点,可以方便地扩展虚拟机的功能和性能。
  • GraalVM 还提供了多种工具和库,如 GraalVM Compiler、GraalVM Truffle、GraalVM Polyglot 等,可以帮助开发人员更好地使用和优化 GraalVM。

时隔一年半,GraalVM 官网界面也发生了变化(见下图),github 收藏数增加了近 1000(涨幅不算大😂)。

2025年8月官网截图

近两年 GraalVM 主要版本发布一览

时间类型发布版本
2023-09-19FeatureGraalVM for JDK 21(LTS)
2023-10-24CPUJDK 23.0.1
2024-01-16CPUJDK 17.0.10 / 21.0.2
2024-03-19FeatureGraalVM for JDK 22
2024-04-16CPUJDK 22.0.1 / 21.0.3 / 17.0.11
2024-07-16CPUJDK 22.0.2 / 21.0.4 / 17.0.12
2024-09-17FeatureGraalVM for JDK 23
2024-10-15CPUJDK 23.0.1 / 21.0.5 / 17.0.13
2025-01-21CPUJDK 23.0.2 / 21.0.6 / 17.0.14
2025-03-18FeatureGraalVM for JDK 24
2025-04-15CPUJDK 24.0.1 / 21.0.7 / 17.0.15
2025-07-15CPUJDK 24.0.2 / 21.0.8 / 17.0.16

安装GraalVM

GraalVM 的安装方式比较简单,可以分成 直接下载压缩包通过包管理器安装 两大类。


1. 直接下载(官方推荐方式)

  1. 访问 GraalVM 官网:

    • 社区版(Community Edition):https://www.graalvm.org/downloads/
    • Oracle 版(Oracle GraalVM):https://www.oracle.com/downloads/graalvm-downloads.html
  2. 选择你的 操作系统(Windows / macOS / Linux)和 JDK 版本(17、21、最新等)。

  3. 下载对应的 压缩包.zip.tar.gz)。

  4. 解压到一个固定目录(例如 C:\graalvm/opt/graalvm)。

  5. 配置环境变量(仅供参考):

    # Linux / macOS
    export GRAALVM_HOME=/opt/graalvm/graalvm-ce-java21-24.0.2
    export PATH=$GRAALVM_HOME/bin:$PATH# Windows PowerShell
    setx GRAALVM_HOME "C:\graalvm\graalvm-ce-java21-24.0.2"
    setx PATH "%GRAALVM_HOME%\bin;%PATH%"
    

2. 通过包管理器安装

macOS(Homebrew)

brew install --cask graalvm/tap/graalvm-ce-java21

Linux(SDKMAN!)

curl -s "https://get.sdkman.io" | bash
sdk install java 21.0.2-graal

Windows(Scoop)

scoop bucket add java
scoop install graalvm-ce-java21

3. 可选组件安装

GraalVM 自带 JVM,可以安装额外的语言和工具,例如 native-image

gu install native-image

验证安装

java -version

看到输出带有 GraalVM 就表示安装成功。

参考资料

  • 快速带你了解JDK9~JDK17新特性
http://www.xdnf.cn/news/17474.html

相关文章:

  • Python 的浅拷贝 vs 深拷贝(含嵌套可变对象示例与踩坑场景)
  • 人工智能正在学习自我提升的方式
  • TF-IDF提取关键词(附实战案例)
  • 商业解决方案技术栈总结
  • CVPR医学图像三套创新方案:通用分割+3D高效解码+SSM肿瘤定位(附链接)
  • 算法训练营day44 动态规划⑪ 1143.最长公共子序列、1035.不相交的线、53. 最大子序和、392.判断子序列
  • 【Redis】持久化方案——RDB和AOF
  • Vue3从入门到精通: 2.5 Vue3组件库开发与设计系统构建
  • 海关 瑞数 失信企业 逆向 分析 后缀 rs
  • Java高并发场景下的缓存穿透问题定位与解决方案
  • MySQL的存储引擎:
  • Java中new的相关知识
  • TDengine IDMP 快速体验(方式二 通过 docker)
  • 系统测试讲解 - Java使用selenium实现滑块验证的处理详解
  • Qt 框架全面解析:从基础到应用
  • 亚麻云之静态资源管家——S3存储服务实战
  • 在Word和WPS文字一页中实现一栏与多栏混排
  • 瑞芯微 RK3588 平台驱动开发 学习计划
  • OpenEnler等Linux系统中安装git工具的方法
  • 机器学习-----K-means算法介绍
  • 数据类型全解析
  • PostgreSQL因为A/B switch以及group表过多导致WAL full的情况讨论
  • 冒泡排序实现以及优化
  • django基于Python的设计师作品平台的数据可视化系统设计与实现
  • 数字图像处理2——图像增强
  • Java设计模式之开闭原则介绍与说明
  • TypeScript中的type和interface的区别是什么?
  • 红楼梦文本数据分析
  • LeetCode 869.重新排序得到 2 的幂:哈希表+排序(一次初始化)
  • 前端开发的奇技淫巧 --- 持续更新中