Я пытаюсь отключить поддержку HTTP в Java для тестирования производительности. Я предполагаю, что если я отключу keep-alives, Java будет делать меньше рукопожатий. Однако после добавления -Dhttp.keepalive=false
к аргументам JVM (что должно отключить keep-alive) я не вижу разницы при трассировке пакетов в wireshark.
Я сделал небольшой Java-код для проверки:
public static void main(String[] args) throws Exception {
String httpsURL = "https://www.google.com";
URL myUrl = new URL(httpsURL);
for(int i = 0; i < 3; i++) {
System.out.println("Sending packet");
HttpsURLConnection conn = (HttpsURLConnection) myUrl.openConnection();
InputStream is = conn.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
Thread.sleep(10000);
}
}
Я тестировал его на JDK, который получил отсюда: https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=openj9#x64_mac
Итак, я попытался запустить с помощью следующих 2 команд:
openj9-11/Contents/Home/bin/java HelloWorld
openj9-11/Contents/Home/bin/java -Dhttp.keepAlive=false HelloWorld
Результаты Wireshark (при фильтрации по ip == 172.217.10.100; т. Е. IP-адрес Google) для обоих прогонов идентичны.
- Скриншот Wireshark (отслеживание первой команды): https://imgur.com/a/SrNWmxZ
- Скриншот Wireshark (отслеживание второй команды): https://imgur.com/a/bOEn0tC
Я ожидал получить меньше рукопожатий при трассировке второй команды. Я делаю что-то не так или ожидаемые результаты?