Spring Bean耗时分析工具
背景
- 部分业务在项目启动时耗时过高,但无法排查优化,需要可以统计各个bean创建耗时,并提供过滤功能过滤显示耗时过高的bean。
解决
- Spring Boot创建过程中各个bean创建加载耗时,并提供筛选功能
- github中有个开源项目,https://github.com/maciejwalkowiak/spring-boot-startup-report
- 引入相关依赖后:
<dependency><groupId>com.maciejwalkowiak.spring</groupId><artifactId>spring-boot-startup-report</artifactId><version>0.2.0</version><optional>true</optional>
</dependency>
- 访问页面:http://localhost:8080/startup-report
- 会显示bean名称,耗时等信息
显示字段说明:
字段名 | 字段说明 |
---|---|
Name | 当前记录所处的阶段,spring.beans.instantiate为bean的创建实例化 |
duration | 构建此bean耗费的时间,单位ms |
durationWithChildren | 构建此bean以及所有依赖bean耗费的时间,单位ms |
Details | 具体信息,包含bean名称等 |
- 页面搜索框Minimum duration为使用durationWithChildren进行过滤,可以进行时间上的筛查
- 上面的开源项目有个缺陷是当项目中 bean 比较多的时候,前端展示页面会出现卡顿,因为前端页面啥的都是在jar包里面。建议把项目拷贝下来后,重新在本地打个包更改下坐标名