报告在 java.net.URL 对象上对 hashCode()equals() 的调用。

java.net.URL 类会在内部使用 java.net.URLStreamHandler 的实例来执行 hashCode()equals() 。 这会导致性能问题,因为 java.net.URLStreamHandler 会执行 DNS 查找。 根据网络的可用性和 DNS 服务器的速度,这可能会导致显著延迟。

该问题很可能可以通过改为使用 java.net.URI 来解决。

示例:

  
    int f(URL url1, URL url2) {
      if (url1.equals(url2)) return url1.hashCode();
      else return url2.hashCode();
    }