О чём курс

Курс посвящен повышению производительности Java-приложений. В курсе рассматриваются различные подходы к профилированию, поиску узких мест, тюнингу виртуальной машины, настройки флагов JVM, библиотеки сериализации и кэширования, хранение данных вне кучи, бенчмаркинг, мониторинг и настройка памяти, и другие темы.

Цели

Познакомить слушателей с современными подходами к повышению производительности Java приложений.

Целевая аудитория

Разработчики Java, архитекторы Java.

Предварительная подготовка

Уверенное владение Java.

Для кого

Разработчик Разработчик

Улучшаемые навыки

Оптимизация производительности приложений
Параллелизм и многопоточность
Использование оптимизированных коллекций и структур данных
Тестирование производительности и нагрузочное тестирование

Расписание курсов

30.06.2025 - 11.07.2025

10:00-14:00
Дата и время:
30.06.2025-11.07.2025
10:00-14:00

Senior 40 часов

75 500 ₽

67 950 ₽ — для физ. лиц

22.09.2025 - 30.09.2025

10:00-16:00
Дата и время:
22.09.2025-30.09.2025
10:00-16:00

Senior 40 часов

75 500 ₽

67 950 ₽ — для физ. лиц

01.12.2025 - 11.12.2025

10:00-14:00
Дата и время:
01.12.2025-11.12.2025
10:00-14:00

Senior 40 часов

75 500 ₽

67 950 ₽ — для физ. лиц

Программа курса

01 Обзор тюнинга производительности (теория - 3 ч. + практика - 3 ч.)
  • Общие практики;
  • Стратегии тюнинга производительности;
  • Метрики производительности;
  • Как повысить производительность?
  • Инструменты для измерения производительности;
  • JMeter;
  • Нагрузочное тестирование с помощью JMeter;
  • Как повысить производительность с помощью архитектуры?
  • Повышение производительности с помощью архитектуры: потоки, очереди, микросервисы, облака;
  • Лучшие практики для улучшения производительности кода.

02 Алгоритмы GC (теория - 6 ч.)
  • Использование памяти Java-объектами;
  • Общие подходы и алгоритмы сборщиков мусора;
  • Сборщик мусора Serial GC;
  • Сборщик мусора Parallel GC;
  • Сборщик мусора CMS;
  • Сборщик мусора G1;
  • Сборщик мусора Shenandoah;
  • Тюнинг сборщиков мусора;
  • Инструменты сбора и анализа метрик о сборке мусора;
  • Выбор оптимального сборщика мусора.
03 JIT-компилятор HotSpot (практика - 3 ч. + теория - 2 ч.)
  • JIT компиляция;
  • Java байт-код;
  • Многослойная компиляция;
  • Кэш кода и его тюнинг;
  • Оптимизация кода;
  • Деоптимизация кода и когда она происходит;
  • Инструмент JITWatch для анализа результатов компиляции;
  • Виды оптимизаций;
  • Спекулятивные оптимизации;
  • Настройка компилятора;
  • AOT компиляция;
  • GraalVM.

04 Флаги JVM (теория - 3 ч.)
  • Назначение и категории флагов JVM;
  • Общие флаги;
  • Флаги, связанные со строками;
  • Флаги управления памятью;
  • Safepoints и флаги, связанные с ними;
  • TLAB и флаги, связанные с ними;
  • План тюнинга JVM.
05 Тестирование производительности алгоритмов (benchmarking) с помощью JMH (практика - 2 ч.)
  • Что такое benchmarking;
  • Знакомство с JMH;
  • API JMH;
  • Нетривиальные примеры;
  • Применение JMH на практике.
  • Домашняя работа (2 ч).
06 Использование памяти вне кучи (off-heap memory) и эффективные структуры данных (теория - 2 ч. + практика 2 ч.)
  • Что такое sun.misc.Unsafe;
  • Методы Unsafe;
  • Производительность нативной памяти;
  • Создание структур данных в нативной памяти;
  • Оценка производительности нативной памяти и сравнение с памятью в куче;
  • Примитивные коллекции;
  • Денормализация данных;
  • Перспективный Foreign Memory Access API.

