分析 Spring 应用程序以最小化启动时间

Posted

技术标签:

【中文标题】分析 Spring 应用程序以最小化启动时间【英文标题】:Profiling Spring application to minimize startup-time 【发布时间】:2019-02-20 09:25:44 【问题描述】:

我有一个大型 Spring 应用程序没有正确划分为配置文件。我想打破 bean 配置,因此需要很长时间才能加载的无关 bean 被替换为 mocks。

如何对 Spring 应用程序进行分析以找出导致启动缓慢的 bean?内存使用不会反映可能导致延迟的长时间等待阻塞 HTTP 请求。

谢谢, 维托德

【问题讨论】:

【参考方案1】:

您可以使用jvisualvm 进行分析 https://docs.oracle.com/javase/8/docs/technotes/guides/visualvm/intro.html 这里有一个 VisualVM Startup Profiler Plugin: https://visualvm.github.io/startupprofiler.html

如果您能够更改代码库,另一种方法可能是使用spring-startup-analysis。 (这似乎提供了您正在寻找的东西)

https://github.com/lwaddicor/spring-startup-analysis

【讨论】:

以上是关于分析 Spring 应用程序以最小化启动时间的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 启动流程源码分析

以编程方式重新启动 Spring Boot 应用程序/刷新 Spring 上下文

Spring Boot 应用程序无法以类路径启动:[]

如何在启动时以编程方式禁用 Spring @JmsListener

在 Spring Boot 应用程序中以编程方式重新启动 HikariPool?

启动时如何配置 Spring Boot 应用程序以在特定数据库上运行