Spring Bean耗时分析工具

31 阅读1分钟

背景

  • 部分业务在项目启动时耗时过高,但无法排查优化,需要可以统计各个bean创建耗时,并提供过滤功能过滤显示耗时过高的bean。

解决

  • Spring Boot创建过程中各个bean创建加载耗时,并提供筛选功能
  • github中有个开源项目,github.com/maciejwalko…
  • 引入相关依赖后:
<dependency>
    <groupId>com.maciejwalkowiak.spring</groupId>
    <artifactId>spring-boot-startup-report</artifactId>
    <version>0.2.0</version>
    <optional>true</optional>
</dependency>

显示字段说明

字段名字段说明
Name当前记录所处的阶段,spring.beans.instantiate为bean的创建实例化
duration构建此bean耗费的时间,单位ms
durationWithChildren构建此bean以及所有依赖bean耗费的时间,单位ms
Details具体信息,包含bean名称等
  • 页面搜索框Minimum duration为使用durationWithChildren进行过滤,可以进行时间上的筛查

在这里插入图片描述

  • 上面的开源项目有个缺陷是当项目中 bean 比较多的时候,前端展示页面会出现卡顿,因为前端页面啥的都是在jar包里面。建议把项目拷贝下来后,重新在本地打个包更改下坐标名