CRaC(Coordinated Restore at Checkpoint)。
CRaC 是 OpenJDK 项目,能够把运行中的 JVM,将其状态(包括您的应用程序)存储到磁盘中。然后,在另一个时间点,您可以从保存的检查点将 JVM 恢复到内存中。通过这种方式,可以启动一个应用程序,预热它,并创建一个检查点。从保存的检查点恢复到内存主要依赖于磁盘 I/O,这意味着速度非常快(在毫秒级别)。
JDK及环境准备
目前支持CRaC的JDK是Azul Zulu 21.0.1(选择含CRaC版本的),且系统只支持Linux。
或直接访问以下链接进行下载:
https://cdn.azul.com/zulu/bin/zulu21.30.23-ca-crac-jdk21.0.1-linux_x64.tar.gz
程序准备
maven添加依赖
<dependency>
<groupId>org.crac</groupId>
<artifactId>crac</artifactId>
<version>1.4.0</version>
</dependency>
Spring Boot 3.2.0启用CRaC
java -Dspring.context.checkpoint=onRefresh -XX:CRaCCheckpointTo=./tmp_checkpoint -jar spring-petclinic-3.2.0.jar
启动速度有几倍的提升,有评测显示,最多甚至高达10倍的提升。
启动后,本地会生成检查点映像文件
如启动报错,可试试授权非root用户:
sudo chown root:root $JAVA_HOME/lib/criu
sudo chmod u+s $JAVA_HOME/lib/criu
以上整理,参考自:
标签:10,启动,Spring,crac,Boot,3.2,检查点,CRaC From: https://www.cnblogs.com/jiayuan2006/p/17871615.htmlhttps://mp.weixin.qq.com/s/sIxb1YVL4rUVSNbWuU4XOA
https://foojay.io/today/springboot-3-2-crac/