Рубріки: Новости

Вышла Java 17. Насколько она быстрее предыдущих версий?

Богдан Мирченко

Вышла Java 17. Согласно документации, в новую версию попало более 2700 закрытых задач и 14 JEP’ов. Но изменения также коснулись и производительности. Насколько именно, узнал разработчик и создатель планировщика OptaPlanner Джеффри Де Смет, сравнив между собой показатели JDK 17, JDK 16 и JDK 11.

Чтобы получить прирост производительности, достаточно просто поменять установку JDK. Автор проводил исследование методом эталонного тестирования на устройстве со следующими характеристиками:

  • Intel® Xeon® Silver 4116 @ 2.1 ГГц;
  • 128 ГБ RAM, работающая под управлением RHEL 8 x86_64.

JDK, которое использовалось как для компиляции, так и для запуска:

  • JDK 11
openjdk 11.0.12 2021-07-20
OpenJDK Runtime Environment Temurin-11.0.12+7 (build 11.0.12+7)
OpenJDK 64-Bit Server VM Temurin-11.0.12+7 (build 11.0.12+7, mixed mode)
  • JDK 16
openjdk 16.0.2 2021-07-20
OpenJDK Runtime Environment (build 16.0.2+7-67)
OpenJDK 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)
  • JDK 17
openjdk 17 2021-09-14
OpenJDK Runtime Environment (build 17+35-2724)
OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)

Параметры JVM: -Xmx3840M со сборщиком мусора:

  • -XX:+UseG1GC для G1GC, сборщика мусора с низкой задержкой (по умолчанию во всех трех JDK);
  • -XX:+UseParallelGC для ParallelGC, сборщика мусора с высокой пропускной способностью.

Общие данные

Main class: org.optaplanner.examples.app.GeneralOptaPlannerBenchmarkApp из модуля optaplanner-examples в планировщике OptaPlanner 8.10.0.Final.

С помощью OptaPlanner во время каждого запуска решается 11 задач планирования, таких как ротация кадров, составление школьного расписания и оптимизация облачных вычислений. Каждая задача планирования выполняется в течение пяти минут. Ведение журнала установлено на INFO. Эталон начинается с 30-секундного разогрева JVM.

Решение задачи планирования не требует никаких операций ввода-вывода (за исключением нескольких миллисекунд при запуске для загрузки входных данных). Один процессор полностью загружен. Он постоянно создает множество объектов с коротким жизненным циклом, а GC потом их собирает.

Контрольные показатели измеряют количество подсчитанных баллов в секунду. Выше — лучше. Подсчет баллов для предлагаемого решения по планированию нетривиален. Он включает в себя множество вычислений, в том числе проверку на наличие конфликтов между каждым объектом и каждым другим объектом.

После запуска каждый JDK и каждая комбинация сборщика мусора запускают последовательно по три раза. Приведенные ниже результаты собой среднее значение трех прогонов.

Вычисления

Относительная оценка G1GC.

Сравнение JDK 11 с JDK 17 и JDK 16 с JDK 17

В таблицу ниже сведены данные по количеству подсчетов баллов в секунду с G1GC на разных JDK.

Относительная оценка ParallelGC (чем выше, тем лучше).

Сравнение JDK 11 с JDK 17 и JDK 16 с JDK 17

В таблицу ниже сведены данные по количеству подсчетов баллов в секунду с ParallelGC на разных JDK.

G1GC против ParallelGC на Java 17

Относительная оценка JDK 17.

G1 → ParallelGC

В таблицу ниже сведены данные по количеству подсчетов баллов в секунду на JDK 17 с разными сборщиками мусора.

Результаты

Усредненные значения при использовании OptaPlanner показали, что:

  • Java 17 на 8,66% быстрее, чем Java 11 и на 2,41% быстрее, чем Java 16 для G1GC.
  • Java 17 на 6,54% быстрее, чем Java 11 и на 0,37% быстрее, чем Java 16 для ParallelGC.
  • Parallel Garbage Collector на 16,39% быстрее, чем G1 Garbage Collector.

В принципе, считает Джеффри Де Смет, исследование не показало ничего удивительного: последняя версия JDK быстрее, а сборщик мусора с высокой пропускной способностью быстрее сборщика мусора с низкой задержкой.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023