BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GraalVM 19.0、待望のGAをリリース

GraalVM 19.0、待望のGAをリリース

原文(投稿日:2019/06/17)へのリンク

2018年4月のバージョン1.0 RC1のリリースを皮切りに、数々のリリース候補を重ねて1年以上、Oracleはついに、Oracle Labsが開発した多言語仮想マシンとプラットフォームである、GraalVM 19.0のGAバージョンをリリースした。1年間のRCリリースで追加された機能には、非推奨となったNashornエンジン(JEP 335)からGraalVMへのマイグレーション、Pythonのnumpyライブラリの統合、マネージモードLLVMインタープリタ、SubstrateVM経由でネイティブイメージとしてデプロイ可能なGraalVMコンパイラlibgraalの導入、などがある。GraalVM Enterprise EditionもOracle Labsから公式にリリースされた。

GraalVMは、Javaで記述されたジャスト・イン・タイムコンパイラのGraal、Javaアプリケーションをアヘッド・オブ・タイムで実行可能イメージにコンパイル可能なフレームワークSubstrateVM、言語インタープリタ構築のためのオープンソースツールキットとAPIであるTruffleで構成されている。

GraalVM 19.0のコアコンポーネントには以下のものが含まれる。

  • OpenJDK 1.8.0_212に準拠したHotSpot JVM
  • 多言語(polyglot)機能を備えたNodeJS 10.15.2
  • Rhino、および廃止されたNashornの代替として、ECMAScript 2019に準拠したJavaScriptエンジン。Oracle Labsでは、GraalVMとNashornの違いを説明するマイグレーションガイドを用意している
  • LLVMバージョン6.0用ランタイム
  • GraalVM Updatergu — Native Imageなど、GraalVMのコアディストリビューションに含まれていないコンポーネントや、Python、Ruby、Rのサポートをダウンロードするユーティリティ。

native-imageユーティリティは、GraalVMリリース候補のディストリビューションには含まれていたが、GraalVM 19.0では削除され、guユーティリティを使用して別途インストールが必要になっている。guユーティリティは、SDK ManHomebrewなど、一般的なパッケージマネージャと同じような機能を持つ。例えば、Native ImageあるいはPythonをインストールするには、次のように使用する。

    
$ gu install native-image
$ gu install python
    

安定版リリースであることを反映して、Oracle Labsでは、GraalVMのバージョンを1.0 RCxxから、メジャーリリースの年と定期的なアップデートを表す19.xに変更した。GraalVMの新機能すべての詳細は、リリースヒストリに記載されている。

GraalVM Enterprise Edition

GraalVM Enterprise Editionは、パフォーマンス、セキュリティ、スケーラビリティを必要とする、ミッションクリティカルな実運用アプリケーション向けに開発された。Community Editionに対してEnterprise Editionが提供するメリットには、高いパフォーマンスと縮小されたフットプリント、ネイティブコードのサンドボックス機能、商用サポートオプションなどがある。

GraalVM Enterpriseに組み込まれている最適化アルゴリズムは、ネイティブにコンパイルされたコードの再配置により、20パーセントのパフォーマンス改善を実現する。

以下に示すのは、GraalVM Enterpriseのアーキテクチャである。

GraalVMリファレンスマニュアルは、Java(および関連するJVM言語)、JavaScript、Python、Ruby、Rの各アプリケーションでGraalVMの使用を考えている開発者に対して、出発点を提供する。さらにOracleは、Truffleシステム構造、SubstrateVM実行モデル、マイクロベンチマークに関する詳細を論じたプレゼンテーション"Safe and Efficient Hybrid Memory Management for Java"も公開している。

GraalVMはMicronautHelidonQuarkusなどのJava/JVMマイクロサービスフレームワークと統合することができる。

リソース

この記事に星をつける

おすすめ度
スタイル

BT