一个 Springboot 程序,可以快速启动吗?除了运行参数会有变化,其他都不变,希望把其他部分预先加载了,提高启动速度

2023-08-24 17:27:36 +08:00
 gzk329
3313 次点击
所在节点    Java
28 条回复
frank42a
2023-08-25 10:07:53 +08:00
@linyimin520812 非常不错
BQsummer
2023-08-25 11:24:52 +08:00
springboot 启动慢的原因是单线程初始化各种复杂业务相关的 bean 导致的吧, 加 cpu 能解决部分问题
BQsummer
2023-08-25 11:28:00 +08:00
或者试试 serveless 冷启动加速相关的技术, 比如 amazon 的 snapstart
linyimin520812
2023-08-27 15:08:06 +08:00
OP 用的什么版本的 JDK 呀?低版本的 CDS 只能作用与 Boot Class Loader 加载的类,不能作用于 App Class Loader 或者自定义的 Class Loader 加载的类。Java 10 中将 CDS 扩展为 AppCDS ,不止能够作用于 Boot Class Loader ,App Class Loader 和自定义的 Class Loader 也都能够起作用,大大加大了 CDS 的适用范围。

https://khotyn.com/blog/posts/2018-03-21-app-cds/
gzk329
2023-08-28 08:40:34 +08:00
@linyimin520812 用的是 JDK8
frank42a
2023-08-30 10:23:26 +08:00
JDK 8 可以用 CDS 吗?
linyimin520812
2023-09-07 12:41:38 +08:00
@vitoliu #15 谢谢提醒,试了一下,异步加载抛出异常会阻塞 Spring 容器启动,整个应用会启动失败
linyimin520812
2023-09-07 12:42:51 +08:00
@frank42a #26 JDK8 使用 CDS 的作用应该不大,毕竟只作用于 Boot Class Loader 加载的类

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/968039

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX