Јава Адванцед ИИ: Јава високих перформанси - курс 67 500 РУБ. из ИБС Тренинг центра, обука 40 часова, датум 29.01.2024.
мисцеланеа / / December 04, 2023
Павел ради у Лукофту од 2005. године. За то време учествовао је у бројним пројектима за водеће руске и стране компаније, као што су Боинг, Руска пошта, ДХЛ, МВидео. Тренутно игра улогу главног софтверског инжењера у пројекту подршке највећем малопродајном ланцу који продаје електронику и кућне апарате у Русији. Павелово главно интересовање је развој скалабилних Јава апликација и пружање техничких решења за побољшање перформанси и поузданости апликација.
Теме које се обрађују:
Модул 1. Преглед подешавања перформанси – 5 сати.
Опште праксе;
Стратегије подешавања перформанси;
Показатеље учинка;
Како побољшати продуктивност?
Алати за мерење перформанси;
ЈМетер;
Тестирање оптерећења помоћу ЈМетер-а;
Како побољшати продуктивност користећи архитектуру?
Најбоље праксе за побољшање перформанси кода.
Домаћи задатак – 2 часа.
Модул 2. ГЦ алгоритми – 5 сати.
Коришћење меморије Јава објеката;
Општи приступи и алгоритми сакупљача смећа;
Сериал ГЦ Гарбаге Цоллецтор;
Паралелни ГЦ сакупљач смећа;
ЦМС Гарбаге Цоллецтор;
Сакупљач смећа Г1;
Схенандоах Гарбаге Цоллецтор;
Подешавање сакупљача смећа;
Алати за прикупљање и анализу метрике сакупљања смећа;
Избор оптималног сакупљача смећа.
Модул 3. ХотСпот ЈИТ компајлер – 5 сати.
ЈИТ компилација;
Јава битецоде;
Вишеслојна компилација;
Кеш кода и његово подешавање;
Оптимизација кода;
Деоптимизација кода и када се дешава;
ЈИТВатцх алат за анализу резултата компилације;
Врсте оптимизација;
Спекулативне оптимизације;
Подешавања компајлера;
АОТ компилација.
Домаћи задатак – 2 часа.
Модул 4. ЈВМ заставице - 3 сата.
Намена и категорије ЈВМ заставица;
Опште заставе;
Заставице повезане са стринговима;
Заставице за управљање меморијом;
Сигурносне тачке и заставе повезане са њима;
ТЛАБ и заставе повезане са њима;
ЈВМ план подешавања.
Модул 5. Тестирање перформанси алгоритама (бенцхмаркинг) коришћењем ЈМХ – 2 сата.
Шта је бенцхмаркинг;
Увод у ЈМХ;
ЈМХ АПИ;
Нетривијални примери;
Примена ЈМХ у пракси.
Домаћи задатак – 2 часа.
Модул 6. Коришћење меморије ван гомиле (офф-хеап меморија) – 3 сата.
Шта је сунце.разно. Унсафе;
Небезбедне методе;
Перформансе матичне меморије;
Креирање структура података у матичној меморији;
Евалуација перформанси изворне меморије и поређење са меморијом гомиле;
Обећавајући АПИ за приступ страној меморији.
Модул 7. Серијализација – 2 сата.
ЈСОН серијализатори (ГСОН, Јацксон);
Бинарни серијализатори (Протобуф, Јацксон Смиле, Крио, ФСТ, Оне НИО);
Поређење перформанси различитих серијализатора.
Модул 8. Јава профилисање – 4 сата.
Када и како направити профилисање?
Профилери узорковања и инструментације;
Коришћење Јава ВисуалВМ за профилисање;
Профилисање са Спринг АОП;
Профилисање са ИДЕА и асинхронизованим профилером;
Јава Флигхт Рецордер;
Анализа дневника Јава Флигхт Рецордер користећи Миссион Цонрол;
Креирање и евидентирање прилагођених ЈФР догађаја;
Коришћење Јава агената за уграђивање кода и снимање било каквих догађаја у Јава Флигхт Рецордер;
Писање програма за аутоматску анализу ЈФР дневника;
Прикупљање и анализа СКЛ упита коришћењем ЈФР-а;
Прикупљање и анализа РЕСТ захтева коришћењем ЈФР-а.
Домаћи задатак – 2 часа.
Модул 9. Надгледање и анализа хеап података. Цурење меморије – 2 сата.
Алати за анализу података у меморији;
Знаци цурења меморије;
Главни узроци цурења меморије;
Претражите и откријте цурење меморије.
Модул 10. ГраалВМ – 3 сата
ГраалВМ екосистем;
ГраалВМ рунтиме;
Полиглот АПИ;
Компилација и изворна слика;
Бенцхмаркс.
Модул 11. Кеширање у Јава апликацијама - 3 сата.
Обрасци за кеширање;
Поређење АПИ-ја кеша;
Кеширање упита базе података;
Кеширање ХТТП захтева;
Основне метрике и подешавања библиотека за кеширање;
Поређење популарних библиотека за кеширање;
Кеширање нивоа услуге;
Цацхинг Спринг услуге;
Апликације које користе кеш меморије различитих нивоа.
Модул 12. Преглед других приступа побољшању продуктивности - 3 сата.
Паралелно програмирање (скупови нити, паралелне нити, форк-јоин структура);
Асинхроно програмирање;
Реактивно програмирање (Реацтор, ВертКс);
Оптимизација рада са базама података;
Цлоуд цомпутинг (микросервис, Спринг Цлоуд);
Мерила и закључци.