類資料共享 (CDS)

類資料共享 (CDS) 是一項 JVM 特性,可以幫助減少 Java 應用的啟動時間和記憶體佔用。

在 Java 24 中,CDS 被透過 JEP 483 引入的 AOT Cache 所取代。Spring Boot 同時支援 CDS 和 AOT Cache,建議在你使用的 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 Cache

要使用 AOT Cache,你應該首先對已解壓的應用進行一次訓練執行

$ 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