Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Izmeneniya v relize 2608 azul zing builds of openjdk
Dev48

© 2026 · All rights reserved.

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

Источник: Azul | Better Java Performance, Superior Java Support

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

Источник: Azul | Better Java Performance, Superior Java Support

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

27 сентября 2026 г.•Обновлено: 27 сентября 2026 г.

Если вы используете стабильную сборку 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, интервал сэмплирования, задержка запуска сэмплирования и уровень оптимизации среднего уровня стали продуктовыми параметрами, которые больше не требуют разблокировки экспериментальных опций виртуальной машины.

← Все статьи

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

Все →
Обзор Sennheiser Momentum 5: великолепный звук, невероятное время автономной работы и минимум компромиссовПресса
Momentum

Обзор Sennheiser Momentum 5: великолепный звук, невероятное время автономной работы и минимум компромиссов

Boeing сообщает о программном сбое в 737 Max, затрагивающем некоторые функции автоматического захода на посадкуПресса
Boeing

Boeing сообщает о программном сбое в 737 Max, затрагивающем некоторые функции автоматического захода на посадку

Apple обязали выплатить 5,7 млрд долларов по иску о нарушении патентных прав на тактильные технологии в iPhone и Apple Watch
Пресса
Apple

Apple обязали выплатить 5,7 млрд долларов по иску о нарушении патентных прав на тактильные технологии в iPhone и Apple Watch

Компании выбирают САПР от PTC для разработки и проектирования продуктов
PTC

Компании выбирают САПР от PTC для разработки и проектирования продуктов

Clas Ohlson выбирает PTC FlexPLM для поддержки своей стратегии роста
PTC

Clas Ohlson выбирает PTC FlexPLM для поддержки своей стратегии роста

Canon ITS и PTC Japan запускают «Smart PLM Support Service» для поддержки трансформации рабочих процессов в сфере производства
PTC

Canon ITS и PTC Japan запускают «Smart PLM Support Service» для поддержки трансформации рабочих процессов в сфере производства

Ещё от Azul

Представляем ИИ-помощник Azul Intelligence Cloud: задайте вопрос о вашей инфраструктуре Java
Azul

Представляем ИИ-помощник Azul Intelligence Cloud: задайте вопрос о вашей инфраструктуре Java

Что нового в выпуске Azul Payara за сентябрь 2026 года?
Azul

Что нового в выпуске Azul Payara за сентябрь 2026 года?

Когда злоумышленники действуют со скоростью ИИ, ваша частота выпуска патчей Jakarta EE — это ваша защита
Azul

Когда злоумышленники действуют со скоростью ИИ, ваша частота выпуска патчей Jakarta EE — это ваша защита

Отчет Azul State of Java за 2026 год: 62% предприятий теперь используют Java для поддержки функций ИИ, а 41% полагаются на высокопроизводительные платформы Java для снижения затрат на облачные вычисления
Azul

Отчет Azul State of Java за 2026 год: 62% предприятий теперь используют Java для поддержки функций ИИ, а 41% полагаются на высокопроизводительные платформы Java для снижения затрат на облачные вычисления