07 Сериализация и сетевая структура (теория - 3 ч.)
  • Сериализаторы JSON (GSON, Jackson);
  • Двоичные сериализаторы (Protobuf, Jackson Smile, Kryo, FST, One NIO);
  • Сравнение производительности различных сериализаторов;
  • Производительность сети при подключении через различные протоколы: HTTP/REST, TCP, Async TCP, RSocket, Netty server/client.
08 Профилирование Java (теория - 3 ч. + практика - 2 ч.)
  • Когда и как делать профилирование?
  • Сэмплирующие и инструментирующие профайлеры;
  • Использование 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;
  • Средства управления производительностью приложений;
  • Использование Glowroot для профилирования и анализа SQL-запросов и REST-запросов.

09 Мониторинг и анализ данных кучи. Утечки памяти (теория - 3 ч.)
  • Инструменты для анализа динамической памяти;
  • Признаки утечек памяти;
  • Основные причины утечек памяти;
  • Поиск и обнаружение утечек памяти;
  • Слабые и фантомные ссылки;
  • Инструменты IDEA для анализа дампов кучи;
  • Асинхронный профайлер для анализа потребления памяти;
  • Использование числа генераций профайлера VisualVM для обнаружения утечек памяти;
  • Использование MissionControl/JFR для автоматического анализа утечек памяти;
  • Анализатор памяти Eclipse – анализ знаменателей и кучи.

10 Кэширование в приложениях Java (теория - 3 ч.)
  • Шаблоны кеширования;
  • Кеширование HTTP запросов;
  • Конфигурация библиотек кеширования;
  • Популярные библиотеки кэширования: EhCache, Caffeine;
  • Кеширование сервисного уровня;
  • Кеширование Spring сервисов;
  • Буферизация ввода/вывода;
  • Кэш процессора и непрерывная область памяти;
  • Кэширование JPA/Hibernate;
  • Приложения, использующие кэши разных уровней.

75 500 ₽

67 950 ₽ — для физ. лиц

Записаться на курс

Чему вы научитесь

01 Научитесь анализировать производительность Java-приложений с использованием инструментов профилирования
02 Научитесь создавать высокопроизводительные многопоточные приложения
03 Освоите выбор и использование оптимизированных коллекций и структур данных в Java
04 Научитесь применять методы тестирования производительности и нагрузочного тестирования с использованием инструментов

Курс проводят

Игорь

Судакевич Игорь

Эксперт в области разработки ПО (Java).

Senior

Курсы и сертификаты

75 500 ₽

67 950 ₽ — для физ. лиц

Записаться на курс

Записаться на курс

75 500 ₽

67 950 ₽ — для физ. лиц

Юр. лицо — 75 500 ₽
Физ. лицо — 67 950 ₽
30.06.2025, Онлайн
30.06.2025, Онлайн
22.09.2025, Онлайн
01.12.2025, Онлайн
Открытая дата

Отзывы о курсе

Повысьте квалификацию И получите диплом
Отзывы учеников
Хорошие впечатления. Дан большой объем знаний. Повторение пройденного материала на занятиях полезно. Самое полезное для меня: сравнение GC и советы по настройке JDK. Единственное, хотелось бы добавить дополнительные сравнительные тесты между JIT (C2) и Graal. А так все замечательно!
Теоретические материалы – отличные. Понравилась демонстрация того, как нужно использовать инструменты для сравнительного анализа, интересные факты о внутренностях jvm и обзор полезных инструментов. Этот тренинг помог мне лучше понять, что нужно делать для устранения проблем с производительностью.
Тренинг оказался для меня крайне интересным. Все части курса были очень информативны и полезны с точки зрения их дальнейшего использования в профессиональной деятельности.

    Связанные курсы

    Наши ученики работают в:

    Наши клиенты

    Mail.ru
    Альфа-Банк, банковская группа
    Лаборатория Касперского
    Магнит, розничная сеть
    Спортмастер, сеть спортивных магазинов

    Не нашли, что искали? — Просто напишите, и мы поможем

    Корпоративное обучение Оценка персонала Сертификация О нас Стань тренером Блог
    Пользователь только что записался на курс ""
    Спасибо!
    Форма отправлена успешно.