AOT キャッシュ

AOT キャッシュは、Java アプリケーションの起動時間とメモリフットプリントを削減するのに役立つ JVM 機能 (英語) です。

Java 24 未満をお使いの場合は、CDS に関するセクションを参照してください。CDS は AOT キャッシュの前身ですが、動作は似ています。

Spring Boot は CDS と AOT キャッシュの両方をサポートしており、使用している JVM バージョン (Java 24 以降) で AOT キャッシュが使用可能な場合は、AOT キャッシュを使用することをお勧めします。

AOT キャッシュ

Java 24 未満をご利用の場合、AOT キャッシュは利用できません。代わりに CDS を使用する必要があります。

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

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

これにより、アプリケーションが更新されず、同じ Java バージョンが使用されている限り再利用できる app.aot キャッシュファイルが作成されます。

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

$ java -XX:AOTCache=app.aot -jar my-app.jar
キャッシュファイルはアプリケーションの抽出された形式で使用する必要があります。そうでない場合は効果がありません。

CDS

Java 24 以降を使用している場合は、CDS ではなく AOT キャッシュを使用してください。

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 の詳細については、JDK のクラスデータ共有ドキュメント [Oracle] を参照してください。