GraalVM の概要

GraalVM は、事前コンパイル型ネイティブイメージを備えた高度な JDK です。

GraalVM は、アプリケーションのパフォーマンスを向上させながら、リソース消費を削減し、アプリケーションの効率を向上させ、IT コストを削減します。 これは、Java アプリケーションを事前にネイティブバイナリにコンパイルすることで実現します。 このバイナリは、より小さく、最大 100 倍高速に起動し、ウォームアップなしでピークパフォーマンスを提供し、Java 仮想マシン (JVM) 上で実行されるアプリケーションよりも少ないメモリと CPU を使用します。 プロファイルガイド付き最適化と G1 (Garbage-First) ガベージコレクタを使用すると、JVM で実行されるアプリケーションと比較して、レイテンシが低く、同等以上のピークパフォーマンスとスループットを実現できます。

主なメリット #

GraalVM の主なメリットは次のとおりです。

  • 低リソース使用量: GraalVM によって事前にコンパイルされた Java アプリケーションは、実行に必要なメモリと CPU が少なくて済みます。 ジャストインタイムコンパイルにメモリと CPU サイクルを費やすことはありません。 その結果、アプリケーションの実行に必要なリソースが少なくなり、大規模な運用コストが削減されます。
  • 高速起動: GraalVM を使用すると、アプリケーションの一部をランタイムではなくビルド時に初期化することで Java アプリケーションを高速に起動でき、ウォームアップなしで予測可能なピークパフォーマンスを瞬時に達成できます。
  • コンパクトなパッケージング: GraalVM によって事前にコンパイルされた Java アプリケーションは小さく、高速かつ効率的なデプロイのために軽量コンテナイメージに簡単にパッケージ化できます。
  • セキュリティの向上: GraalVM は、次のものを除外することで、Java アプリケーションの攻撃対象領域を削減します。到達不能なコード (未使用のクラス、メソッド、フィールド)、ジャストインタイムコンパイルインフラストラクチャ、およびビルド時に初期化されたコード。 GraalVM のクローズドワールドアサンプションは、ランタイムでのリフレクション、シリアライゼーションなどの動的機能を無効にすることにより、アプリケーションが不明なコードをロードするのを防ぎ、ビルド時にそのようなクラス、メソッド、およびフィールドの明示的なインクルードリストを必要とします。 GraalVM は、バイナリにソフトウェア部品表 (SBOM) を埋め込むことができるため、一般的なセキュリティスキャナーを使用して、公開されている共通脆弱性識別子 (CVE) について Java アプリケーションを簡単にチェックできます。
  • クラウドネイティブマイクロサービスを簡単に構築: Micronaut、Spring Boot、Helidon、Quarkus などの一般的なマイクロサービスフレームワークや、Oracle Cloud Infrastructure (OCI)、Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Microsoft Azure などのクラウドプラットフォームはすべて GraalVM をサポートしています。 これにより、バイナリとしてコンパイルされ、小さなコンテナにパッケージ化され、最も一般的なクラウドプラットフォームで実行されるクラウドネイティブ Java マイクロサービスを簡単に構築できます。
  • Python およびその他の言語で Java アプリケーションを拡張: GraalVM を使用すると、Python、JavaScript などの言語を埋め込んで Java アプリケーションを拡張できます。
  • 既存の開発および監視ツールを使用: 既存の Java アプリケーション開発ツールおよび監視ツールは、GraalVM アプリケーションバイナリで動作します。 GraalVM は、Maven および Gradle 用のビルドプラグイン、CI/CD 用の GitHub Actions を提供します。 GraalVM は、Java Flight Recorder (JFR)、Java Management Extensions (JMX)、ヒープダンプ、VisualVM、その他の監視ツールをサポートしています。 GraalVM は、既存の Java エディター/IDE、および JUnit などの単体テストフレームワークで動作します。

ライセンスとサポート #

Oracle GraalVM は、早期導入バージョンライセンスを含む GraalVM 無償利用規約 (GFTC) に基づいてライセンス供与されています。 早期導入バージョンライセンスを含むライセンスの条件に従い、GFTC は、商用利用および本番環境での利用を含む、すべてのユーザーによる利用を許可することを意図しています。 再配布は、料金を徴収しない限り許可されています。 Oracle GraalVM は、Oracle Cloud Infrastructure での利用も無料です。 Oracle GraalVM のライセンスの詳細については、Oracle Java SE ライセンスに関する FAQ を参照してください。

GraalVM Community Edition は、GitHub で入手可能なソースから構築され、「Classpath」例外付きの GNU General Public License のバージョン 2 の下で配布されるオープンソースプロジェクトです。これは Java と同じ条件です。 個々の GraalVM コンポーネントの ライセンス を確認してください。これらは一般に、特定の言語のライセンスの派生物であり、異なる場合があります。

当社とつながる