升级到 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/