GraalVM 中文文档

2,817 阅读3分钟

A short introduction to GraalVM

GraalVM是一个生态系统和共享运行时,不仅提供基于JVM的语言(如Java,Scala,Groovy和Kotlin)的性能优势,还提供其他编程语言(如JavaScript,Ruby,Python和R)的性能优势.此外,它还支持通过LLVM前端在JVM上执行本机代码. GraalVM 19.2.0基于JDK版本8u222.

GraalVM system diagram

上图说明了GraalVM作为开放式生态系统的体系结构.

虚拟化层代表GraalVM提供的编程语言. 客户编程语言(即JavaScript,Ruby,R,Python和LLVM bitcode)在与基于主机JVM的应用程序相同的运行时中的执行现在是脚踏实地的. 宿主语言和客户语言可以直接相互操作,并在同一存储空间中来回传递数据.

底部展示了适用范围. GraalVM既可以独立运行,也可以作为OpenJDK或Node.js平台的一部分进行嵌入,甚至可以在Oracle数据库中执行.

Distribution Components List

GraalVM由核心和可选组件组成,并作为存档分发. 该存档允许使用GraalVM作为高性能可嵌入多语言应用程序的运行时平台,并包括以下内容:

  • Runtimes
    • Java HotSpot VM运行时启用了GraalVM编译器,作为基于JVM的语言和支持的客户编程语言的顶层JIT编译器.
    • Node.js运行时,启用了GraalVM JavaScript解释器作为JavaScript引擎.
  • 库(jar文件)
    • GraalVM编译器 - 一种动态即时(JIT)编译器,通过独特的代码分析和优化方法提高应用程序的效率和速度.
    • JavaScript解释器 - 符合ECMAScript的JavaScript引擎.
    • LLVM bitcode解释器 - 直接从LLVM bitcode执行程序的lli工具的实现.
    • GraalVM Polyglot API - 用于在共享运行时中组合编程语言的API. 这些API允许您根据需要匹配编程语言,并使用更少的资源为您提供更好的性能.
  • Utilities
    • 使用GraalVM JavaScript解释器的JavaScript REPL
    • LLVM bitcode解释器命令行实用程序
    • GraalVM Updater实用程序,用于安装和管理其他组件

可以使用可选组件扩展GraalVM基本安装:

  • GraalVM Native Image功能,允许将脚本应用程序提前编译为本机机器代码二进制文件. 警告: GraalVM Native Image作为Early Adopter技术提供 ,这意味着它可以在生产中使用,并且作为Oracle GraalVM Enterprise Edition订阅的一部分将由Oracle支持,但不受Oracle标准保修的保护.
  • Python解释器 - 符合Python 3.7的实现.
  • Ruby解释器 - 基于Ruby,MRI,2.6.2版标准实现的Ruby引擎.
  • R解释器 - R编程语言的GNU R 3.5.1兼容实现.

警告:对Ruby,R和Python语言的支持是实验性的 . 实验性功能可能永远不会包含在生产版本中,或者在被视为生产就绪之前可能会发生重大变化.

GraalVM Features

GraalVM可以让你:

GraalVM Documentation

无论您是第一次尝试使用GraalVM运行应用程序还是准备开始使用GraalVM Polyglot API进行编码,请查看我们的文档以帮助您.

或者,您可以查看GraalVM SDK Javadoc中的参考文档:

  • Polyglot Package允许您配置和运行多语言应用程序.
  • Proxy Package允许您使用代理模仿客户语言对象.
  • The IO包 allows you to customize the file system access of languages.

如果您无法找到所需答案或有疑难解答疑问,请与我们联系 .