Я обнаружил интересное явление при написании программ на Java.
Я создал 3 https-подключения к 3 различным URL-адресам и обнаружил, что при вызове url.openConnection()
и httpsUrlConnection.connect()
для FIRST раз, они потребовали почти 300ms
и 1s
для выполнения соответственно, в то время как во время второго и третьего вызова они взяли почти 0ms
.
Есть ли причины для такой разницы в производительности?
Кстати, есть ли что-то, что я могу сделать, чтобы улучшить производительность?
К вашему сведению, все три httpsURLConnection выглядят так (try-catch
не отображается):
Url url = new URL("https://www.google.com");
Utils.logTime(logger);
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) url.openConnection();
Utils.logTime(logger);
httpsURLConnection.setRequestMethod("GET");
httpsURLConnection.setConnectTimeout(5 * 1000);
httpsURLConnection.setReadTimeout(5 * 1000);
httpsURLConnection.setRequestProperty(Utils.ACCEPT, Utils.ACCEPT_ALL);
httpsURLConnection.setRequestProperty(Utils.ACCEPT_ENCODING, Utils.GZIP);
httpsURLConnection.setRequestProperty(Utils.USER_AGENT, Utils.MOZILLA);
Utils.addCookiesToConnection(httpsURLConnection, cookieMap);
Utils.logTime(logger);
httpsURLConnection.connect();
Utils.logTime(logger);
И, как вы можете предположить, Utils и cookieMap - это класс и HashMap, созданные мной, поэтому они не должны быть в центре внимания решения.
Есть идеи?Заранее спасибо.