Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Izmeneniya v relize 2608 azul zing builds of openjdk
Dev48
info@dev48.org+375 29 320-40-96WhatsApp@isky_by

© 2026 · Все права защищены.

Изменения в релизе 26.08 Azul Zing Builds of OpenJDK

Источник: Azul | Better Java Performance, Superior Java Support•27 сентября 2026 г. в 09:11

Изменения в релизе 26.08 Azul Zing Builds of OpenJDK

Узнайте об изменениях в стабильной сборке 26.08 Azul Zing.

Если вы используете стабильную сборку 26.02, переход на 26.08 объединяет шесть месяцев работы над потоковыми сборками (Stream Build) в одно обновление, причем за один из этих месяцев появилась возможность полностью пропустить большую часть прогрева JIT.

К концу этого поста вы будете точно знать, что изменилось между 26.02.0.0 и 26.08.1.0: какие значения по умолчанию теперь отличаются (особенно на ARM64), какие параметры вышли из статуса экспериментальных, какая комбинация параметров остановит запуск вашей JVM и какие исправления безопасности вы получаете при обновлении.

Как связаны потоковая и стабильная линейки

Azul Zing Builds of OpenJDK, оптимизированная среда выполнения Java в составе Azul Prime, выпускается в двух вариантах.

Потоковые сборки (Stream Builds) выпускаются ежемесячно и содержат новейшие функции, а также изменения из наборов исправления патчей (PSU). Номер версии состоит из года и месяца, поэтому 26.08.0.0 — это августовская потоковая сборка 2026 года. Вы можете получить потоковые сборки, запросив пробную версию Azul Prime.

Стабильные сборки (Stable Builds) создаются на основе потоковых сборок и обновляются только критическими обновлениями патчей (CPU), PSU и критическими исправлениями Zing — без добавления новых функций и некритических изменений. Именно так Azul доставляет клиентам срочные исправления, и они доступны только клиентам. Номер сохраняет преемственность происхождения: 26.08.1.0 создана на базе августовской потоковой сборки 2026 года, а цифра 1 обозначает ее как первое обновление с момента выпуска.

Два раза в год, в феврале и августе, потоковая сборка получает статус новой стабильной сборки. Стабильная сборка 26.08 — это августовское продвижение 2026 года, и все описанное ниже попало в потоковые сборки между этими двумя релизами. Потоковой сборки 26.03 не было, поэтому диапазон охватывает версии с 26.04 по 26.08.

Потоковая компиляция (Compilation Streaming)

Потоковая компиляция позволяет каждой JVM при запуске скачивать поток предварительно скомпилированного кода из Azul Optimizer Hub и устанавливать его напрямую, что сокращает время очереди компиляции во время прогрева. Вместо того чтобы ждать, пока собственный компилятор обработает очередь, JVM начинает работу с уже скомпилированным кодом.

Эта функция работает через Cloud Native Compiler и должна быть включена с обеих сторон. На сервере запущен Optimizer Hub 26.08.0 или более поздней версии, а также задан параметр compilationStreaming.enabled; компонент task-executor, собирающий потоки, развертывается по умолчанию начиная с Optimizer Hub 26.08.0, поэтому отдельного включения не требуется. На стороне JVM добавьте флаг -XX:+CNCEnableCompilationStreaming.

Параметры, управляющие этой функцией:

Одно примечание, если вы следили за этой функцией в потоковой линейке: сбой JVM, который мог произойти при разрешении компиляции из потока, был зафиксирован как известная проблема в версии 26.08.0.0. Он исправлен в версии 26.08.1.0, поэтому в стабильной линейке потоковая компиляция доступна без этого оговорки.

Исправления безопасности

Стабильная линейка 26.08 включает исправления безопасности из релизов CPU и PSU за апрель и июль 2026 года, а также августовское критическое обновление безопасности (CSPU) 2026 года.

CSPU — это новый формат 2026 года. Он доставляет исправления безопасности и стабильности в промежутках между квартальными обновлениями и не добавляет новых функций, изменений API и поведения, за исключением самих исправлений безопасности. Августовское CSPU 2026 года стало первым релизом такого рода для Azul Zing Builds of OpenJDK.

