Javaのネイティブバイナリ生成可能なGraalVMの全機能が無料に、最適化コンパイラやG1ガベージコレクションを含む。本番環境でも利用可能
今回は「Javaのネイティブバイナリ生成可能なGraalVMの全機能が無料に、最適化コンパイラやG1ガベージコレクションを含む。本番環境でも利用可能」についてご紹介します。
関連ワード (メモリ、一番右、許諾等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
オラクルは、同社がJavaディストリビューションとして提供しているGraalVMの新ライセンス「GraalVM Free Terms and Conditions」(GFTC)を発表し、あわせてこれまで有償版のGraalVMに含まれていた全ての機能を含む新ディストリビューション「Oracle GraalVM」の提供を開始しました。
GFTCでは、これまで有償版のGraalVMで提供してきた最適化コンパイラやG1ガベージコレクションなどを含むすべての機能が無料で利用可能となり、本番環境での利用も許諾されます。
Introducing a new distribution — Oracle @GraalVM!
Use all the greatest GraalVM features, both for development and in production, for free!
Learn more: https://t.co/1uMmT0J8wQ
— GraalVM (@graalvm) June 13, 2023
より高速な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バージョンに合わせてアップデートされていく見通しです。