Oracle GraalVM
Oracle GraalVMは、Javaアプリケーションを事前にスタンドアロン・バイナリにコンパイルします。これらのバイナリは小さく、最大100倍高速に起動し、ウォームアップなしで最高のパフォーマンスを提供し、Java仮想マシン(JVM)で実行されるアプリケーションよりも少ないメモリーとCPUを使用します。
GraalVMは、アプリケーションの攻撃対象領域を減らします。未使用のクラス、メソッドおよびフィールドはアプリケーション・バイナリから除外されます。リフレクションおよびその他の動的Java言語機能がビルド時のみに制限されます。実行時に不明なコードはロードされません。
Spring Boot、Micronaut、Helidon、Quarkusなどの一般的なマイクロサービス・フレームワーク、およびOracle Cloud Infrastructure、Amazon Web Services、Google Cloud Platform、Microsoft Azureなどのクラウド・プラットフォームは、すべてGraalVMをサポートしています。
プロファイルに基づく最適化およびG1(ガベージ・ファースト)ガベージ・コレクタにより、Java仮想マシン(JVM)で実行されるアプリケーションと比較して、レイテンシが低く、ピーク・パフォーマンスとスループットが同等かそれ以上となります。
IDEの他のJava Development Kitと同様に、GraalVM JDKを使用できます。
主な利点
Oracle GraalVMの主な利点は次のとおりです:
- 低リソース使用: GraalVMによって事前にコンパイルされたJavaアプリケーションでは、実行に必要なメモリーおよびCPUが少なくなります。ジャスト・イン・タイムのコンパイルにメモリーとCPUサイクルが費やされることはありません。その結果、アプリケーションの実行に必要なリソースが少なくなり、大規模な運用のコストが低くなります。
- 高速起動: GraalVMを使用すると、アプリケーションの一部を実行時ではなくビルド時に初期化することでJavaアプリケーションをより迅速に起動でき、ウォームアップなしで予測されたピーク・パフォーマンスを即座に達成できます。
- コンパクトなパッケージング: GraalVMによって事前にコンパイルされたJavaアプリケーションは小さいため、軽量のコンテナ・イメージに簡単にパッケージ化して、迅速かつ効率的にデプロイできます。
- セキュリティの向上: GraalVMは、到達不可能なコード(未使用のクラス、メソッドおよびフィールド)、ジャストインタイム・コンパイル・インフラストラクチャおよびビルド時初期化コードを除外することで、Javaアプリケーションの攻撃対象領域を減らします。GraalVMのクローズド・ワールドの仮定により、リフレクション、シリアライズなどの動的機能を実行時に無効にすることで、アプリケーションが不明なコードをロードできなくなり、ビルド時にそのようなクラス、メソッドおよびフィールドの明示的なインクルード・リストが必要になります。GraalVMは、バイナリにソフトウェア部品表(SBOM)を埋め込むことができるため、一般的なセキュリティ・スキャナを使用して、公開されているCVE(共通脆弱性)についてJavaアプリケーション・バイナリを簡単にチェックできます。
- クラウド・ネイティブ・マイクロサービスの簡単なビルド: Spring Boot、Micronaut、Helidon、Quarkusなどの一般的なマイクロサービス・フレームワーク、およびOracle Cloud Infrastructure (OCI)、Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Microsoft Azureなどのクラウド・プラットフォームは、すべてGraalVMをサポートしています。これにより、バイナリとしてコンパイルされ、小規模なコンテナにパッケージ化され、OCI、AWS、GCP、Azureなどのクラウド・プラットフォームで実行されるクラウド・ネイティブJavaマイクロサービスを簡単にビルドできます。
- Pythonおよびその他の言語でのJavaアプリケーションの拡張: GraalVMを使用すると、Python、JavaScriptなどの言語を埋め込み、Javaアプリケーションを拡張できます。
- 既存の開発およびモニタリング・ツールの使用: 既存のJavaアプリケーション開発およびモニタリング・ツールは、GraalVMアプリケーション・バイナリと連携します。GraalVMは、MavenおよびGradleのビルド・プラグインと、CI/CDのGitHubアクションを提供します。GraalVMは、Javaフライト・レコーダ(JFR)、Java Management Extensions (JMX)、ヒープ・ダンプ、VisualVMおよびその他のモニタリング・ツールをサポートしています。GraalVMは、既存のJavaエディタ/IDEおよびJUnitなどのユニット・テスト・フレームワークと連携します。
次に読むもの
インストール・ガイドに従って、Oracle GraalVMのインストールを開始します。
Oracle GraalVMおよびネイティブ・イメージを初めて使用する場合も、使用経験がほとんどない場合も、スタート・ガイドに進んでください。
Oracle GraalVMがすでにインストールされている、または使用経験のある開発者は、リファレンス・マニュアルに進んで詳細を確認してください。