ОБНОВЛЕНИЕ
Из комментариев выяснилось, что выбранный мной подход к тесту был неверным, поэтому результаты вводили в заблуждение. После исправления моего подхода (как в принятом ответе) результаты будут такими, как можно было ожидать - производительность JDK 13 такая же, как и с JDK 11. Более подробные сведения см. В ответе.
Оригинальный вопрос
Я выполнял некоторые тесты производительности на HashSet в Windows 10, используя следующий тестовый код для JMH:
@Benchmark
@BenchmarkMode(Mode.AverageTime)
@Fork(value = 1, warmups = 1)
public void init() {
HashSet<String> s = new HashSet<>();
for (int i = 0; i < 1000000; i++) {
s.add(Math.random() + "");
}
s.size();
}
Я скомпилировал и запустил его под разными версиями JDK, и вот каковы результаты Я получил:
Я также протестировал его с разными размерами кучи (таким образом, 3 разных цвета для каждого JDK). JDK 14 - это, конечно, предварительный снимок с сегодняшнего дня - просто чтобы увидеть, как ZG C работает под Windows.
Интересно - что случилось после JDK 11? (обратите внимание, что для JDK 12 он уже начинает расти, хотя его нет на графике выше)