Java Advanced II: высокопроизводительная Java

Курс посвящен повышению производительности Java-приложений: выявлению узких мест, подходам и практикам к повышению производительности, а также инструментам и библиотекам, позволяющим добиться высокой производительности.
Курс: JVA-076
Длительность: 40 ч.

Описание

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

Разбираемые темы

Модуль 1. Обзор тюнинга производительности – 5 ч.
  • Общие практики;
  • Стратегии тюнинга производительности;
  • Метрики производительности;
  • Как повысить производительность?
  • Инструменты для измерения производительности;
  • JMeter;
  • Нагрузочное тестирование с помощью JMeter;
  • Как повысить производительность с помощью архитектуры?
  • Лучшие практики для улучшения производительности кода.
Домашняя работа – 2 ч.

Модуль 2. Алгоритмы GC – 5 ч.
  • Использование памяти Java-объектами;
  • Общие подходы и алгоритмы сборщиков мусора;
  • Сборщик мусора Serial GC;
  • Сборщик мусора Parallel GC;
  • Сборщик мусора CMS;
  • Сборщик мусора G1;
  • Сборщик мусора Shenandoah;
  • Тюнинг сборщиков мусора;
  • Инструменты сбора и анализа метрик о сборке мусора;
  • Выбор оптимального сборщика мусора.

Модуль 3. JIT-компилятор HotSpot – 5 ч.
  • JIT компиляция;
  • Java байт-код;
  • Многослойная компиляция;
  • Кэш кода и его тюнинг;
  • Оптимизация кода;
  • Деоптимизация кода и когда она происходит;
  • Инструмент JITWatch для анализа результатов компиляции;
  • Виды оптимизаций;
  • Спекулятивные оптимизации;
  • Настройка компилятора;
  • AOT компиляция.
Домашняя работа – 2 ч.

Модуль 4. Флаги JVM – 3 ч.
  • Назначение и категории флагов JVM;
  • Общие флаги;
  • Флаги, связанные со строками;
  • Флаги управления памятью;
  • Safepoints и флаги, связанные с ними;
  • TLAB и флаги, связанные с ними;
  • План тюнинга JVM.

Модуль 5. Тестирование производительности алгоритмов (benchmarking) с помощью JMH – 2 ч.
  • Что такое benchmarking;
  • Знакомство с JMH;
  • API JMH;
  • Нетривиальные примеры;
  • Применение JMH на практике.
Домашняя работа – 2 ч.

Модуль 6. Использование памяти вне кучи (off-heap memory) – 3 ч.
  • Что такое sun.misc.Unsafe;
  • Методы Unsafe;
  • Производительность нативной памяти;
  • Создание структур данных в нативной памяти;
  • Оценка производительности нативной памяти и сравнение с памятью в куче;
  • Перспективный Foreign Memory Access API.

Модуль 7. Сериализация – 2 ч.
  • Сериализаторы JSON (GSON, Jackson);
  • Двоичные сериализаторы (Protobuf, Jackson Smile, Kryo, FST, One NIO);
  • Сравнение производительности различных сериализаторов.

Модуль 8. Профилирование Java – 4 ч.
  • Когда и как делать профилирование?
  • Сэмплирующие и инструментирующие профайлеры;
  • Использование 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.
Домашняя работа – 2 ч.

Модуль 9. Мониторинг и анализ данных кучи. Утечки памяти – 2 ч.
  • Инструменты для анализа данных в памяти;
  • Признаки утечек памяти;
  • Основные причины утечек памяти;
  • Поиск и обнаружение утечек памяти.

Модуль 10. GraalVM – 3 ч.
  • Экосистема GraalVM;
  • Среда выполнения GraalVM;
  • Polyglot API;
  • Компиляция и родной образ;
  • Контрольные показатели.

Модуль 11. Кэширование в приложениях Java – 3 ч.
  • Шаблоны кеширования;
  • Сравнение API кешей;
  • Кеширование запросов БД;
  • Кеширование HTTP запросов;
  • Основные метрики и настройки библиотек кеширования;
  • Сравнение популярных библиотек кеширования;
  • Кеширование сервисного уровня;
  • Кеширование Spring сервисов;
  • Приложения, использующие кеши разных уровней.

