默认情况下,基于SpringBoot框架开发应用时,构建插件spring-boot-maven-plugin
将项目打包为fat jar。
执行如下命令,解压构建得到的jar文件。
java -Djarmode=tools -jar my-app.jar extract
执行如下命令,使用解压后的jar文件,启动SpringBoot应用。
java -jar my-app/my-app.jar
执行如下命令,查看工具的帮助。
java -Djarmode=tools -jar my-app.jar help extract
Class Data Sharing
CDS是JVM的特性,有助于缩短Java应用的启动时间,并减少内存占用量。
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 java -XX:SharedArchiveFile=application.jsa -jar my-app.jar
Spring CDS
使用CDS时的注意事项:
application.jsa
时使用的JVM,和运行Java应用加载application.jsa
时使用的的JVM,二者需要保持一致,即版本号、安装路径等需要保持一致。增加JVM选项-Xlog:class+load:file=cds.log
,通过检查cds.log
的内容,确认CDS优化的效果。
增加JVM选项-Xshare:on
,确认CDS是否正常启用。
Ahead-of-Time Processing With the JVM
AOT和CDS可以同时使用,通过牺牲一部分动态能力,缩短Java应用的启动时间。
mvn -Pnative package java -Dspring.aot.enabled=true -jar myapplication.jar
相关的注解,比如:
@Profile
@Conditional
@ConditionalOnProperty
Coordinated Restore at Checkpoint (CRaC) is an OpenJDK project that defines a new Java API to allow you to checkpoint and restore an application on the HotSpot JVM.
-XX:CRaCCheckpointTo=PATH
-XX:CRaCRestoreFrom=PATH
Checkpoint/Restore tool
Welcome to CRIU, a project to implement checkpoint/restore functionality for Linux.
改进容器的打包方式,分离不变和变的组件,加速容器镜像的构建进程。
对于开发人员来说,有助于缩短构建时的等待时间,提高生产率。
本文来自博客园,作者:jackieathome,转载请注明原文链接:https://www.cnblogs.com/jackieathome/p/18377769
参与评论
手机查看
返回顶部