О чём курс

Одно Java-приложение может работать в разы медленнее другого при идентичной бизнес-логике — здесь разбирают, как находить и устранять скрытые узкие места, из-за которых теряется производительность. Вы научитесь анализировать работу Garbage Collector, настраивать JIT-компилятор HotSpot и оптимизировать использование памяти, включая работу с off-heap структурами.

Внутри курса разбирают:

  • Тюнинг JVM через профилировщики: от визуального анализа в Java VisualVM до глубокого погружения в Java Flight Recorder.
  • Бенчмаркинг кода: как использовать JMH для точных замеров скорости работы алгоритмов.
  • Оптимизацию сериализации: сравнение производительности JSON-библиотек (Jackson, GSON) и бинарных форматов (Protobuf, Kryo).
  • Управление нативной памятью: создание структур данных вне кучи с использованием Unsafe и Foreign Memory Access API.

Программа ориентирована на разработчиков, которые хотят понимать, что происходит «под капотом» виртуальной машины Java, и уметь доводить приложения до высокой эффективности.

Программа обучения

  • Модуль 1. Обзор тюнинга производительности
    • Общие практики
    • Стратегии тюнинга производительности
    • Метрики производительности
    • Как повысить производительность?
    • Инструменты для измерения производительности
    • JMeter
    • Нагрузочное тестирование с помощью JMeter
    • Как повысить производительность с помощью архитектуры?
    • Лучшие практики для улучшения производительности кода
    • Домашняя работа
  • Модуль 2. Алгоритмы GC
    • Использование памяти Java-объектами
    • Общие подходы и алгоритмы сборщиков мусора
    • Сборщик мусора Serial GC
    • Сборщик мусора Parallel GC
    • Сборщик мусора CMS
    • Сборщик мусора G1
    • Сборщик мусора Shenandoah
    • Тюнинг сборщиков мусора
    • Инструменты сбора и анализа метрик о сборке мусора
    • Выбор оптимального сборщика мусора
  • Модуль 3. JIT-компилятор HotSpot
    • JIT компиляция
    • Java байт-код
    • Многослойная компиляция
    • Кэш кода и его тюнинг
    • Оптимизация кода
    • Деоптимизация кода и когда она происходит
    • Инструмент JITWatch для анализа результатов компиляции
    • Виды оптимизаций
    • Спекулятивные оптимизации
    • Настройка компилятора
    • AOT компиляция
    • Домашняя работа
  • Модуль 4. Флаги JVM
    • Назначение и категории флагов JVM
    • Общие флаги
    • Флаги, связанные со строками
    • Флаги управления памятью
    • Safepoints и флаги, связанные с ними
    • TLAB и флаги, связанные с ними
    • План тюнинга JVM
  • Модуль 5. Тестирование производительности алгоритмов (benchmarking) с помощью JMH
    • Что такое benchmarking
    • Знакомство с JMH
    • API JMH
    • Нетривиальные примеры
    • Применение JMH на практике
    • Домашняя работа
  • Модуль 6. Использование памяти вне кучи (off-heap memory)
    • Что такое sun.misc.Unsafe
    • Методы Unsafe
    • Производительность нативной памяти
    • Создание структур данных в нативной памяти
    • Оценка производительности нативной памяти и сравнение с памятью в куче
    • Перспективный Foreign Memory Access API
  • Модуль 7. Сериализация
    • Сериализаторы JSON (GSON, Jackson)
    • Двоичные сериализаторы (Protobuf, Jackson Smile, Kryo, FST, One NIO)
    • Сравнение производительности различных сериализаторов
  • Модуль 8. Профилирование Java
    • Когда и как делать профилирование?
    • Сэмплирующие и инструментирующие профайлеры
    • Использование Java VisualVM для профилирования
    • Профилирование с помощью Spring AOP
    • Профилирование с помощью IDEA и async profiler
    • Java Flight Recorder
    • Анализ логов Java Flight Recorder с помощью Mission Conrol
    • Создание и логгирование кастомных событий JFR
    • Использование Java агентов для внедрения в код и записи любых событий в Java Flight Recorder
    • Написание программ для автоматического анализа логов JFR
    • Сбор и анализ SQL запросов с помощью JFR
    • Сбор и анализ REST запросов с JFR
Складчина создана 16 октября 2021 г. · описание обновлено 3 мая 2026 г.

Другие материалы автора 1

ВС Владимир Сонькин Все материалы
7 056 ₽ 60 000 ₽