Javaのネイティブバイナリ生成可能なGraalVMの全機能が無料に、最適化コンパイラやG1ガベージコレクションを含む。本番環境でも利用可能
オラクルは、同社がJavaディストリビューションとして提供しているGraalVMの新ライセンス「GraalVM Free Terms and Conditions」(GFTC)を発表し、あわせてこれまで有償版のGraalVMに含まれていた全ての機能を含む新ディストリビューション「Oracle GraalVM」の提供を開始しました。
GFTCでは、これまで有償版のGraalVMで提供してきた最適化コンパイラやG1ガベージコレクションなどを含むすべての機能が無料で利用可能となり、本番環境での利用も許諾されます。
Introducing a new distribution — Oracle @GraalVM!
— GraalVM (@graalvm) June 13, 2023
Use all the greatest GraalVM features, both for development and in production, for free!
Learn more: https://t.co/1uMmT0J8wQ
より高速なJavaのネイティブバイナリ生成が可能に
GraalVMは、Oracle JDKやOpenJDKとは別にオラクルが開発し提供してきたJavaのディストリビューションです。
Javaのアプリケーションコードを事前コンパイルしてネイティブバイナリを生成する機能を備えていること、Java以外にJavaScript、Python、Ruby、Rなど多言語対応のランタイムを備えていることを大きな特徴としています。
特にJavaネイティブバイナリの生成機能は注目されており、昨年(2022年)10月にはこのコンパイル機能を含むGraalVMのJava関連コードがOpenJDKコミュニティに寄贈されることが発表されたことで、今後OpenJDKにもネイティブバイナリを生成するJavaの事前コンパイラが実装されていくのではないかと期待されています。
参考:[速報]オラクル、OpenJDKコミュニティにGraalVM CEのJava関連コードを寄贈すると発表。JavaOne 2022
今回、新しいディストリビューションとなったOracle GraalVMには、有料版のGraalVM Enterprise Editionにのみ含まれていたコンパイル時にプロファイルを基にした高度な最適化を行う機能、ガベージコレクションによるアプリケーションの動作を最小限にするG1ガベージコレクション機能、実行時のメモリ使用量を小さく出来るオブジェクトヘッダやポインタの圧縮機能、プロファイル情報の機械学習による推論機能、SBOMサポートなどが加わりました。
これにより、新しいGraalVMを用いて生成したJavaのネイティブバイナリイメージでは、従来のJITや無料版GraalVMを用いたネイティブバイナリと比較しても、より高速に起動し実行されるJavaネイティブバイナリイメージが生成できると説明されています。
下記はSpring Boot 3の起動にかかる時間を比較したもので、一番右の最新のGraalVMによるネイティブバイナリのイメージが圧倒的に高速であることが示されています。
今回リリースされたGraalVMはJDK 17とJDK 20に対応しています。今後は最新のJavaバージョンに合わせてアップデートされていく見通しです。
あわせて読みたい
開発者はコーディングよりもビルドとテストの待ち時間が長く、チームの協力でコード作成が高速に。すでに92%がAIを仕事に活用。GitHubによる米国の開発者500人の調査
≪前の記事
HashiCorp、シンプルなシークレット管理クラウドサービス「HCP Vault Secrets」パブリックベータ公開。シークレットを集中管理し環境変数で提供