Java NetworkInterface.getByInetAddress()花费的时间太长

Java NetworkInterface.getByInetAddress()花费的时间太长,java,jvm,Java,Jvm,我有一个非常奇怪的情况…我运行java时是这样的: java-Dfile.encoding=UTF-8-server-classpath“…jar”-verbose com.class args 我可以看到它在以下情况下减速20秒: [从jdk\jre\lib\rt.jar加载的java.net.DefaultInterface] 之前:[从jdk\jre\lib\rt.jar加载了java.net.NetworkInterface$1] 有什么问题吗?提前谢谢你的帮助 编辑: 在verbose

我有一个非常奇怪的情况…我运行java时是这样的:

java-Dfile.encoding=UTF-8-server-classpath“…jar”-verbose com.class args

我可以看到它在以下情况下减速20秒:

[从jdk\jre\lib\rt.jar加载的java.net.DefaultInterface]

之前:
[从jdk\jre\lib\rt.jar加载了java.net.NetworkInterface$1]

有什么问题吗?提前谢谢你的帮助

编辑:

在verbose:jni上,我可以看到它停在:

[动态链接本机方法java.net.NetworkInterface.getByInetAddress0…JNI]

所以我执行了以下程序:

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;

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();        
        }
    }
}
NetworkInterface.getByInetAddress(ip)
大约需要20秒。有什么想法吗

java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

javac -version
javac 1.7.0_79

这台机器上的所有Java应用程序都是这样吗?你能提供一个例子来说明这个问题吗?我的机器上可能有一些配置不正确的地方,但是我尝试用python做同样的事情,没有性能问题。我只有java有这个问题。在windows和java8上需要30毫秒。网络接口方法的AIK性能还取决于网络接口的数量和分配给接口的地址。
java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

javac -version
javac 1.7.0_79