3年前 (2021-08-05)  相关技术 |   抢沙发  396 
文章评分 0 次,平均分 0.0

GraalVM是Oracle的一个新的开源项目,它试图使Java虚拟机成为运行所有主要语言的通用虚拟机。在GraalVM之前,已经很少有像Scala、Closure这样的语言将JVM作为其运行时。这对于这些语言来说是非常成功的。GraalVM进一步扩展了这一思想,使得以JVM为目标变得很容易,从而使更多的语言可以在JVM上共存。

GraalVM是从2014年开始的一个研究项目。推特从2017年开始就在制作中使用它。但对于普通公众来说,它在2019年下半年就已经准备好了。

在本文章中,我将探讨GraalVM可以为JVM生态系统带来什么。这是介绍GraalVM系列的第一篇文章。

什么是GraalVM

来自GraalVM网站:https://www.graalvm.org/why-graalvm/

GraalVM提供了一个全面的生态系统,支持大量语言(Java和其他基于JVM的语言、JavaScript、Ruby、Python、R、WebAssembly、C/C++和其他基于LLVM的语言),并在不同的部署场景(OpenJDK、Node.js、Oracle数据库或单机版)中运行它们。

他们本质上是在说,这是一个以JavaVM为核心的生态系统,希望在其上支持运行多种语言。

为什么要使用多种语言

为什么有些人关心在JVM上运行他们的语言?以下是一些原因

服务器调优虚拟机

JVM在服务器上经过多年的战斗测试。这可以使Node.js、javascript服务器框架等系统受益,后者目前运行在V8上,针对浏览器等客户端环境进行了优化。像Ruby这样的语言也已经做到了这一点。这就是为什么有很多公司运行JRuby实现。GraalVM使这变得更容易,并且用更少的努力支持更多的语言。

多语言支持

因为我们现在可以在同一个VM上运行多种语言,所以我们可以混合和匹配这些语言。这是非常强大的。例如,我们现在可以使用Javascript等解释语言扩展Java等编译语言的功能。这种组合使它比运行单一语言更强大。我们将在以后的帖子中对此进行更多讨论。

Java生态系统库

Scala采用JVM的原因之一是其丰富的生态系统。能够在JVM上运行使所有Java库都可用于Scala。现在,所有在graalVM上运行的语言都可以使用它们。

GraalVM比上面列出的有更多的优点。你可以在这里了解更多。

GraalVM架构

GraalVM系列之一-概述

上图显示了graalvm的架构。

从上面的架构来看,下面是主要组件

  • JavaHotSpot虚拟机:它是体系结构的核心。一切都由JavaVM提供支持。从Java8开始支持。
  • Graal编译器:Graal编译器,负责从上述层生成的AST生成字节码
  • Truffle框架:一个允许在AST模型中为不同语言定义解释器的框架。这种语言之间的标准AST模型使其具有多语言性

小结

GraalVM开创了虚拟机的新纪元。它将JVM定位为所有流行语言运行时的中心。这使JVM生态系统再次令人兴奋。

 

除特别注明外,本站所有文章均为老K的Java博客原创,转载请注明出处来自https://javakk.com/2198.html

关于

发表评论

表情 格式

暂无评论

登录

忘记密码 ?

切换登录

注册