Axiom 8u302, 11.0.12 и 16.0.2 доступны для загрузки

Axiom 8u302, 11.0.12 и 16.0.2 доступны для загрузки


Июль 22, 2021


Цикл ежеквартальных обновлений Java™ в очередной раз подтверждает свою эффективность. С выходом новых сборок Liberica JDK (с 2022 года - Axiom JDK) 8u302, 11.0.12 и 16.0.2 сообщество OpenJDK смогло решить впечатляющее количество проблем предыдущих версий. Итак, в июльском релизе достигнуты следующие результаты:

  • устранено уязвимостей — 4:
    • CVE-2021-2388 (оценка CVSS 7.5),
    • CVE-2021-2369 (оценка CVSS 4.3),
    • CVE-2021-2432 (оценка CVSS 3.7),
    • CVE-2021-2341 (оценка CVSS 3.1);
  • сделано патчей безопасности — 16;
  • добавлено бэкпортов и исправлено ошибок — 501:
    • в Axiom 8u302 — 145,
    • в Axiom 11.0.12 — 281,
    • в Axiom 16.0.2 — 72 + 3 в JFX.

Команда БЕЛЛСОФТ всегда старается учитывать потребности ваших проектов, реализовывать ожидания клиентов от JDK и JRE. Вот что вас ждёт помимо усиления безопасности и повышения производительности.

1. Axiom NIK Core

По многочисленным просьбам клиентов мы выпускаем особую версию компилятора Axiom Native Image Kit под названием Axiom NIK Core. Новый комплект содержит только код Java™ (сборки Axiom VM и GraalVM Community Edition) без дополнительных языковых плагинов.

Начиная с июля 2021 года БЕЛЛСОФТ предлагает два инструмента для преобразования байткода в высокопроизводительные нативные файлы и ускорения приложений. Первый, Axiom NIK Standard, остаётся лучшим вариантом при работе на разных языках JVM. Axiom NIK Core — оптимальный выбор для разработки исключительно на Java™, особенно в связке со Spring Native1 и всей экосистемой Spring. Новый формат поддерживается на тех же платформах, что и Standard. С полным списком архитектур и операционных систем, доступных для Axiom NIK, можно ознакомиться на странице «Поддерживаемые конфигурации».

2. Оптимизированный JDK 8 Lite

Наконец, это случилось! Теперь Liberica JDK 8u302, как 11 и 16 версии, выпускается в виде пакетов Lite, расширяя тем самым линейку продуктов БЕЛЛСОФТ.

В таблице ниже вы можете сравнить размеры файлов для разных операционных систем. Оцените, как много места на диске получится сэкономить при переходе со Standard на Lite.

  JDK Standard JDK Lite
Alpine (apk) 97,54 48,03
Alpine (tar.gz) 99,90 49,27
Debian (deb) 83,14 35,89
CentOS (rpm) 88,64 40,47
Linux (tar.gz) 101,65 51,32


Размеры бинарных файлов JDK 8u302 Standard и Lite, МБ

Образ Liberica JDK Alpine musl остаётся лучшим предложением на рынке для создания самых маленьких контейнеров на Java™. Планируете миграцию на микросервисы и ищете способ сократить потребление облачных ресурсов? JDK 8 — стабильный и одновременно прогрессивный выбор.

3. Уменьшение размера контейнеров с JDK 11 и 16 Lite

Когда дело касается разработки ПО, размер имеет значение. В результате оптимизации пакетов Axiom 11.0.12 и 16.0.2 Lite мы добились значительного сокращения размеров Docker-контейнеров:

  • Liberica JDK 11.0.12 Alpine Linux musl — 75,82 МБ
  • Axiom JRE 11.0.12 Alpine Linux musl — 44,19 МБ
  • Liberica JDK 11.0.12 java.base — всего 21,7 МБ!

Забронируйте бесплатную консультацию с экспертами БЕЛЛСОФТ и узнайте, какую пользу контейнеры на Java принесут вашему проекту.

Изменения в основной ветви OpenJDK: подборка функций JDK 11.0.12

1. Бэкпорты для AArch64

В текущую версию JDK 11 были перенесены исправления, связанные с улучшением производительности среды исполнения Java на архитектуре Arm. Команда БЕЛЛСОФТ выполнила 28 бэкпортов, что составляет 10% от общего их числа. Такой большой объем изменений стал возможным также благодаря вкладу инженеров Red Hat, которые сперва настроили поддержку,2 а затем оптимизировали3 работу LSE Atomics в коде C++.

Работа с бэкпортами привела к повышению показателей DaCapo в среднем на 6%.

2. Устранение зависимостей от JNF

JavaNativeFoundation — это фреймворк от Apple, предназначенный для поддержки Java-приложений, которые используют нативные методы. Не являясь частью операционной системы macOS, он представляет собой набор макросов и функций языка C для обеспечения совместимости с фреймворком Cocoa. К примеру, он отвечает за переключение между строками Java и NSStings. Его макросы выполняют разные функции: очистка памяти, переброс исключений Objective-C и работа с пулами Autorelease. Использование этого компонента не было обязательным, но отключение могло привести к трудноуловимым ошибкам. Теперь же поддержка JNF в Java™ полностью прекращается.

Текущий релиз 11.0.12 не поддерживает зависимости от JNF, и JavaNativeFoundation Framework в целом больше не поставляется в комплекте с Liberica JDK 11, как на x86_64, так и на AArch64. Для пользователей Mac изменение пройдет совершенно незаметно — достаточно просто установить новую версию среды.

3. Бэкпортирование G1

В этом обновлении улучшена производительность сборщика мусора G1 для приложений, производящих большое число humongous objects (объектов, которые не помещаются в один регион и хранятся в смежных) с коротким временем жизни. Сборка большинства из них происходит в фазу молодого поколения. Таким образом, количество регионов с характеристикой humongous, представленных после последнего GC, вновь выделенных после последнего GC или представленных после текущего GC, записывается в каждом цикле, где задействовано только молодое поколение регионов.4 Эти данные используются для адаптивного вычисления значения процента инициализации кучи (IHOP).5


Вы можете быть уверены, что БЕЛЛСОФТ прислушивается к сообществу OpenJDK. Мы стремимся предлагать своим клиентам удобные инструменты для создания критически важных Java-приложений, выпускать релизы качественно и в срок.

Все новые сборки доступны для скачивания уже сейчас! Кликните по кнопке ниже или перейдите в Центр загрузок Liberica JDK.

Ссылки

  1. Spring Native on GitHub
  2. [JDK-8263876] AArch64: Support for LSE atomics C++ HotSpot code - Java Bug System
  3. [JDK-8263877] AArch64: Optimize LSE atomics in C++ code - Java Bug System
  4. [JDK-8246274] G1 old gen allocation tracking is not in a separate class - Java Bug System
  5. [JDK-8245511] G1 adaptive IHOP does not account for reclamation of humongous objects by young GC - Java Bug System
Author image

Олег Чирухин

Директор по коммуникациям с разработчиками (DevRel)

Команда Axiom JDK roman.karpov@axiomjdk.ru Команда Axiom JDK logo Axiom Committed to Freedom 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67 Команда Axiom JDK 199 Obvodnogo Kanala Emb. 190020 St. Petersburg RU +7 812-336-35-67