AOT Cache
AOT cache 是一项 JVM 特性,可以帮助减少 Java 应用程序的启动时间和内存占用。
如果你使用的是 Java < 24,你应该阅读有关 CDS 的部分。CDS 是 AOT cache 的前身,但工作方式类似。
Spring Boot 支持 CDS 和 AOT 缓存,如果你使用的 JVM 版本(Java 24 或更高版本)支持 AOT 缓存,建议使用 AOT 缓存。
AOT Cache
备注
如果你使用的是 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
这会创建一个 app.aot 缓存文件,只要应用程序未更新且使用相同的 Java 版本,该文件就可以被重复使用。
要使用缓存文件,你需要在启动应用程序时添加一个额外的参数:
$ java -XX:AOTCache=app.aot -jar my-app.jar
备注
你必须使用带有应用程序提取形式的缓存文件,否则它不会生效。
CDS
备注
如果你使用的是 Java 24 或更高版本,请使用 AOT 缓存代替 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 的更多详细信息,请参阅 JDK 的 Class Data Sharing 文档。