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

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

Описание

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

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

Модуль 1. Обзор тюнинга производительности [3 ч]
  • Общие практики;
  • Стратегии тюнинга производительности;
  • Метрики производительности;
  • Как повысить производительность?

Модуль 2. Алгоритмы GC. [3 ч]
  • Сборщик мусора G1;
  • ZGC / Shenandoah;
  • Замораживание безопасной точки (safepoint);
  • Клиентский и серверный режим;
  • Флаги GC JVM;
  • Флаги логгирования GC.

Модуль 3. JIT-компилятор HotSpot [2 ч]
  • JIT и AOT компиляция;
  • Слои компиляции;
  • Оптимизация кода;
  • Настройка компилятора;
  • Флаги компилятора JVM.

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

Модуль 5. Профилирование Java [4 ч]
  • Когда и как делать профилирование?;
  • Профилирование с помощью AOP;
  • Использование JProfiler;
  • Использование Java VisualVM;
  • Инструментирование и сэмплирование;
  • Java Flight Recorder;
  • Пользовательское профилирование.

Модуль 6. Тестирование производительности алгоритмов (benchmarking) с помощью JMH [3 ч]
  • Что такое benchmarking;
  • Знакомство с JMH;
  • API JMH;
  • Нетривиальные примеры;
  • Применение JMH на практике.

Модуль 7. Кэширование Java [2 ч]
  • Шаблоны кеширования;
  • Локальное и распределенное кеширование;
  • Сравнение API кешей;
  • Тесты кеширования.

Модуль 8. Мониторинг и настройка памяти [2 ч]
  • Инструменты анализа памяти;
  • Чрезмерный анализ ГХ;
  • Анализ утечек памяти.

Модуль 9. Структуры данных, эффективно использующие память [2 ч]
  • Коллекции вне кучи (off-heap collections);
  • MapDB;
  • Chronicle Map;
  • Буферы прямой записи NIO (direct buffers);
  • Файлы с отображением в память NIO (memory mapped files);
  • Netty ByteBuf.

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

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

Модуль 12. Обзор других подходов к повышению производительности [3 ч]
  • Параллельное программирование (пулы потоков, параллельные потоки, структура fork-join);
  • Реактивное программирование (Reactor, VertX);
  • Облачные вычисления (микросервисы, обмен сообщениями, Apache Spark, AWS Lambda, Google Cloud Functions);
  • Контрольные показатели и выводы.

Цели

После прохождения курса слушатели:

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

Курс содержит всеохватную информацию о том, как сделать программы на 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-поддержки систем всероссийского мониторинга школьников, разработка систем сбора и анализа данных.

Образование

1995–2000 – МГУ им. М.Ю. Ломоносова, факультет вычислительной математики и кибернетики, специальность "Прикладная математика".
Данный курс запланирован в городах: Онлайн
01.03.2021 - 11.03.2021
Время: 11:00-15:00
Локация: Онлайн
Длительность: 30 ч.
Тренер
Сонькин Владимир
Эксперт в области разработки ПО: Java и Web-технологии
45 000 руб.
12 600 грн.
В корзину

01.03.2021

01.03.2021 - 11.03.2021
Время: 11:00-15:00
Локация: Онлайн
Длительность: 30 ч.
Тренер
Сонькин Владимир
Эксперт в области разработки ПО: Java и Web-технологии
45 000 руб.
12 600 грн.
В корзину
Не подходят даты, время или хотите заказать корпоративное обучение для команды?
+
Предложите свой вариант
Онлайн 45 000 руб.
12 600 грн.

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

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

Имя *

Отчество

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

Компания *

Телефон *

Город *

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