Mac 启动项目变慢(记一次本机InetAddress.getL

2021-12-09  本文已影响0人  抄无止境

记一次本机InetAddress.getLocalHost()引起的项目启动变慢及解决过程

起因

某一天,项目启动突然很慢,并且连很简单的单元测试都需要1分钟的时间才开始运行;貌似是Mac升级到最新版本的:Sierra之后开始出现的。

分析

jstack
jstack -l pid | more,看到每次项目都会在这个地方锁住,锁大约1分钟

image.png
jmap

jmap -dump:format=b,file=xx pid,用MAT分析,可以看到这个地址就是一个简单的Object对象,没啥特别

image.png
debug

debug工程,发现 java.net.InetAddress.getLocalHost 每次都会锁5秒,很多jar都会调用到这个方法,累计就让启动启动停滞了1分钟。

具体的阻塞点是:addresses = nameService.lookupAllHostAddr(host);

初步解决

修改/etc/hosts,增加两行,IP地址到 hostname 对应的主机名的映射,OK了。


image.png
机器发生了什么? 等待原作者解决咯 😄😄
上一篇下一篇

猜你喜欢

热点阅读