【发布时间】:2022-11-23 00:01:48
【问题描述】:
我正在尝试将现有的命令行应用程序迁移到 Spring Boot,但我遇到了一个奇怪的问题。
该应用程序可以运行,但启动时似乎很慢
mvn spring-boot:run
缓慢的不是应用程序启动。有一种方法应该从数据库中获取大约 1.8 Mio 记录并从结果集中创建 POJO。 通常这最多需要 40 秒。
使用 Maven 启动的应用程序需要 > 5 分钟。
如果我以 java -jar app.jar 启动它,它工作得很好/很快。
在 IntelliJ 中启动时,应用程序也很快。
我猜它可能与类路径有关,但这只是一个猜测。
我在应用程序中所做的就是将一些 Singleton 类迁移到 @Components 并添加 spring-boot-maven-插件
有任何想法吗 ?
【问题讨论】:
-
在这里猜测,但您是否检查了每次启动时使用的内存?我怀疑可能设置了一些不同的 Xmx/Xms 标志
-
@greiker 我在命令行上盯着它看,没有设置-Xmx,所以应该应用默认的 1/4 RAM
-
只是说它可能是一个检查的地方。可以肯定的是 Intellij f.ex。将设置一些并且插件中可能有一些 ENV 或某些我知道设置它/它们的东西
-
你在比较苹果和橘子。
mvn spring-boot:run比运行应用程序做的更多,它会检查、验证依赖项等,因为它是 Maven 构建周期的一部分,所以还有很多事情要做。 -
我同意,但正如我所说,缓慢的不是构建或启动。代码执行缓慢。即使 Maven 插件将火箭发射到太空,也是 40 秒又是 5 分钟!此外,我见过的数百个 spring 应用程序以前从未发生过
标签: java spring-boot maven