Java Advanced II: высокопроизводительная Java
Пока неизвестно
40 ак.ч.
онлайн
удостоверение о повышении квалификации государственного образца
69 900 ₽
Подробнее о курсе
Документ после выпуска
удостоверение о повышении квалификации государственного образца
Программа курса
Модуль 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; Приложения, использующие кэши разных уровней.
Оставьте отзыв
Похожие курсы
Оставьте заявку
Наши консультанты ответят на все вопросы
И помогут в выборе
Нажимая кнопку, вы даете согласие на обработку персональных данных