最近在搞应用的启动优化,参考一些可以显著提高 Java 启动速度方法和spring-boot-startup-report实现了此项目,Spring Startup Ananlyzer 采集Spring应用启动过程数据,生成交互式分析报告(HTML),用于分析Spring应用启动卡点,优化Spring应用启动速度,并实现了一个Bean初始化方法异步化执行工具,实现了应用启动时长降低50%-60%。
🤩核心能力
📈Spring应用启动数据采集报告
Spring Bean初始化详情信息,支持初始化耗时/beanName搜索、Spring Bean初始化时序图、方法调用次数及耗时统计(支持自定义方法)、应用未加载的jar包(帮助fatjar瘦身)及应用启动过程线程wall clock火焰图,帮助开发者快速分析定位应用启动卡点。
- Spring Bean初始化详情
- Spring Bean初始化时序图
- 方法调用次数、耗时统计(支持自定义方法)
- 应用未加载的jar包(帮助fatjar瘦身)
- 应用启动过程线程wall clock火焰图(支持指定线程名称,不指定则采集全部线程)
🚀应用启动时长优化
提供一个Spring Bean异步初始化jar包,针对初始化耗时比较长的bean,异步执行init和@PostConstruct方法提高应用启动速度。
📈Spring应用启动数据采集报告
安装jar包
提供了手动安装和一键脚本安装两种安装方式
- 手动安装
-
点击realease下载最新版tar.gz包
-
新建文件夹,并解压
mkdir -p ${
HOME}/spring-startup-analyzer
cd 下载路径
tar -zxvf spring-startup-analyzer.tar.gz ${
HOME}/spring-startup-analyzer
- 脚本安装
curl -sS https://raw.githubusercontent.com/linyimin0812/spring-startup-analyzer/main/bin/install.sh | sh
配置项
在启动参数中进行配置,如配置超时时间为30分钟:-Dspring-startup-analyzer.app.health.check.timeout=30
请务必配置