Александр Ланцов - Прогревая JVM: CRaC и другие фокусы

Поделиться
HTML-код
  • Опубликовано: 25 авг 2024
  • Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября (Санкт-Петербург + трансляция).
    Подробности и билеты: jrg.su/Ypf1HW
    - -
    Из-за наличия JIT-компиляции в «классических» JVM пиковая производительность приложений достигается не мгновенно при запуске, а в продолжительном процессе сбора профиля текущего исполнения и компиляции кода, который может занимать секунды, минуты, а иногда и часы. В некоторых задачах (например, алгоритмической торговли на бирже), долгое время старта и прогрева приложения может быть критическим фактором, который нужно минимизировать.
    Для решения этой проблемы существует несколько подходов: ручной прогрев, AOT-компиляция, переиспользование существующего JIT-профиля, новая технология Coordinated Restore at Checkpoint.
    В докладе рассматриваем проблематику прогрева JVM-приложений и способы мониторинга JIT-компиляций на конкретных примерах. Разбираем существующие подходы, достоинства, недостатки и особенности каждого из методов.
    Этот доклад будет интересен всем, кто интересуется быстрым запуском и прогревом JVM-приложений.
    Скачать презентацию с сайта Joker - cutt.ly/JwVVRs0p
    #java #jvm

Комментарии • 8

  • @Rostik13.96
    @Rostik13.96 5 месяцев назад

    Александр, ты красавчик! Моё почтение🎓

  • @laranMQR
    @laranMQR 6 месяцев назад +1

    Казалось бы, такая сложная и специфичная тема, а объяснили очень доходчиво.

  • @alexeylugovskoy9487
    @alexeylugovskoy9487 6 месяцев назад +1

    Очень интересный доклад, спасибо!

  • @devprototype
    @devprototype 6 месяцев назад +2

    Супер! Спасибо!

  • @andreynakin2016
    @andreynakin2016 6 месяцев назад +1

    3:39 time-to-performance нельзя определить с какой-нибудь приемлемой точностью, по крайней мере по нарисованному графику. В таких случая обычно измеряют время выхода на 80-90% от максимальной скорости.

  • @user-md2fk3jj1e
    @user-md2fk3jj1e 6 месяцев назад +1

    -XX:TieredStopAtLevel=1 часто для запуска юнит тестов советуют, на моей машине дает заметное на глаз снижение с 2с до 1с и некоторый комфорт от меньшего лага. знать бы как ее сделать дефолтной при запуске тестов через intellij...

  • @qwfpgjful
    @qwfpgjful 6 месяцев назад

    А вас разве не случалось так, что класслоадер с его синхронной нативной загрузкой классов, значительно тормозит все, и что эти тесты по сравнению с работой загрузчика - не существенны?

  • @ITV-ITV-
    @ITV-ITV- 6 месяцев назад

    Brian Goetz в рамках доклада по Project Leyden , в секции ответов на вопросы зала упоминает Project Crac ruclips.net/video/O1Oz2-AXKKM/видео.html
    Он говорит, что Oracle не планирует включать его в язык (как планировали еще 3-4 года назад в своем докладе разработчики проекта) по той причине, что базовые предположения проекта могут привести к некорректно работающему коду при некоторых обстоятельствах и это не соответствует философии Java.