Общие улучшения

  • Схема легковесного блокирования теперь имеет потоко-локальные варианты операций monitorenter и monitorexit, что позволяет Orca оптимизировать блокировки для неизвлекаемых (unescaped) объектов.
  • Параметр -XX:+UseTaggedAddressForJavaHeap теперь включен по умолчанию на ARM64. Когда значение -Xmx превышает 512 ГБ, Zing отключает этот параметр и записывает предупреждение в лог.
  • Экспериментальный параметр -XX:+UseZlibNG теперь можно включать на JDK 25. zlib-ng — это оптимизированная по производительности замена zlib, которая в некоторых случаях может повысить пропускную способность и снизить нагрузку на CPU; в версиях для JDK 11, 17 и 21 она появилась в 26.02.0.0, а поддержка JDK 25 закрывает этот пробел.
  • MXBean памяти Metaspace добавлен для совместимости с OpenJDK. Поскольку Zing отслеживает метаданные в куче Java, что уже покрывается существующим MXBean кучи Zing, этот компонент всегда сообщает о нулевом использовании. Он отключен по умолчанию и включается с помощью -XX:+EnableMetaspacePoolMXBean.
  • Функция ThreadOpt (-XX:+UseThreadOpt и -XX:ThreadOptOptions) устасела и при использовании выводит предупреждение.
  • Размер дистрибутива среды выполнения уменьшился за счет отказа от включения урезанных библиотек librpc.so и librpccpp.so.
  • Стоит отметить следующие исправления стабильности: сбой в режиме без ZST, когда -XX:+UseLargePages использовался с размером огромных страниц (huge pages), отличным от 2 МБ; сбой в AsyncGetCallTrace, когда ucontext был равен null (что затрагивало некоторые режимы async-profiler); запись блоков JFR, выполняемая при удерживании блокировки JVM, которая могла вызывать многосекундные задержки time-to-safepoint; а также инициализацию JFR множества рекомпиляций при подключении (attach), когда ZVision этого не делал.

Optimizer Hub, локальный резервный режим и ReadyNow

  • Методы, скомпилированные с пониженным уровнем оптимизации во время локального резервного режима (local fallback), теперь перекомпилируются на целевом уровне, как только Cloud Native Compiler снова становится доступен.
  • Новый параметр -XX:CNCProductivityRemoteCpuToLocalCpuEquivalenceFactor настраивает принятие решений о локальном резервном режиме на основе производительности.
  • Значение по умолчанию для -XX:ProfileLogOutMaxNominatedGenerationCount изменено с 0 (бесконечно) на 4, что делает третье поколение профиля ReadyNow максимальным уровнем, номинируемым виртуальной машиной при использовании Cloud Native Compiler.
  • Параметр -XX:+EnableRNO больше нельзя использовать совместно с -XX:ProfileLogName. Zing завершает работу с ошибкой, указывающей на необходимость использовать -XX:ProfileName. Эта ошибка проявится при запуске, а не тихо, поэтому проверьте свои флаги перед обновлением.

Многоуровневая компиляция (Multi-tiering)

Три командные строки многоуровневой компиляции теперь являются продуктовыми параметрами, поэтому их установка больше не требует флага -XX:+UnlockExperimentalVMOptions.

Сама многоуровневая компиляция по-прежнему отключена по умолчанию. Включите ее с помощью параметра -XX:+UseMultiTiering.

Логирование сборщика мусора и компилятор Falcon

  • Новый параметр -XX:GCLogPrintRecompStatistics записывает статистику рекомпиляции в лог сборщика мусора в строке RECOMPSCANSTATS.
  • Новый параметр -XX:FalconIntrinsifyFillInStackTrace0 управляет использованием интринсика Throwable.fillInStackTrace0(int).
  • Запись в лог сборщика мусора, выполняемая при удерживании блокировки JVM, могла вызывать тайм-ауты контрольных точек (checkpoint). Исправлено.

Краткий обзор изменений параметров командной строки

Новые:

  • -XX:[+/-]CNCEnableCompilationStreaming, -XX:CNCCompilationStreamingMaxActiveSegments, -XX:CNCCompilationStreamingStopAfterSeconds и -XX:[+/-]CNCCompilationStreamingPrintStatsAtExit
  • -XX:CNCProductivityRemoteCpuToLocalCpuEquivalenceFactor
  • -XX:GCLogPrintRecompStatistics
  • -XX:FalconIntrinsifyFillInStackTrace0
  • -XX:+EnableMetaspacePoolMXBean

Переведены из экспериментальных в продуктовые параметры:

  • -XX:MultiTieringSamplingIntervalMS, -XX:MultiTieringSamplingStartDelayMS и -XX:FalconMidTierOptimizationLevel

Измененные значения по умолчанию:

  • -XX:ProfileLogOutMaxNominatedGenerationCount, с 0 (бесконечно) на 4
  • -XX:+UseTaggedAddressForJavaHeap, теперь включен по умолчанию на ARM64

Устаревшие:

  • -XX:+UseThreadOpt и -XX:ThreadOptOptions

Более не совместимы друг с другом:

  • -XX:+EnableRNO и -XX:ProfileLogName. Используйте -XX:ProfileName.

Версии OpenJDK в 26.08.1.0

Одно обновление дает вам шесть месяцев работы над потоковой сборкой, предварительно скомпилированный код, поступающий по потоку при запуске, и каждое исправление безопасности OpenJDK по август 2026 года включительно.

Часто задаваемые вопросы

Как сократить время прогрева JVM в продакшене?

Время подготовки к работе в основном определяется JIT-компиляцией, поэтому самый быстрый способ сократить его — избежать компиляции с нуля при каждом запуске. Azul Prime решает эту задачу с помощью ReadyNow, которая повторно использует информацию профилирования от предыдущих запускaв, и Compilation Streaming, позволяющей JVM загружать предварительно скомпилированный код из Azul Optimizer Hub при запуске и устанавливать его напрямую, вместо ожидания собственной очереди компиляции. Функция Compilation Streaming была представлена в релизе Azul Prime 26.08 и требует наличия Azul Optimizer Hub 26.08.0 или более поздней версии.

