AOT 缓存

AOT 缓存是 JVM 的一个功能,可以帮助减少 Java 应用的启动时间和内存占用。spring-doc.cadn.net.cn

如果你用的是Java < 24,应该阅读关于CDS的章节。 CDS是AOT缓存的前身,但工作原理类似。spring-doc.cadn.net.cn

Spring Boot 支持 CDS 和 AOT 缓存,建议使用 AOT 缓存,前提是你使用的 JVM 版本(Java 24 或更高版本)中有 AOT 缓存。spring-doc.cadn.net.cn

AOT 缓存

如果你用的是Java < 24,AOT缓存不可用。 你必须用CDS代替。

要使用 AOT 缓存功能,你应先对你的应用程序进行提取后的训练运行:spring-doc.cadn.net.cn

$ 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版本,即可重用缓存文件。spring-doc.cadn.net.cn

要使用缓存文件,启动应用程序时需要添加一个额外参数:spring-doc.cadn.net.cn

$ java -XX:AOTCache=app.aot -jar my-app.jar
你必须使用缓存文件和解压后的应用程序,否则没有效果。

CDS

如果你使用的是Java 24或更高版本,请使用AOT缓存而非CDS。

要使用 CDS,你应先对应用程序进行提取后的训练运行:spring-doc.cadn.net.cn

$ 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只要应用程序未更新即可重复使用的归档文件。spring-doc.cadn.net.cn

要使用归档文件,启动应用程序时需要添加一个额外参数:spring-doc.cadn.net.cn

$ java -XX:SharedArchiveFile=application.jsa -jar my-app.jar
你必须使用缓存文件和解压后的应用程序,否则没有效果。
有关CDS的更多细节,请参阅JDK的类数据共享文档