java - Jvm 需要很长时间才能解析 localhost 的 ip-address

标签 java scala jvm localhost macos-sierra

升级到 macOS Sierra 后,“sbt 测试”(包括查找本地主机名称/IP 地址)的性能似乎存在问题。在以前的 OS X 版本上,大约需要 40-50 秒才能完成。 macOS Sierra 时间远高于此。我最后一次运行大约是 15 分钟。编译时间与“El Capitan”的编译时间大致相同。

我是我团队中唯一一个尝试这个新 macOS 的人,所以我不知道它是只发生在我的 Mac 上还是普遍存在的问题。

我的同事在 Ubuntu 上遇到了类似的问题,这与随机数生成减慢了测试速度有关 - Slow service response Times : Java SecureRandom & /dev/random

不幸的是,这对我不起作用。最初我在 JDK 8u54 上尝试过,然后尝试更新到 JDK 8u102,但也没有用。

附:我正在运行 Macbook Pro Mid-2015 2.8GHz i7、16GB 内存、1TB SSD。

最佳答案

我遇到了同样的问题。升级后,Tomcat 从 15 秒缩短到 6 分钟来初始化 Spring 上下文......禁用 csrutils 并没有解决我的问题。

解决了问题,方法是在映射到 127.0.0.1 地址以及 ::1 像这样:

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

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

在帖子中,我还链接到 github project帮助解决问题并验证解决方案。

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

无论如何,解决方案与 antid0te 相同。立即实现并开始工作。

关于java - Jvm 需要很长时间才能解析 localhost 的 ip-address,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39636792/

相关文章:

java - 如果我使用最新的 JDK 编译 Java 文件,那么旧的 JVM 是否能够运行 .class 文件?

Java引入临时对象

java - 如何关闭内部框架?

java - Jsoup Java HTML 解析器 : Executing Javascript events

java - java中如何显示中间数字

scala - specs2 中的最终清理

scala - "Higher Kinded Type Should be Enabled"警告

java - 如何验证Java中的内存泄漏

java - NIO 中线程实现所需的帮助

scala - 如何打包和引用资源文件夹中的文本文件