В чем разница между потоковым (stream) релизом и стабильным (stable) релизом среды выполнения Java?

Потоковые релизы выпускаются часто и содержат новые функции наряду с плановыми обновлениями, в то время как стабильные релизы оставляют функциональность неизменной и включают только исправления безопасности и критические исправления. Azul Prime использует эту модель для Azul Zing Builds of OpenJDK: потоковые сборки (Stream Builds) выпускаются ежемесячно и доступны для разработки и оценки, а стабильные сборки (Stable Builds) получают только критические обновления безопасности (Critical Patch Updates), обновления наборов патчей (Patch Set Updates) и критические исправления и доступны клиентам Azul. Потоковая сборка переводится в статус новой стабильной сборки два раза в год — в феврале и августе.

Что такое критическое обновление безопасности для Java?

Критическое обновление безопасности (Critical Security Patch Update, или CSPU) содержит исправления безопасности и стабильности в промежутках между регулярными квартальными обновлениями Java. Оно не добавляет новых функций, изменений API и изменений поведения, за исключением самих исправлений безопасности, что делает его применение менее рискованным. Компания Azul выпустила первое обновление CSPU для Azul Zing Builds of OpenJDK в августе 2026 года, и оно включено в стабильную ветку Azul Prime 26.08 наряду с исправлениями Critical Patch Update и Patch Set Update за апрель и июль 2026 года.

Какие версии Java можно запускать на оптимизированной для производительности JVM?

Azul Prime 26.08 поддерживает OpenJDK 8, 11, 17, 21 и 25, что соответствует 1.8.0_504-b2, 11.0.32.1+1-LTS, 17.0.20.1+1-LTS, 21.0.12.1+1-LTS и 25.0.4.1+1-LTS. Java 25 является релизом с долгосрочной поддержкой (Long-Term Support), и поддержка для него появилась в релизе Azul Prime 26.02. Использование более старой мажорной версии не лишает вас текущих оптимизаций, поскольку каждый релиз распространяется на все поддерживаемые версии.

Что дают несколько уровней JIT-компилятора для производительности Java-приложений?

Несколько уровней компилятора позволяют JVM быстро компилировать код на низком уровне оптимизации на раннем этапе, а затем перекомпилировать важный код на более высоком уровне, что жертвует небольшой частью пиковой производительности ради гораздо более быстрого прогрева. Azul Prime реализует это в виде функции Multi-Tiering, которая отключена по умолчанию и включается с помощью параметра командной строки -XX:+UseMultiTiering. Начиная с релиза Azul Prime 26.08, интервал сэмплирования, задержка запуска сэмплирования и уровень оптимизации среднего уровня стали продуктовыми параметрами, которые больше не требуют разблокировки экспериментальных опций виртуальной машины.

← Все статьи

О чём эта статья

Ещё в разделе «Разработка ПО»

Все →
Создание заслуживающего доверия интерфейса ИИ
Telerik

Создание заслуживающего доверия интерфейса ИИ

Генеративный ИИ для бизнеса: Полное руководство (2026)
Shopify

Генеративный ИИ для бизнеса: Полное руководство (2026)

8 лучших систем бронирования для мини-отелей и типа «постель и завтрак»
Guesty

8 лучших систем бронирования для мини-отелей и типа «постель и завтрак»

Лучшее программное обеспечение для сайтов прямых бронирований арендного жилья: сравнение 8 инструментов
Guesty

Лучшее программное обеспечение для сайтов прямых бронирований арендного жилья: сравнение 8 инструментов

Эффект предпринимательства в Великобритании: когда больше людей создают бизнес, выигрывают все (2026)
Shopify

Эффект предпринимательства в Великобритании: когда больше людей создают бизнес, выигрывают все (2026)

Ваш переход на Red Hat OpenShift Virtualization не должен зависеть от VDDK
Red Hat

Ваш переход на Red Hat OpenShift Virtualization не должен зависеть от VDDK

Ещё от Azul

Чему высокочастотный трейдинг может научить ваше Java-приложение в вопросах задержек
Azul

Чему высокочастотный трейдинг может научить ваше Java-приложение в вопросах задержек

Как один крупный Java-флот задействовал Transparent Huge Pages без раздувания памяти
Azul

Как один крупный Java-флот задействовал Transparent Huge Pages без раздувания памяти

Те же CVE, разные дистрибутивы JDK: где вы берете свои патчи?
Azul

Те же CVE, разные дистрибутивы JDK: где вы берете свои патчи?

JDK 27: Затишье перед бурей
Azul

JDK 27: Затишье перед бурей

Установка патчей для Java со скоростью инцидента: уроки компрометации удостоверяющего центра eMudhra
Azul

Установка патчей для Java со скоростью инцидента: уроки компрометации удостоверяющего центра eMudhra

Бесплатная Java, реальный риск: почему неподдерживаемый OpenJDK стал угрозой безопасности
Azul

Бесплатная Java, реальный риск: почему неподдерживаемый OpenJDK стал угрозой безопасности