Wydajność aplikacji na platformie Java - szkolenie 4 dniowe
Wydajność aplikacji na platformie Java - szkolenie 4 dniowe
Informacje podstawowe
Informacje podstawowe
- KategoriaInformatyka i telekomunikacja / Programowanie
- Grupa docelowa usługi
Szkolenie jest dedykowane dla osób, które chcą poznać możliwości badania wydajności i strojenia aplikacji działających na Wirtualnej Maszynie Javy oraz zasad programowania w języku Java i aspektów dot. architektury wdrażanej aplikacji, które pozwolą na osiągnięcie wysokiej wydajności docelowego rozwiązania.
- Minimalna liczba uczestników4
- Maksymalna liczba uczestników8
- Data zakończenia rekrutacji17-11-2025
- Forma prowadzenia usługizdalna w czasie rzeczywistym
- Liczba godzin usługi32
- Podstawa uzyskania wpisu do BURCertyfikat systemu zarządzania jakością wg. ISO 9001:2015 (PN-EN ISO 9001:2015) - w zakresie usług szkoleniowych
Cel
Cel
Cel edukacyjny
Uczestnik potrafi testować wydajność i stroić aplikacje opierające się na Wirtualnej Maszynie Javy.Tworzy (pisze) wydajny kod w języku Java z uwzględnieniem nowości wprowadzanych do języka przez ostatnie lata
Zna niuanse języka Java mające wpływ na optymalizacje działania aplikacji, efektem jest stworzenie wysokowydajnej aplikacji
Przetestował wpływ zastosowanych rozwiązań na wydajność napisanego kodu zarówno na poziomie programistycznym, jak i architektonicznym
Efekty uczenia się oraz kryteria weryfikacji ich osiągnięcia i Metody walidacji
Efekty uczenia się | Kryteria weryfikacji | Metoda walidacji |
---|---|---|
Efekty uczenia się Uczestnik wykorzystuje techniki i używa narzędzi pozwalających na osiągnięcie zakładanych celów wydajnościowych, stosuje nowości programistyczne, wprowadzone w ostatnim czasie do Wirtualnej Maszyny Javy. Bada wydajność, stroi i programuje wysokowydajne aplikacje w języku Java. | Kryteria weryfikacji Uczestnik stworzył realny projekt, który można wygodnie udostępnić, skomentować i zaprezentować. | Metoda walidacji Obserwacja w warunkach rzeczywistych |
Metoda walidacji Test teoretyczny |
Kwalifikacje i kompetencje
Kwalifikacje
Kompetencje
Usługa prowadzi do nabycia kompetencji.Warunki uznania kompetencji
Program
Program
Testowanie wydajności
- Poziomy testów wydajnościowych
- Problemy związane z poprawnym testowaniem wydajnościowym aplikacji
- Zasady tworzenia i utrzymywania testów wydajnościowych
- Testy białej skrzynki - Java Microbenchmark Harness
- Testy czarnej skrzynki - Gatling
- Interpretacja wyników testów
Narzędzia profilujące
- Podstawowe narzędzia JDK: jps / jinfo / jmap / jconsole / jstack / jcmd
- Java Flight Recorder
- Intellij Debugger & (Async) Profiler
- VisualVM / Java Mission Control
- Zbieranie metryk z produkcyjnie działających aplikacji
Just-In-Time Compiler
- Zasady działania JIT i wpływ na wydajność
- Przydatne flagi do strojenia JIT
- OpenJ9 - alternatywny JVM z JIT Server
Porządkowanie pamięci w Wirtualnej Maszynie Javy
- Podstawy działania mechanizmu odśmiecania pamięci
- Porównanie dostępnych GC w najnowszych JVM: Serial, Parallel, G1GC, ZGC, Shenandoah, Epsilon
- Heap Memory vs No-Heap Memory
- Powody pojawienia się błędu związanego z brakiem pamięci
- Wyciek vs Brak pamięci
- Kompresja wskaźników na obiekty
- Application Class-Data Sharing - mechanizm Class Data Sharing
- Przydatne flagi do strojenia Garbage Collectora
Typy podstawowe w Javie i ich wpływ na wydajność
- Typy prymitywne vs typy opakowane
- Integer cache
- Pule ciągów znaków / String.intern
- Typowe błędy w operacjach na Stringach
- Deduplikacja Stringów / Compact Strings
Metody programistyczne poprawiające wydajność aplikacji
- Problemy związane z metodami equals, hashCode, toString
- Wyjątki vs programowanie defensywne
- Wydajne używanie pakietu NIO
- Leniwe przetwarzanie
- Cache / Memoization
- Pule obiektów
- Wzorce projektowe wspomagające pisanie wydajnych aplikacji
- Wołanie natywnych aplikacji z wykorzystaniem Process API oraz Foreign Linker API
Wydajność w aspekcie wielowątkowości
- Java Memory Model
- Cechy dostępnych pul wątków
- Unikanie synchronizacji danych
- Synchronizacja zmiennych w przetwarzaniu wielowątkowym (typy atomowe, LongAdder)
- Stosowanie złożonych obiektów synchronizujących z pakietu java.util.concurrent
- Dobór kolekcji wielowątkowych do problemu
- Pułapki w użyciu java.util.Random
- Vector API jako alternatywa dla bezpośredniego paralelizmu
- Wirtualne wątki i Structured Concurrency
- Realizacja złożonych obliczeń na kartach graficznych z wykorzystaniem TornadoVM
Aspekty architektury w wydajności aplikacji
- Wpływ systemu operacyjnego na JVM i dobór odpowiedniego rozwiązania na przykładzie Alpaquita Linux
- Mikroserwisowość i konteneryzacja JVM
- JPMS i budowanie własnych obrazych JVM
- Optymalizacja serializacji obiektów
- Asynchroniczna komunikacja między serwisami
- Zagadnienia wydajnościowe w warstwie persystencji
Platforma GraalVM / Coordinated Restore at Checkpoint (CRaC)
- Problemy we wdrażaniu aplikacji opartych na Wirutalnej Maszynie Javy
- Omówienie platformy GraalVM
- Budowanie natywnych aplikacji Java w GraalVM
- Polyglot API (inne języki programowania w ramach JVM)
- Coordinated Restore at Checkpoint (CRaC) - alternatywa dla natywnej aplikacji
Walidacja
Harmonogram
Harmonogram
Przedmiot / temat zajęć | Prowadzący | Data realizacji zajęć | Godzina rozpoczęcia | Godzina zakończenia | Liczba godzin |
---|---|---|---|---|---|
Przedmiot / temat zajęć 1 z 4 Testowanie wydajności, Narzędzia profilujące | Prowadzący Mateusz Kamiński | Data realizacji zajęć 24-11-2025 | Godzina rozpoczęcia 09:00 | Godzina zakończenia 17:00 | Liczba godzin 08:00 |
Przedmiot / temat zajęć 2 z 4 Just-In-Time Compiler, Porządkowanie pamięci w Wirtualnej Maszynie Javy | Prowadzący Mateusz Kamiński | Data realizacji zajęć 25-11-2025 | Godzina rozpoczęcia 09:00 | Godzina zakończenia 17:00 | Liczba godzin 08:00 |
Przedmiot / temat zajęć 3 z 4 Typy podstawowe w Javie i ich wpływ na wydajność, Metody programistyczne poprawiające wydajność aplikacji | Prowadzący Mateusz Kamiński | Data realizacji zajęć 26-11-2025 | Godzina rozpoczęcia 09:00 | Godzina zakończenia 17:00 | Liczba godzin 08:00 |
Przedmiot / temat zajęć 4 z 4 Wydajność w aspekcie wielowątkowości, Aspekty architektury w wydajności aplikacji, Platforma GraalVM / Coordinated Restore at Checkpoint (CRaC) | Prowadzący Mateusz Kamiński | Data realizacji zajęć 27-11-2025 | Godzina rozpoczęcia 09:00 | Godzina zakończenia 17:00 | Liczba godzin 08:00 |
Cena
Cena
Cennik
Rodzaj ceny | Cena |
---|---|
Rodzaj ceny Koszt przypadający na 1 uczestnika brutto | Cena 4 366,50 PLN |
Rodzaj ceny Koszt przypadający na 1 uczestnika netto | Cena 3 550,00 PLN |
Rodzaj ceny Koszt osobogodziny brutto | Cena 136,45 PLN |
Rodzaj ceny Koszt osobogodziny netto | Cena 110,94 PLN |
Prowadzący
Prowadzący
Mateusz Kamiński
Od 5 lat lider zespołu programistycznego Sages.
Od 9 lat mentor w zespołach programistycznych, doświadczony wykładowca bootcampu z Java, aktualnie wykładowca zajęć projektowych z programowania aplikacji na Politechnice Warszawskiej.
Informacje dodatkowe
Informacje dodatkowe
Informacje o materiałach dla uczestników usługi
materiały szkoleniowe - część teoretyczna szkolenia, slajdy - zostaną udostępnione uczestnikom na szkoleniu w formie pdf.
uczestnik otrzyma certyfikat uczestnictwa z opisem nabytych umiejętności
Warunki uczestnictwa
Podstawowa umiejętność programowania w języku Java
Informacje dodatkowe
Szkolenie będzie prowadzone zdalnie, w czasie rzeczywistym, na żywo, z trenerem, możliwością zadawania pytań.
Szkolenie składa się w 30% z wykładu teoretycznego, w 70% z warsztatów i samodzielnej pracy programistycznej.
Podczas szkolenia uczestnicy mają dostęp do czatu z trenerem, współdzielą ekran podczas części warsztatowej, żeby zaprezentować postęp swojej pracy.
Walidacja będzie bazowała na ocenie efektów samodzielnej pracy uczestników, będzie sprawdzała nabytą wiedzę teoretyczną i umiejętność jej zastosowania w praktyce.
Warunki techniczne
Warunki techniczne
szkolenie na platformie zoom, wymagane:
stabilne połączenie internetowe (zalecane min. 10Mbit/s download i 1Mbit/s upload)
przeglądarka internetowa Chrome
zainstalowana aplikacja Zoom App
dobrej jakości słuchawki oraz mikrofon (opcjonalnie) kamera internetowa
link do szkolenia zostanie przesłany uczestnikom przed szkoleniem i będzie aktywny do końca szkolenia.