Мы используем файлы cookie для обеспечения работоспособности сервиса, улучшения навигации и маркетинговых активностей Yolonce. Нажимая "Согласен", вы соглашаетесь с нашей Политикой конфиденциальности

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

  Сложность

Пока неизвестно

  Длительность

40 ак.ч.

  Формат

онлайн

  Документ по выпуску

удостоверение о повышении квалификации государственного образца

Стоимость курса
69 900

Подробнее о курсе

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

Документ после выпуска

удостоверение о повышении квалификации государственного образца

Автор курса

Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Действует скидка 10% на обучение физических лиц.

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

  Модуль 1. Обзор тюнинга производительности (теория - 3 ч. + практика - 3 ч.)

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

  Модуль 2. Алгоритмы GC (теория - 6 ч.)

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

  Модуль 3. JIT-компилятор HotSpot (практика - 3 ч. + теория - 2 ч.)

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

  Модуль 4. Флаги JVM (теория - 3 ч.)

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

  Модуль 5. Тестирование производительности алгоритмов (benchmarking) с помощью JMH (практика - 2 ч.)

Что такое benchmarking; Знакомство с JMH; API JMH; Нетривиальные примеры; Применение JMH на практике. Домашняя работа (2 ч).

  Модуль 6. Использование памяти вне кучи (off-heap memory) и эффективные структуры данных (теория - 2 ч. + практика 2 ч.)

Что такое sun.misc.Unsafe; Методы Unsafe; Производительность нативной памяти; Создание структур данных в нативной памяти; Оценка производительности нативной памяти и сравнение с памятью в куче; Примитивные коллекции; Денормализация данных; Перспективный Foreign Memory Access API.

  Модуль 7. Сериализация и сетевая структура (теория - 3 ч.)

Сериализаторы JSON (GSON, Jackson); Двоичные сериализаторы (Protobuf, Jackson Smile, Kryo, FST, One NIO); Сравнение производительности различных сериализаторов; Производительность сети при подключении через различные протоколы: HTTP/REST, TCP, Async TCP, RSocket, Netty server/client.

  Модуль 8. Профилирование 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-запросов.

  Модуль 9. Мониторинг и анализ данных кучи. Утечки памяти (теория - 3 ч.)

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

  Модуль 10. Кэширование в приложениях Java (теория - 3 ч.)

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

Оставьте отзыв

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

обновлено: 24.11.2024

Похожие курсы

Курс «Java: Spring Framework»

Курс «Java: Spring Framework»

Junior Java Developer

Junior Java Developer

Основы разработки на Java

Основы разработки на Java

JAVA – получи Чёрный Пояс!

JAVA – получи Чёрный Пояс!

Stepik
 онлайн
 4-5 часов в неделю
  Перейти к курсу
Spring Framework — базовый уровень

Spring Framework — базовый уровень

Java Developer. Basic

Java Developer. Basic

Java-разработчик

Java-разработчик

Эффективность Java

Эффективность Java

Оставьте заявку

Наши консультанты ответят на все вопросы
И помогут в выборе

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных