GraalVM 是新一代的高性能跨语言虚拟机,用于运行 JavaScript、Python 3、Ruby、R、基于 JVM 的语言,如 Java、Scala、Kotlin 和基于 LLVM 的语言,如 C 和 C++。
GraalVM 消除了编程语言之间的隔离,并支持共享运行时的互操作性。它可以独立运行,也可以在 OpenJDK、Node、Oracle 或者 MySQL 上运行。
1.0 RC15 针对 Java、JavaScript、R、Ruby、Python 语言和 LLVM解释器进行 bug 修复,部分新增了不少新特性。此外还对 API 进行了变更,以及改进部分自带工具的功能
开发团队表示,在发布 1.0 稳定版前,更新主要都是围绕提升稳定性来进行,详情请查看发布说明。
GraalVM 整个平台包含多个组件:
-
Graal:一个由 Java 语言编写的 JIT 编译器
-
SubstrateVM:一个对执行容器抽象层的轻量级封装
-
Truffle:一个用于构建语言解析器的工具集和 API
语言支持
下载包括以下语言引擎:
-
JavaScript — Graal.js 是一个 JavaScript 解释器/编译器,能够在 JVM 上运行 Node.js 应用
-
FastR — R 语言解释器/编译器
-
RubyTruffle — 支持 Ruby 且性能优于 Ruby
-
SimpleLanguage — 一个有关如何使用 Graal API 的示例
好处
-
性能 — Graal 结合了我们对编译器技术的研究,在一些负载上提供比传统 JVM 更好的峰值性能
-
语言互操作性 — 用 Graal 执行的语言可以互相调用,可以使用来自其他语言的库
用法
只需下载 OTN 预览版并将其用作 JDK。它经过预先配置,使用 Graal 作为默认的 Java 编译器,包括命令行程序 node、jrb 和 R,可用于取代 NodeJS、Ruby 和 R。
引用来自“抢小孩糖吃”的评论
Spring不支持,这个很受伤引用来自“Percy-Dreams”的评论
确切的说,应该是AOT部分Spring应该不支持。普通虚拟机运行肯定没问题,就是标准的OpenJDK.引用来自“抢小孩糖吃”的评论
并不是完全不支持,好像RCx 之前是支持的,之后不明原因又不支持了,官方文档描述,Spring官方团队和Graalvm团队正在努力解决这个事情。我没有继续跟踪这件事情。但愿能够支持。这样能够和Go干仗了。引用来自“Percy-Dreams”的评论
RCx是反射的意思吗?如果支持反射估计要增加很多成本。而且目前社区有Micronaut这种编译时解决问题的。框架要适配虚拟机编译器,而不是让虚拟机编译器适配框架。说不定Spring Framework的5.2.x或6.x.x版本就支持了,说不准的事情。引用来自“抢小孩糖吃”的评论
Spring不支持,这个很受伤引用来自“Percy-Dreams”的评论
确切的说,应该是AOT部分Spring应该不支持。普通虚拟机运行肯定没问题,就是标准的OpenJDK.引用来自“抢小孩糖吃”的评论
并不是完全不支持,好像RCx 之前是支持的,之后不明原因又不支持了,官方文档描述,Spring官方团队和Graalvm团队正在努力解决这个事情。我没有继续跟踪这件事情。但愿能够支持。这样能够和Go干仗了。引用来自“抢小孩糖吃”的评论
Spring不支持,这个很受伤引用来自“Percy-Dreams”的评论
确切的说,应该是AOT部分Spring应该不支持。普通虚拟机运行肯定没问题,就是标准的OpenJDK.引用来自“抢小孩糖吃”的评论
Spring不支持,这个很受伤引用来自“dwingo”的评论
介绍看着高大上, 结果到现在还没支持windows...引用来自“左华栋”的评论
win 确实不好支持, win32 API 相对于 unix 很奇葩。引用来自“dwingo”的评论
主要还是不重视的问题,看看go语言和nodejs对各平台包括Windows的支持就很完善。当然go和nodejs确实有微软的人协助开发,但对Java估计不会帮忙了。cygwin 倒是个不错的方案。
引用来自“dwingo”的评论
介绍看着高大上, 结果到现在还没支持windows...引用来自“左华栋”的评论
win 确实不好支持, win32 API 相对于 unix 很奇葩。引用来自“dwingo”的评论
介绍看着高大上, 结果到现在还没支持windows...