Александр Ланцов - Прогревая 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
Александр, ты красавчик! Моё почтение🎓
Казалось бы, такая сложная и специфичная тема, а объяснили очень доходчиво.
Очень интересный доклад, спасибо!
Супер! Спасибо!
3:39 time-to-performance нельзя определить с какой-нибудь приемлемой точностью, по крайней мере по нарисованному графику. В таких случая обычно измеряют время выхода на 80-90% от максимальной скорости.
-XX:TieredStopAtLevel=1 часто для запуска юнит тестов советуют, на моей машине дает заметное на глаз снижение с 2с до 1с и некоторый комфорт от меньшего лага. знать бы как ее сделать дефолтной при запуске тестов через intellij...
А вас разве не случалось так, что класслоадер с его синхронной нативной загрузкой классов, значительно тормозит все, и что эти тесты по сравнению с работой загрузчика - не существенны?
Brian Goetz в рамках доклада по Project Leyden , в секции ответов на вопросы зала упоминает Project Crac ruclips.net/video/O1Oz2-AXKKM/видео.html
Он говорит, что Oracle не планирует включать его в язык (как планировали еще 3-4 года назад в своем докладе разработчики проекта) по той причине, что базовые предположения проекта могут привести к некорректно работающему коду при некоторых обстоятельствах и это не соответствует философии Java.