Axiom 8u302, 11.0.12 и 16.0.2 доступны для загрузки
Июль 22, 2021
Цикл ежеквартальных обновлений Java™ в очередной раз подтверждает свою эффективность. С выходом новых сборок 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.
Axiom JDK всегда старается учитывать потребности ваших проектов, реализовывать ожидания клиентов от JDK и JRE. Вот что вас ждёт помимо усиления безопасности и повышения производительности.
1. Axiom NIK Core
По многочисленным просьбам клиентов мы выпускаем особую версию компилятора Axiom Native Image Kit под названием Axiom NIK Core. Новый комплект содержит только код Java™ (сборки Axiom VM и GraalVM Community Edition) без дополнительных языковых плагинов.
Начиная с июля 2021 года Axiom JDK предлагает два инструмента для преобразования байткода в высокопроизводительные нативные файлы и ускорения приложений. Первый, Axiom NIK Standard, остаётся лучшим вариантом при работе на разных языках JVM. Axiom NIK Core — оптимальный выбор для разработки исключительно на Java™, особенно в связке со Spring Native1 и всей экосистемой Spring. Новый формат поддерживается на тех же платформах, что и Standard. С полным списком архитектур и операционных систем, доступных для Axiom NIK, можно ознакомиться на странице «Поддерживаемые конфигурации».
2. Оптимизированный JDK 8 Lite
Наконец, это случилось! Теперь Axiom JDK 8u302, как 11 и 16 версии, выпускается в виде пакетов Lite, расширяя тем самым линейку продуктов Axiom JDK.
В таблице ниже вы можете сравнить размеры файлов для разных операционных систем. Оцените, как много места на диске получится сэкономить при переходе со 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 |
Образ Axiom JDK Alpine musl остаётся лучшим предложением на рынке для создания самых маленьких контейнеров на Java™. Планируете миграцию на микросервисы и ищете способ сократить потребление облачных ресурсов? JDK 8 — стабильный и одновременно прогрессивный выбор.
3. Уменьшение размера контейнеров с JDK 11 и 16 Lite
Когда дело касается разработки ПО, размер имеет значение. В результате оптимизации пакетов Axiom 11.0.12 и 16.0.2 Lite мы добились значительного сокращения размеров Docker-контейнеров:
- Axiom JDK 11.0.12 Alpine Linux musl — 75,82 МБ
- Axiom JRE 11.0.12 Alpine Linux musl — 44,19 МБ
- Axiom JDK 11.0.12 java.base — всего 21,7 МБ!
Забронируйте бесплатную консультацию с экспертами Axiom JDK и узнайте, какую пользу контейнеры на Java принесут вашему проекту.
Изменения в основной ветви OpenJDK: подборка функций JDK 11.0.12
1. Бэкпорты для AArch64
В текущую версию JDK 11 были перенесены исправления, связанные с улучшением производительности среды исполнения Java на архитектуре Arm. Команда Axiom JDK выполнила 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 в целом больше не поставляется в комплекте с Axiom JDK 11, как на x86_64, так и на AArch64. Для пользователей Mac изменение пройдет совершенно незаметно — достаточно просто установить новую версию среды.
3. Бэкпортирование G1
В этом обновлении улучшена производительность сборщика мусора G1 для приложений, производящих большое число humongous objects (объектов, которые не помещаются в один регион и хранятся в смежных) с коротким временем жизни. Сборка большинства из них происходит в фазу молодого поколения. Таким образом, количество регионов с характеристикой humongous, представленных после последнего GC, вновь выделенных после последнего GC или представленных после текущего GC, записывается в каждом цикле, где задействовано только молодое поколение регионов.4 Эти данные используются для адаптивного вычисления значения процента инициализации кучи (IHOP).5
Вы можете быть уверены, что Axiom JDK прислушивается к сообществу OpenJDK. Мы стремимся предлагать своим клиентам удобные инструменты для создания критически важных Java-приложений, выпускать релизы качественно и в срок.
Все новые сборки доступны для скачивания уже сейчас! Кликните по кнопке ниже или перейдите в Центр загрузок Axiom JDK.
Ссылки
- Spring Native on GitHub
- [JDK-8263876] AArch64: Support for LSE atomics C++ HotSpot code - Java Bug System
- [JDK-8263877] AArch64: Optimize LSE atomics in C++ code - Java Bug System
- [JDK-8246274] G1 old gen allocation tracking is not in a separate class - Java Bug System
- [JDK-8245511] G1 adaptive IHOP does not account for reclamation of humongous objects by young GC - Java Bug System