Модуль 12. Обзор других подходов к повышению производительности – 3 ч.
  • Параллельное программирование (пулы потоков, параллельные потоки, структура fork-join);
  • Асинхронное программирование;
  • Реактивное программирование (Reactor, VertX);
  • Оптимизация работы с базами данных;
  • Облачные вычисления (микросервисы, Spring Cloud);
  • Контрольные показатели и выводы.

Цели

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

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

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

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

Уверенное владение Java.
После окончания курса выдаётся сертификат на бланке Luxoft Training
Тренер в Онлайн
Сонькин Владимир Эксперт в области разработки ПО: Java и Web-технологии

Владимир имеет опыт в области разработки ПО уровня Enterprise для крупнейших зарубежных компаний с использованием технологии Java с 2000 г.

В компании Luxoft Владимир работает с 2006 г. За это время поучаствовал в нескольких проектах для крупной американской сельскохозяйственной компании и крупнейшего швейцарского банка. Интересуется технологиями создания масштабируемых, эргономичных web-интерфейсов, а также технологиями повышения производительности труда разработчиков.

Специализируется на использовании JavaScript и Java для создания мощных и современных web-приложений, создании современных эргономичных web-интерфейсов с низким временем отклика.

Профессиональный опыт

2006–2012 – Luxoft, ведущий разработчик, участие в проектах для крупного банка (разработка системы биржевой торговли; разработка системы развертывания ПО на серверах банка); участие в проекте для американской агропромышленной компании (разработка логистической системы учета и транспортировки сельхозпродукции).
2005–2006 – ITCI, ведущий разработчик, разработка системы управления процессом разработки ПО.
2002–2004 – Институт возрастной физиологии РАО, руководитель проекта IT-поддержки систем всероссийского мониторинга школьников, разработка систем сбора и анализа данных.

Проекты:

  • разработка системы биржевой торговли

  • разработка системы развертывания ПО на серверах банка

  • разработка логистической системы учета и транспортировки сельхозпродукции

  • разработка систем сбора и анализа данных

  • разработка систем электронной торговли

Раcписание курса в Цены
Данный курс запланирован в городах: Онлайн
09.02.2022 - 22.02.2022
Время: 10:00-14:00
Локация: Онлайн
Длительность: 40 ч.
Тренер
Сонькин Владимир
Эксперт в области разработки ПО: Java и Web-технологии
60 000 руб.
17 800 грн.

09.02.2022

09.02.2022 - 22.02.2022
Время: 10:00-14:00
Локация: Онлайн
Длительность: 40 ч.
Тренер
Сонькин Владимир
Эксперт в области разработки ПО: Java и Web-технологии
60 000 руб.
17 800 грн.
Не подходят даты, время или хотите заказать корпоративное обучение для команды?
+
Предложите свой вариант
Онлайн 60 000 руб.
17 800 грн.
Связанные курсы:
array (
  0 => 
  array (
    'NAME' => 'Java Advanced II: высокопроизводительная Java',
    'CODE' => 'JVA-076',
    'DATE' => '09.02.2022 - 22.02.2022',
    'DATE_BEGIN' => '09.02.2022',
    'EVENT_CITY' => 'Онлайн',
    'ID_TIME' => '115659',
  ),
)

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

Выбрать дату
Если Вам не подходят дата и место проведения тренинга, Вы можете оставить заявку на участие в нем в любом из городов, где представлены филиалы Luxoft Training. Для этого выберите вариант "Открытая дата" и укажите желаемое место проведения курса.
Желаемое место проведения курса
Вы можете оставить заявку на корпоративное обучение сотрудников Вашей компании в любом городе России или Украины, выбрав вариант "Другой город"
Фамилия *

Имя *

Отчество

Контактный E-mail *

Компания *

Телефон *

Город *

Комментарий
Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Luxoft Training – первый учебный центр в России, авторизованный IIBA. Действует скидка 10% на обучение физических лиц.
Остались вопросы?
Связаться с нами
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.