为什么在Mac OSX Mavericks (10.9.2)上启动Spring Boot非常缓慢?

23

我对Java和STS没有其他问题,但当我尝试将我的应用程序运行为"Run as Spring Boot App"(或任何示例)时,控制台会在等待了长达5分钟后才输出熟悉的"Spring Boot" ASCII艺术字样,之后它就可以正常工作。


哇,那很糟糕。如果你从命令行运行它们呢?第二次(在Maven依赖项被缓存后)会好一些吗? - Dave Syer
我也在Sierra升级后遇到了同样的问题。 - Shai M.
2个回答

79

发现解析网络主机时出了问题。我通过在控制台中执行以下命令来解决它:

scutil --set HostName "localhost"

3
哇,应用这个修复方案将我的Spring Boot启动时间从60秒缩短到不到3秒,太神奇了!之前我都快被逼疯了。 - djhworld
3
在“MacOS Sierra”上表现出色。 - Thiago Pereira
1
很好!您可以指出设置“真实”名称与使用“localhost”的区别吗? - Steve Oh
1
保罗,请问你是如何找到这个解决方案的?非常好。启动时间从60秒降至5秒。谢谢! - Silvio Lucas
1
这在MacOS Catalina中也适用。我还将其添加到了.bash_profile中,因此它始终从开始设置。 - Filipe Melo
显示剩余5条评论

0

这可能与您的环境有关。您可以尝试在其他IDE(如Intellij)中运行应用程序。我认为是STS引起了问题。您还可以尝试在全新的STS安装中运行它。我正在使用最新的OSX和Intellij,没有任何问题。

如果您想玩弄一下,还可以分析Java代码转储以查看JVM内部发生了什么:http://www.javacodegeeks.com/2013/02/analysing-a-java-core-dump.html


你可能不需要核心转储。一个简单的线程转储(来自kill -3或jstack)可能会告诉你很多。 - Dave Syer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接