以前 IDEA 启动 springboot 项目一般是 10 秒左右,然后做毕设的项目启动需要一分钟,本来以为是项目问题,结果几天之前突然可以 10 秒启动,过了一天又是一分钟启动,我就很纳闷,后来用 Dump Threads 发现启动项目的时候基本都是卡在这个方法上:NetworkInterface.getByInetAddress () 然后跑了程序测试了一下这个方法
class HelloWorldApp {
public static void main(String[] args) {
InetAddress ip;
try {
ip = InetAddress.getLocalHost();
System.out.println("Current IP address : " + ip.getHostAddress());
long startTime = System.nanoTime();
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
byte[] mac = network.getHardwareAddress();
long endTime = System.nanoTime();
long duration = (endTime - startTime);
double seconds = (double)duration / 1000000000.0;
System.out.println("Duration: " +String.valueOf(seconds) + " seconds");
System.out.print("Current MAC address : ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mac.length; i++) {
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
}
System.out.println(sb.toString());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e){
e.printStackTrace();
}
}
}
发现需要 15 秒左右运行时间,debug 发现还会多次调用这个方法 今天又发现项目可以 8 秒运行,果断再次测试了一下这个方法,结果只需要 1 秒
Duration: 1.1810905 seconds
之前把本机的 hostname 添加 hosts 文件中都不行,今天突然又正常了,就很奇怪,有没有人遇到同样的问题
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.