首页 > 解决方案 > Spring Boot 入门包会影响性能吗?

问题描述

可以为spring boot gradle启动包,比如

org.springframework.boot:spring-boot-starter-web
org.springframework.boot:spring-boot-starter-cache

引入任何显着的延迟(> 2ms api 响应时间)而不是非入门的特定包?依赖减速是否会显着提高性能?

另一个相关问题,假设一个启动包包含一个包/依赖项,我没有在服务中使用/实现(直接或间接),该包是否被加载或对服务性能有任何影响?

标签: springspring-bootspring-boot-starter

解决方案


引入任何显着的延迟(> 2ms api 响应时间)而不是非入门的特定包?

通常,拉入包可以在运行时引入任意内容,并任意更改响应时间。对于入门包与非入门包都是如此。入门包通常被设计为将事物“连接”到您的应用程序上下文中,因此它们更有可能这样做。话虽如此,spring boot 被设计为生产就绪,因此根据我的经验,发布的 spring 提供的启动包(与 SNAPSHOT 构建或来自一些随机 github repo 的东西相反)是可靠的。

依赖减速是否会显着提高性能?

也许吧,但我认为这不太可能。我强烈认为通过开发复杂性来解决性能问题并不是最有效的方法,购买更多/更大的硬件要便宜得多。有很多分析可以支持这一点(谷歌“过早优化”)。

另一个相关问题,假设一个启动包包含一个包/依赖项,我没有在服务中使用/实现(直接或间接),该包是否被加载或对服务性能有任何影响?

java 中的类加载是一个有点复杂的话题。这是一篇不错的文章。https://zeroturnaround.com/rebellabs/rebel-labs-tutorial-do-you-really-get-classloaders/2/


推荐阅读