记录一次springboot启动优化、物理优化版本。。

问题起因

SpringBoot本机启动用时大概7分多钟(正常是1分钟内)
在这里插入图片描述
使用自定义的代码来监控springboot各个环节的启动时间,发现均超过正常启动时间。

分析原因

初步怀疑是上周五更新了多个插件版本引起的异常,再则怀疑上周五调整了IDEA的jvm参数和maven构建参数,加上电脑耶变卡了,故此考虑是插件和参数引起。

观察电脑硬件性能

未发现异常数据,性能均在正常范围内。
在这里插入图片描述

考虑配置问题

尝试启用旧版本的代码,运行后发现,启动时间仍然超时。
尝试回复idea和maven配置,删除maven离线索引库。
问题仍为解决。

尝试修复电脑问题

卸载上周五更新的软件和其他插件,使用软件清理垃圾,清理电脑。
尝试安全模式下修复~
仍为解决。

发现异常问题

电脑cpu异常
在这里插入图片描述
处理问题。。。电脑cpu风扇被电源线卡主,导致cpu风扇停止转动。
在这里插入图片描述
揪出固定后,观察温度恢复正常。
在这里插入图片描述

项目启动缓慢问题解决
在这里插入图片描述

SpringBoot 是一个非常常用的 Java 应用框架,提供了许多便于开发的功能,但在启动时却常常存在较长的启动时间。在一些场景下要求应用启动速度较快,如在云原生应用中,快速启动可以提高资源的利用率和性能,因此需要对 SpringBoot 启动速度进行优化。 1. 确认依赖 在建立 SpringBoot 项目时,通常使用的是 Spring Initializr 工具,在选择依赖时,需要仔细考虑依赖的必要性,不必要的依赖会增加项目的启动时间。可以使用 mvn dependency:tree 命令来查看项目的依赖, 并考虑去掉不必要的依赖。 2. 开启 AOT 模式 AOT( Ahead of Time )模式将应用程序的字节码转换成机器码,在启动时直接执行机器码,减少了 JIT 编译的时间,从而加快了启动速度。可以使用 Spring Native 框架实现 AOT 编译,需注意的是,Spring Native 目前仅支持在 Linux 和 Mac OS 系统上构建应用,并要求应用需要使用 GraalVM 的版本。 3. 使用懒加载 在启动 SpringBoot 应用时,通常会创建许多 bean,这些 bean 可能与应用程序的当前请求无关。为了优化启动速度,可以将这些 bean 的创建延迟到第一次使用时再进行创建。这可以通过在 bean 上使用 @Lazy 注解或在配置文件中添加 spring.main.lazy-initialization=true 来实现。 4. 减少自动配置的数量 在 SpringBoot 项目中,通常会有许多自动配置类,在启动Spring 会扫描所有装配件以构建相应的 bean。通常我们只使用少量的自动配置类,因此可以通过在配置文件中添加 spring.autoconfigure.exclude 来排除一些不必要的自动配置类,减少启动时间。 5. 启用并发初始化 Spring 5.0 版本默认支持并行初始化的功能,可以同时初始化 bean,从而减少启动时间。如果使用的是 Spring 4.x 版本,可以使用 spring.parallel.init.enabled=true 属性来开启并行初始化。 在实际应用中,可能还有其他需要考虑的因素,如数据库连接池的配置、缓存的使用,通过对以上几个方面的优化,可以显著地降低 SpringBoot 应用的启动时间,提高应用的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值