Class Data Sharing
Class Data Sharing (CDS) 是一项 JVM 特性,有助于减少 Java 应用程序的启动时间和内存占用。
在 Java 24 中,CDS 被 AOT Cache 取代,参见 JEP 483。Spring Boot 同时支持 CDS 和 AOT Cache,如果所使用的 JVM 版本(Java 24+)支持后者,建议使用 AOT Cache。
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 缓存,您应首先以提取形式在您的应用程序上执行一次训练运行:
$ 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
这会创建一个 app.aot 缓存文件,只要应用程序未更新,该文件就可以被重复使用。
要使用缓存文件,你需要在启动应用程序时添加一个额外的参数:
$ java -XX:AOTCache=app.aot -jar my-app.jar