О чём курс

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

Цели

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

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

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

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

Для успешного прохождения курса участникам потребуется:
  • Опыт разработки на Java от 2 лет.
  • Базовое понимание принципов работы JVM.
  • Опыт работы с многопоточностью и знание основных структур данных в Java.
  • Желателен опыт работы с Spring Boot и Spring Data / JPA
  • Для кого

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

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

    JVM Performance
    Garbage Collection (GC)
    JIT Compilation
    Java Memory Management
    Benchmarking with JMH
    Unsafe API
    Memory Optimization
    High-Performance Java
    Queuing Theory
    JVM Configuration Flags

    Инструменты

    JMeter JMeter
    Java Java

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

    11.09.2025 - 30.09.2025

    18:00-21:00
    Дата и время:
    11.09.2025-30.09.2025
    18:00-21: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.10.2025 - 10.10.2025

    10:00-15:00
    Дата и время:
    01.10.2025-10.10.2025
    10:00-15:00

    Senior 40 часов

    75 500 ₽

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

    01.12.2025 - 12.12.2025

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

    Senior 40 часов

    75 500 ₽

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

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

    01 Методологический подход
  • Что стоит за понятием performance?
  • Базовые понятия
  • Психологические аспекты восприятия
  • Теория массового обслуживания (Queuing Theory)
  • Категории тестовых метрик
  • Влияющие факторы
  • Разновидности диагностических тестов
  • Рекомендуемые приемы

  • Практика: CPU cache-lines, избыточное логгирование, JMeter
    02 Сборщики мусора
  • Управление памятью
  • Основы сборки мусора
  • Настройка сборщиков мусора
  • Серийный сборщик мусора
  • Параллельный сборщик мусора
  • Garbage First GC
  • Shenandoah GC
  • ZGC
  • Epsilon GC
  • Сбор метрик СМ
  • Подбор сборщика мусора

  • Практика: переключение с одного GC на другой, JOL-анализ
    03 JIT-компилятор HotSpot
  • Компиляция Java-кода и исполнение программы
  • JIT-компиляция HotSpot
  • Оптимизации
  • Обобщение

  • Практика: работа с javap, работа с JITWatch
    04 Флаги JVM
  • Цели использования и категории флагов JVM
  • Распространенные флаги JVM
  • Флаги JVM, относящиеся к строке
  • Флаги JVM для JIT-компилятора
  • Общие флаги JVM для сборщиков мусора
  • Флаги JVM для журнала процесса сборки мусора
  • Сбор статистики по точкам безопасного состояния
  • Флаги JVM для настройки управления памятью
  • План настройки JVM

  • Практика: анализ размера пула стрингов, TLAB, safepoints
    05 Сопоставительный анализ (бенчмаркинг) Java с помощью JMH
  • Что такое бенчмаркинг?
  • Категории бенчмаркинга
  • Введение в JMH
  • API JMH
  • Рекомендации по работе с JMH
  • Обобщение

  • Практика: применение фреймворка JMH + домашнее задание
    06 Нединамическая память и эффективные структуры данных
  • Класс Unsafe: API низкого уровня
  • Демонстрации
  • Эффективные структуры данных
  • Foreign Function and Memory API

  • Практика: работа с Unsafe, FFMA
    07 Профилирование Java
  • Когда и как профилировать?
  • Сэмплинг и инструментация
  • JVisualVM и профилирования
  • Профилирование со Spring AOP
  • Профилирование в IDEA
  • Java Flight Recorder
  • Анализ JFR-логов с помощью JMC
  • Кастомизация логгирования в JFR
  • Использование Java агентов c JFR
  • Программный анализ логов JFR;
  • Сбор SQL- и REST-запросов в JFR
  • Инструменты управления производительностью приложений

  • Практика: профилирование с JMC/JFR, SpringAOP, JMX Agent
    08 Мониторинг и анализ данных кучи. Утечки памяти
  • Инструменты анализа памяти
  • Симптомы утечек памяти
  • Основные причины утечек памяти
  • Поиск и выявление утечек памяти
  • Мягкие, слабые и фантомн.ссылки
  • Анализа дампов кучи в IDEA
  • async-profiler для анализа памяти
  • JVisualVM и поиск утечек памяти
  • Анализ утечек памяти в JMC/JFR

  • Практика: выявление утечек через дамп кучи, JVisualVM, JMC/JFR
    09 Итого на курс 40 часов: теория – 22 ч ( 55%), практика – 18 ч ( 45%)

    75 500 ₽

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

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

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

    01 Улучшать производительность приложений за счет мониторинга и настройки JVM.
    02 Различать и правильно настраивать сборщики мусора под специфические сценарии.
    03 Понимать, каким образом и через какие параметры JIT-компиляция влияет на производительность.
    04 Работать с флагами JVM и прогнозировать их влияние на поведение приложения.
    05 Проводить бенчмаркинг с использованием JMH и интерпретировать получаемые результаты.
    06 Использовать эффективные структуры данных и работать с памятью вне кучи (off-heap).
    07 Выявлять, анализировать и устранять узкие места производительности.

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

    Николай

    Кузнецов Николай

    Специалист в области Java-разработки

    О тренере

    Николай начал заниматься IT еще со школьных времен, с удовольствием разбирался в программировании и пытался писать свои сайты и модификации к играм. Обучаясь в университете, он понял, насколько на самом деле любит эту специальность. Николай был готов проводить все свободное время за изучением тонкостей программирования.

    В какой-то момент желание изучать новое дополнилось еще одним желанием — делиться уже постигнутым. Тогда он осознал, что хочет преподавать. Но Николай не просто хотел быть преподавателем в вакууме; он хотел быть преподавателем, который реально работает с тем, чему учит. Так он пришел к решению совмещать практическую деятельность как программист-разработчик и преподаватель.

    В конечном итоге так и случилось: теперь Николай имеет полное право показывать другим прекрасный мир IT, ведь он сам побывал на многих его перелесках и с честью может занять почетное место гида.

    Проекты:

    • Архитектура 2.0 проекта «Столото» — переход от распределённого монолита к микросервисам по модели DDD.

    • База знаний Сбербанка Knowledge Assistant — разработка бэкенд-части системы взаимодействия операторов колл-центров с системой хранения знаний.

    • Печатный модуль для автоматизации печатных форм — разработка и поддержка.

    • Генератор новостных дайджестов для ООО «Медиа-Сервис» — разработка на PHP.

    • Разработка парсера для ООО «Медиа-Сервис» — разработка на PHP.

    • Серверная часть системы автоматизации документооборота групп для Учебно-курсового комбината «Мосгортранс» — разработка на yii2.

    Сертификаты:
    • 98-366:MTA: Networking Fundamentals
    • 98-388:MTA: Introduction to Programming using Java CertiportId:90057035

    75 500 ₽

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

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

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

    75 500 ₽

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

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

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

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

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

    JVA-074
    36 часов

    Java Advanced I: функциональное, асинхронное и реактивное программирование

    Погрузитесь в современные парадигмы Java: функциональное, асинхронное и реактивное программирование. Этот курс не только расширит ваше понимание Java, но и научит эффективно использовать современные подходы для создания масштабируемых и производительных приложений. Вы освоите ключевые концепции и инструменты, такие как NIO2, CompletableFurure, RxJava, Reactor, R2DBC, SSE, Spring Data reactive, WebClient, reactive WebSocket, RSocket, которые помогут вам оставаться на передовой IT-индустрии.

    от Senior

    69 900 ₽

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

    Наши клиенты

    Mail.ru
    Альфа-Банк, банковская группа
    Лаборатория Касперского
    Магнит, розничная сеть
    Спортмастер, сеть спортивных магазинов
    ПСБ
    Сбертех
    Дзен
    IT One
    Ростелеком
    Мегафон
    Nexign
    Ozon
    Декатлон
    X5 Group
    Технониколь
    Росатом
    Газпром
    Нлмк
    ВСК
    Синимекс

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

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