🚀 Двоичная Java: CDS, CRaC и AOT для ускорения запуска и прогрева JVM

🔍 Миф №1 о Java:

> «Java — это медленно»

Да, лет 20 назад это могло быть правдой. Но JVM с тех пор прошла огромный путь.

В классическом варианте Java-байткод исполняется через интерпретатор — по сути, цикл со switch-case, где инструкции переводятся на лету. Это действительно не быстро.

📈 Первый прорыв — JIT-компиляция (Just-in-Time): часто вызываемые методы начали компилироваться в машинный код во время выполнения. Это дало солидный прирост производительности.

💡 Но на этом оптимизации не остановились. Сегодня в арсенале JVM есть:

  • CDS (Class Data Sharing) — сериализация внутренних представлений классов, чтобы ускорить их загрузку из архива.

  • CRaC (Coordinated Restore at Checkpoint) — снятие снепшота уже «прогретой» JVM, чтобы потом мгновенно восстановить её в этом состоянии.

  • AOT (Ahead-of-Time compilation) — компиляция Java-приложения в нативный бинарник заранее, без участия JIT в рантайме.

🧪 А на подходе ещё Project Leyden, который обещает сделать JVM по-настоящему предсказуемой и «запускаемой с кнопки» — благодаря condensers и training runs.

🎤 Обо всём этом я рассказывал на HighLoad++ 2024. Видео пока не выложили, но мои друзья из Axiom JDK подготовили текстовую версию доклада 📄

📎 Читайте: «Двоичная Java: CDS, CRaC и AOT для ускорения запуска и прогрева JVM»

🚀 Двоичная Java: CDS, CRaC и AOT для ускорения запуска и прогрева JVM
🔍 Миф №1 о Java:

«Java — это медленно»

Да, лет 20 назад это могло быть правдой. Но JVM с тех пор прошла огромный путь | Сетка — социальная сеть от hh.ru
repost

45

input message

напишите коммент

еще контент в этом сообществе

еще контент в этом соообществе

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь