多言語・ライブラリが使える仮想マシン「GraalVM 20.2」が公開

 Java向けランタイム「GraalVM」開発チームは8月18日、最新安定版となる「GraalVM 20.2」公開を発表した。

 GraalVMは米Oracleが開発しオープンソースとして公開する仮想マシン。Java、JavaScript、CやC++などLLVMベースの言語、RやPythonなど多言語向けで、高度な最適化コンパイラによる高性能、Ahead-of-Timeコンパイルなどを特徴とする。デバッグ、モニタリング、プロファイリング、リソース最適化などのツールも利用できる。

 GraalVMコンパイラがついたJavaランタイム、GraalVM JavaScriptインタープリタ付きのNode.jsランタイム、LLVMビットコードランタイムなどで構成されるコミュニティ版(無償)と有償版がある。

 GraalVM 20.2は、2月に登場した20系の最新版。コミュニティ版はOpenJDK version 1.8.0_262とOpenJDK version 11.0.8を、有償版はOracle JDK version 1.8.0_261とOracle JDK version 11.0.8.0.2をベースとする。

 アプリケーションが安定フェイズに入りコンパイルがアイドル状態になるとlibgraal(GraalVMライブラリ)が使用したメモリをOSに開放する機能が加わった。各コンパイラスレッドをlibgraal isolateにアタッチすることで実現したもので、jvmci.ThreadsPerNativeLibraryRuntimeシステムプロパティがisolateにアタッチするコンパイラスレッドを管理する。これにより、RSSメモリフットプリントを削減できるという。

 libgraalのエラーレポートも強化した。一部のプログラムでの過度のコンパイル時間も強化した。

 Native Imageでも、muslcに対するイメージの静的リンク生成、libc以外の全てを静的にリンクするmostly staticを生成するオプション、-H:+RemoveSaturatedTypeFlowsのデフォルトでの有効化などの強化が加わった。

 このほか、言語とツール、多言語対応のためのPolyglot Embeddersなどでも細かな強化が加わっている。

GraalVM
https://www.graalvm.org/