Как стать автором
Обновить

Комментарии 3

Функция CDS, которая значительно сокращает время запуска и потребление памяти, была интегрирована в Spring Framework 6.1 в ноябре 2023 года. Теперь Spring Boot поддерживает создание CDS-совместимой структуры из fat JAR-файла с помощью режима "tools":

В случае реальных приложений пока не видел "значительного сокращения" :) Было прикольно увидеть чей то реальный опыт, где добились какого то значительного ускорения

Очень сомнительно, что в рантайме будет профит по времени запуска. На прогрев JVM больше влияют параметры типа TieredCompilation. А по памяти разницы вообще не должно быть. Мы же не грузим в память всю либу зависимостей, а только используемые классы в Metaspace по мере обращения к ним.
Практическая польза может быть в случае использования контейнеров. Если мы значительное число релизов едем не обновляя зависимости, то легко можно сформировать docker image с зависимостями и вкатывать следующим слоем application. Можно чуть-чуть сэкономить на времени сборки. А если артефакт должен отправлятьься в географически распределенные ДЦ, то и немало.

Многослойные Docker-образы умеет генерировать GoogleContainerTools/jib:

  1. Внешние релизные зависимости.

  2. Снапшотные зависимости.

  3. Модули внутри проекта.

  4. Ресурсы собираемого модуля.

  5. Классы собираемого модуля.

  6. Дополнительные настроенные директории.

В результате основной объём оседает в первом слое внешних завимостейи меняется очень редко, чаще меняется слой внутренних модулей и слои с содержимым собираемого модуля.
Причём jib подключается и Maven и к Gradle проектам буквально в пару кликов.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий