启动日志
以下是个 Spring Boot 项目启动日志(已刨除无关部分)
1
2
3
4
5
|
...
10:30:10.110 INFO [background-preinit] org.hibernate.validator.internal.util.Version --- HV000001: Hibernate Validator 5.4.1.Final
10:30:15.135 WARN [main] org.springframework.boot.StartupInfoLogger --- InetAddress.getLocalHost().getHostName() took 5001 milliseconds to respond. Please verify your network configuration (macOS machines may need to add entries to /etc/hosts).
10:30:20.142 INFO [main] com.example.test.Application --- Starting Application on jioby.local with PID 67279 (/XXX/target/classes started by jioby in /XXX)
...
|
原因分析
上述日志均有个特点,每个涉及 DNS 解析的都会花费 5 秒钟左右。
然后根据日志提示,看看 InetAddress.getLocalHost()
需要执行多久:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import java.net.InetAddress;
public class Demo {
public static void main(String[] args) {
System.out.printf("Start: %tT%n", System.currentTimeMillis());
try {
System.out.println(InetAddress.getLocalHost());
System.out.printf("Mid: %tT%n", System.currentTimeMillis());
System.out.println(InetAddress.getLocalHost());
} catch (Exception e) {
System.out.println(e.getMessage());
}
System.out.printf("End: %tT%n", System.currentTimeMillis());
}
}
|
输出结果:
1
2
3
4
5
|
Start: 17:27:58
jioby.local/192.168.131.48
Mid: 17:28:03
jioby.local/192.168.131.48
End: 17:28:08
|