1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GraalVMって...?

1
Last updated at Posted at 2019-06-16

GraalVM

Java仮想マシン(JVM) およびJITコンパイラの技術を利用した多言語対応の汎用仮想マシン。
Twitter社でも取り入れられている。

特徴

多言語対応

JVM
  • Scala
  • Kotlin
  • Groovyなど

Java以外の言語の実行にも対応している。総称して「JVM言語」。JRubyやJythonといった,既存言語のJVM用実装もJVM言語。

GraalVM
  • JavaScript
  • R言語
  • Ruby
  • Python
  • C/C++

のようなLLVMベース(?)の言語の実行にも対応。同一の仮想マシンを用いて異なる複数の言語を実行できるだけでなく,複数の言語のコードが混在したプログラムを実行することもできる。

機能

Graal

JVM用の新しいJITコンパイラ。
JavaのJITコンパイラは,コンパイラが生成したJavaバイトコードを読み込んで機械語を生成する。現在のJVMは,このJITコンパイラのエンジン部分のみを差し替えて実行できる仕組みを備えている。GraalVMは,このJITコンパイラ部分にGraalを採用することで高速化を実現。

Truffle

自前のプログラミング言語を実装するためのフレームワーク。
Truffleはプログラムのソースコードを解析してAST(抽象構文木)を生成するためのAPIを提供しています。JVM言語に関してはもともとGraalで実行できるため,TruffleはJavaScriptやRubyなどJVM言語以外の言語のために使われている。

Javaの実行がめちゃくちゃ早い

  • GraalVMに搭載されているGraalはモダン実装を取り入れたコンパイラ。コンパイラエンジンをGraalに置き換えるだけでパフォーマンスが向上するケースも。
  • 様々な言語もJavaの実行ファイルに変換され、高パフォーマンスで実行される。

まとめ

  • VMの多言語対応の走り
  • Springなどの動的にクラスを作り出すものにはまだ対応していない
  • CEがリリースされたらしいので今度試してみたい
  • Dockerhubにもあがってた!
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?