クラスデータの共有

クラスデータ共有 (CDS) は、Java アプリケーションの起動時間とメモリフットプリントの削減に役立つ JVM 機能 [Oracle] です。

Java 24 では、CDS は JEP 483 (英語) を介して AOT キャッシュに引き継がれます。Spring Boot は CDS と AOT キャッシュの両方をサポートしており、使用している JVM バージョン (Java 24+) で後者が使用可能な場合は後者を使用することをお勧めします。

CDS

CDS を使用するには、まず抽出された形式でアプリケーションに対してトレーニング実行を実行する必要があります。

$ java -Djarmode=tools -jar my-app.jar extract --destination application
$ cd application
$ java -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh -jar my-app.jar

これにより、アプリケーションが更新されない限り再利用できる application.jsa アーカイブファイルが作成されます。

アーカイブファイルを使用するには、アプリケーションの起動時に追加のパラメーターを追加する必要があります。

$ java -XX:SharedArchiveFile=application.jsa -jar my-app.jar
CDS の詳細については、CDS 使い方ガイドおよび Spring Framework リファレンスドキュメントを参照してください。

AOT キャッシュ

AOT キャッシュを使用するには、まず抽出された形式でアプリケーションに対してトレーニング実行を実行する必要があります。

$ java -Djarmode=tools -jar my-app.jar extract --destination application
$ cd application
$ java -XX:AOTMode=record -XX:AOTConfiguration=app.aotconf -Dspring.context.exit=onRefresh -jar my-app.jar
$ java -XX:AOTMode=create -XX:AOTConfiguration=app.aotconf -XX:AOTCache=app.aot -jar my-app.jar

これにより、アプリケーションが更新されない限り再利用できる app.aot キャッシュファイルが作成されます。中間の app.aotconf ファイルは不要になったため、安全に削除できます。

キャッシュファイルを使用するには、アプリケーションの起動時に追加のパラメーターを追加する必要があります。

$ java -XX:AOTCache=app.aot -jar my-app.jar