小编典典

Jvm需要很长时间才能解析localhost的IP地址

java

升级到macOS Sierra之后,“ sbt测试”(包括查找本地主机名称/ IP地址)的性能似乎出现问题。在OS X的早期版本中,大约需要40-50秒才能完成。macOS Sierra时间远不止于此。我上次跑步大约是15分钟。编译时间与“ El Capitan”上的时间大致相同。

我是团队中唯一尝试使用此新macOS的人,因此我无法确定它是否仅在我的Mac上发生,还是普遍存在。

我的同事在Ubuntu上也有类似的问题,这与生成随机数有关,这减慢了测试的速度- 服务响应速度慢:Java SecureRandom和/ dev / random

不幸的是,这对我没有用。最初,我在JDK 8u54上进行了尝试,然后尝试更新至JDK 8u102,但这样做也没有帮助。

PS我正在运行Macbook Pro 2015年中的2.8GHz i7、16GB内存,1TB SSD。


阅读 393

收藏
2020-03-16

共1个答案

小编典典

我有同样的问题。升级后,Tomcat从15秒缩短到6分钟以初始化spring上下文…禁用csrutils不能为我解决问题。

我通过在/etc/hosts映射到该127.0.0.1地址的文件上添加我的Mac主机名(即Macbook.local或你的Mac称呼)来解决该问题,::1如下所示:

127.0.0.1   localhost mbpro.local
::1         localhost mbpro.local

如果你有兴趣,可以在这里找到有关该问题和解决方案的一些详细信息:https : //thoeni.io/post/macos-sierra-java/

在帖子中,我还链接到github项目,以帮助解决问题和验证解决方案。

问题(我相信)与本地名称解析的工作方式以及java.net.InetAddr类如何获取地址有关。我与几个同事进行了核实,显然升级到Sierra的每个人都不会遇到这种情况,但是我仍在调查这种变化的根源。

无论如何,解决方案与antid0te实施并立即生效的相同。

2020-03-16