当前位置: 首页 > news >正文

springboot 3.3版本 类数据共享(CDS)提升启动速度 使用方法+Docker打包代码

springboot 3.3 版本已经正式发布,新版本提供了类数据共享(CDS)功能,通过将类元数据缓存在 Archive(归档/存档) 文件中,使其可以快速预加载到新启动的 JVM 中,从而帮助缩短 JVM 的启动时间和内存占用。

闲话少说,直接体验。

使用springboot3.3创建项目(此处略)。

编译应用

我们先把应用打包成jar包:mvn clean package
此处假设打包出来的是service.jar
按照官方文档,我们需要将一体式jar包提取成可以使用CDS技术的格式,使用下面的命令:

java -Djarmode=tools -jar service.jar extract

执行后,目录就变成了 类似下面这样:

service├── service.jar├── lib│   ├── ...│   ├── 应用的各种依赖包.jar│   ├── ...

这个结构启动方式略有变化,变成了执行 java -jar service/service.jar,这样就可以运行起来了。

生成CDS归档文件

根据官方说法,使用CDS和生成CDS的jdk版本,目录等最好一致,所以我们直接去后面要运行应用的容器中执行生成CDS存档的命令,这样就可以保证环境完全一致。

Dockerfile参考如下:

# 基础镜像自己选一个 我这里用了 zulu jdk
FROM azul/zulu-openjdk:21.0.3
# 把刚才生成的应用的整个目录放进来
ADD service /opt/serviceENV TZ Asia/Shanghai
RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime \&& echo ${TZ} > /etc/timezone
# 重点1: 预生成存档,参考 https://docs.spring.io/spring-framework/reference/integration/cds.html
RUN cd /opt/ && java -jar -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh service/service.jar
# 重点2: 运行时使用预生成的存档
ENTRYPOINT  ["java", "-jar", "-XX:SharedArchiveFile=application.jsa", "/opt/service/service.jar"]

经过上面的打包,运行时应用就会使用预先生成的类数据,不再需要重新加载,可以提升启动速度(实际效果自行体验哈)。

http://www.lryc.cn/news/360821.html

相关文章:

  • Django 目录
  • VirtualBox Ubuntu系统硬盘扩容
  • 【自动驾驶】针对低速无人车的线控底盘技术
  • Kotlin 继承和实现
  • MATLAB误差估计扩展卡尔博斯方法的目录大纲
  • NetMizer 日志管理系统前台RCE漏洞
  • 【spring】第二篇 bean实例化
  • MVC和MVVM
  • 【康耐视国产案例】智能AI相机机器视觉精准快速实现包裹标签的智能粘贴
  • 发现真正的诉求
  • Spring Boot配置MySQL数据库连接数
  • springboot595基于Java的大学生迎新系统-手把手调试搭建
  • 20 道大模型面试问题(含答案)
  • 【Java面试】四、MySQL篇(上)
  • 【Python】collections模块:高效处理数据的利器
  • Vue3实战笔记(51)—Vue 3封装带均线的k线图
  • 信息与未来2015真题笔记
  • 【成功解决】Access token invalid or no longer valid
  • 【Bug】修改计算机名称出现ip无法连接mysql数据库
  • 米尔MYC-Y6ULX-V2开发板测评记录
  • 装修全流程
  • 探索微软Edge
  • Java面试——专业技能
  • C#按钮样式设置XMAL
  • EmmyLua注释详解
  • Linux内核 -- 启用 Linux 内核调试信息
  • vs2019 无法打开QT的UI文件
  • Python | A + B问题|||
  • JRT连接希森美康出图
  • UVa11604 General Sultan