相关文章推荐
曾深爱过的蛋挞  ·  解决Nginx占用80端口问题 - ...·  2 月前    · 
高大的小虾米  ·  【Typescript入门手册】类型收窄(N ...·  2 年前    · 
Code  ›  GraalVM基本介绍开发者社区
jvm
https://cloud.tencent.com/developer/article/2259063
淡定的米饭
2 年前
作者头像
从大数据到人工智能
0 篇文章

GraalVM基本介绍

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 大数据-BigData > GraalVM基本介绍

GraalVM基本介绍

作者头像
从大数据到人工智能
发布 于 2023-04-06 13:12:04
868 0
发布 于 2023-04-06 13:12:04
举报

GraalVM 是一种高性能 JDK,旨在加速用 Java 和其他 JVM 语言编写的应用程序的执行,同时还为 JavaScript、Python 和许多其他流行语言提供运行时。 GraalVM 提供两种运行 Java 应用程序的方法:在 HotSpot JVM 上使用 Graal 即时 (JIT) 编译器或作为提前 (AOT) 编译的本机可执行文件。 GraalVM 的多语言能力使得在单个应用程序中混合多种编程语言成为可能,同时消除了外语调用成本。

此页面提供了 GraalVM 的架构概述及其运行时模式、支持的平台、可用的发行版、核心和附加功能以及各种功能的支持级别。

GraalVM架构

GraalVM基本介绍
GraalVM基本介绍

GraalVM 向 HotSpot Java 虚拟机添加了一个用 Java 编写的 高级即时 (JIT) 优化编译器 。

除了运行 Java 和基于 JVM 的语言外, GraalVM 的语言实现框架(Truffle) 使得在 JVM 上运行 JavaScript、Ruby、Python 和许多其他流行语言成为可能。 借助 GraalVM Truffle,Java 和其他支持的语言可以直接相互操作并在同一内存空间来回传递数据。

运行时模式

GraalVM 是独一无二的运行时环境,提供多种操作模式:JVM 运行时模式、Native Image、Java on Truffle(相同的 Java 应用程序可以在任一模式上运行)。

JVM运行时模式

在 HotSpot JVM 上运行程序时,GraalVM 默认使用 GraalVM 编译器作为顶层 JIT 编译器。 在运行时,应用程序在 JVM 上正常加载和执行。 JVM 将 Java 或任何其他 JVM 本地语言的字节码传递给编译器,编译器将其编译为机器代码并将其返回给 JVM。 在 Truffle 框架之上编写的支持语言的解释器本身就是在 JVM 上运行的 Java 程序。

原生镜像

Native Image 是一项创新技术,可将 Java 代码编译成独立的本机可执行文件或本机共享库。 在构建本机可执行文件期间处理的 Java 字节码包括所有应用程序类、依赖项、第三方依赖库和任何所需的 JDK 类。 生成的自包含本机可执行文件特定于不需要 JVM 的每个单独的操作系统和机器体系结构。

Java on Truffle

Java on Truffle 是 Java 虚拟机规范的实现,使用 Truffle 语言实现框架构建。 它是一个完整的 Java VM,包括所有核心组件,实现与 Java 运行时环境库相同的 API,并重用 GraalVM 中的所有 JAR 和本机库。

可用发行版

GraalVM 可作为 GraalVM Enterprise 和 GraalVM Community 版本使用,包括对 Java 11 和 Java 17 的支持。GraalVM Enterprise 基于 Oracle JDK,而 GraalVM Community 基于 OpenJDK。

GraalVM 适用于 x86 64 位和 AArch64 系统上的 Linux 和 macOS,以及 x86 64 位架构上的 Windows。 根据平台的不同,发行版以 .tar.gz 或 .zip 存档形式提供。 有关安装说明,请参阅 入门指南 。

相关组件列表

GraalVM 由核心组件和附加组件组成。 核心组件支持使用 GraalVM 作为以基于 JVM 的语言编写的程序或可嵌入的多语言应用程序的运行时平台。

核心组件

Java HotSpot虚拟机

Graal 编译器——顶级的 JIT 编译器

Polyglot API——用于在共享运行时中组合编程语言的 API

GraalVM Updater – 用于安装附加功能的实用程序

其他组件

可以使用更多语言运行时和实用程序扩展 GraalVM 核心安装。

Tools/Utilities:

  • Native Image——一种提前将应用程序编译为本地平台可执行文件的技术。
  • LLVM 工具链——一组工具和 API,用于将本机程序编译为可在 GraalVM 上执行的位码。

Runtimes:

  • 带有 JavaScript REPL 和 JavaScript 解释器的 JavaScript 运行时
  • Node.js – 适用于 JavaScript 的 Node.js 16.14.2 运行时
  • 带有 lli 工具的 LLVM 运行时直接从 LLVM 位码执行程序
 
推荐文章
曾深爱过的蛋挞  ·  解决Nginx占用80端口问题 - 离人怎挽_wdj - 博客园
2 月前
高大的小虾米  ·  【Typescript入门手册】类型收窄(Narrowing)_ts类型收窄_余光、的博客-CSDN博客
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号