Optymalizacja wydajności Java — JVM tuning, profilowanie, GC i diagnostyka problemów
Trzydniowe szkolenie z optymalizacji Java — architektura JVM, Garbage Collection (G1, ZGC, Shenandoah), profilowanie (JFR, async-profiler), memory leaks, thread dumps, JMH benchmarking, cache, monitoring produkcyjny.
„Aplikacja jest wolna” to nie diagnoza — to objaw. Trzeba wiedzieć GDZIE szukać
Programista mówi „jest wolne”. Ale co dokładnie? GC pauzuje na 200ms co 5 sekund (źle dobrany G1)? Memory leak powoduje Full GC co godzinę (ThreadLocal w thread pool)? Lock contention na synchronized blokuje 16 wątków (brak StampedLock)? Connection pool wyczerpany (HikariCP za mały)? N+1 queries do bazy? Bez profilowania (JFR, flame graphs) i diagnostyki (thread dumps, heap dumps) — zgadujesz. Z nimi — widzisz dokładnie gdzie tracisz czas.
Trzydniowe szkolenie: od architektury JVM (JIT, model pamięci, GC — G1/ZGC/Shenandoah, tuning, memory leaks), przez profilowanie (JFR, async-profiler, flame graphs, JMH benchmarking) i współbieżność (thread dumps, deadlocks, virtual threads), po cache (Caffeine, Redis), optymalizację I/O i baz danych (HikariCP, N+1), monitoring produkcyjny (Micrometer, Prometheus/Grafana, continuous profiling) i case study end-to-end.
Dla kogo jest to szkolenie?
Dla deweloperów i architektów Java, którzy chcą rozumieć wydajność. Szczególnie gdy:
- Twoja aplikacja Java „działa, ale jest wolna” — potrzebujesz narzędzi do znalezienia przyczyny (nie zgadywania)
- Konfigurujesz JVM w produkcji i nie wiesz, które parametry GC dobrać — G1 vs ZGC, -Xmx, GC logi
- Chcesz wdrożyć monitoring wydajnościowy (Prometheus/Grafana) i continuous profiling, zanim pojawi się problem
Trzy dni: od JVM internals do monitoringu produkcyjnego
Dzień 1: JVM i pamięć — architektura (JIT, tiered compilation), model pamięci (heap, metaspace), Garbage Collection (G1, ZGC, Shenandoah), tuning GC (parametry, logi), memory leaks (heap dumps, MAT), narzędzia diagnostyczne.
Dzień 2: Profilowanie i kod — CPU profiling (JFR, async-profiler, flame graphs), memory profiling (allocation, escape analysis), współbieżność (thread dumps, deadlocks, virtual threads), optymalizacja kodu (kolekcje, String, autoboxing), JMH benchmarking.
Dzień 3: Produkcja — cache (Caffeine, Ehcache, Redis), optymalizacja I/O (NIO, reactive), bazy danych (HikariCP, N+1, batch), monitoring (Micrometer, Prometheus/Grafana), continuous profiling (JFR w produkcji), case study diagnostyka end-to-end.
Z ponad 2500 szkoleń w ofercie i oceną 4.8/5, EITT jest zaufanym partnerem w rozwoju kompetencji. Skontaktuj się z nami — organizujemy szkolenia Java Performance zamknięte dla zespołów deweloperskich.
Korzyści
- Analizować architekturę JVM i dobierać parametry GC (G1, ZGC, Shenandoah) do wymagań aplikacji
- Profilować aplikacje Java — CPU (JFR, async-profiler, flame graphs) i pamięć (heap dumps, MAT)
- Identyfikować i naprawiać memory leaks — static collections, listeners, ThreadLocal, direct memory
- Diagnostykować problemy współbieżności — thread dumps, deadlocks, lock contention, virtual threads
- Pisać poprawne benchmarki z JMH i optymalizować krytyczne ścieżki kodu
- Wdrożyć monitoring wydajnościowy w produkcji — Micrometer, Prometheus/Grafana, continuous profiling
Dla kogo jest to szkolenie?
Wymagania wstępne
- Min. 2 lata doświadczenia w programowaniu Java (produkcyjne aplikacje)
- Znajomość wielowątkowości — Thread, ExecutorService, synchronized, volatile
- Podstawowa znajomość JVM — heap, stack, GC (na poziomie koncepcyjnym)
- Doświadczenie z frameworkiem (Spring Boot, Jakarta EE lub podobny)
Program szkolenia
Dzień 1: Architektura JVM, pamięć i Garbage Collection
- Architektura JVM — class loading, bytecode, JIT compilation (C1, C2, Graal), tiered compilation
- Model pamięci — heap (Young/Old Gen), metaspace, thread stacks, direct memory, off-heap
- Garbage Collection — algorytmy (Serial, Parallel, G1, ZGC, Shenandoah), GC roots, safe points
- Tuning GC — parametry (-Xmx, -XX:G1HeapRegionSize, -XX:MaxGCPauseMillis), logi GC, analiza
- Memory leaks — identyfikacja (heap dumps, MAT), typowe źródła (static collections, listeners, ThreadLocal)
- Narzędzia diagnostyczne — jcmd, jmap, jstack, JVisualVM, GC log analyzers (GCViewer, GCEasy)
Dzień 2: Profilowanie, współbieżność i optymalizacja kodu
- Profilowanie CPU — Java Flight Recorder (JFR), async-profiler, flame graphs, hot methods
- Profilowanie pamięci — allocation profiling, TLAB, object escape analysis
- Współbieżność — thread dumps analysis, deadlock detection, lock contention, virtual threads (Project Loom)
- Optymalizacja kodu — kolekcje (ArrayList vs LinkedList, HashMap sizing), String operations, autoboxing
- JMH (Java Microbenchmark Harness) — pisanie poprawnych benchmarków, pułapki mikrobenchmarkingu
- Wzorce wydajnościowe — object pooling, lazy initialization, immutability, flyweight
Dzień 3: Cache, I/O, bazy danych i monitoring produkcyjny
- Strategie cache'owania — Caffeine, Ehcache, Redis — dobór strategii (LRU, TTL, size-based)
- Optymalizacja I/O — NIO, zero-copy, buffer management, reactive streams (Project Reactor)
- Optymalizacja dostępu do baz danych — connection pooling (HikariCP), N+1, batch operations, query plans
- Monitoring produkcyjny — Micrometer, Prometheus/Grafana, JMX, alerty wydajnościowe
- Continuous profiling — JFR w produkcji, Pyroscope, porównywanie profili między wersjami
- Case study: diagnostyka problemu wydajnościowego — od alertu przez profilowanie do fix'a
Formy realizacji
Online
- Wygoda uczestnictwa z dowolnego miejsca
- Interaktywne sesje na żywo z trenerem
- Materiały dostępne przez 30 dni
- Brak kosztów dojazdu
Stacjonarnie
- Bezpośredni kontakt z trenerem i grupą
- Intensywne warsztaty praktyczne
- Networking z innymi uczestnikami
- Pełne skupienie na nauce
Najczęściej zadawane pytania
Czy to szkolenie z Javy czy z JVM?
Z obu — optymalizacja Java wymaga rozumienia JVM (GC, JIT, model pamięci) ORAZ kodu (kolekcje, współbieżność, I/O). Dzień 1 to JVM internals, dzień 2 to kod i profilowanie, dzień 3 to cache/bazy/monitoring. Bez JVM nie zrozumiesz dlaczego kod jest wolny.
Czy omawiamy konkretne wersje Javy?
Szkolenie oparte na Java 17/21 LTS — ale zasady (GC tuning, profilowanie, memory model) dotyczą każdej wersji. Omawiamy nowe featury (ZGC, virtual threads, JFR) dostępne od Java 11+.
Czy muszę mieć problemy wydajnościowe, żeby skorzystać?
Nie — szkolenie uczy JAK szukać problemów, zanim się pojawią. Monitoring, continuous profiling, JMH benchmarki to narzędzia prewencyjne. Lepiej wiedzieć jak profilować PRZED incydentem na produkcji.
W jakim formacie i jak długo trwa szkolenie?
Szkolenie trwa 3 dni (9:00-16:00), dostępne online i stacjonarnie. Warsztaty z profilowaniem, tuningiem GC i diagnostyką problemów.
Czy po szkoleniu otrzymam certyfikat?
Tak, każdy uczestnik otrzymuje imienny certyfikat ukończenia szkolenia wydany przez EITT.
Poproś o ofertę
Możliwości dofinansowania
Sprawdź możliwości dofinansowania dla Twojej firmy
Baza Usług Rozwojowych
Dofinansowanie do 80% dla MŚP ze środków EFS
Sprawdź dostępnośćKrajowy Fundusz Szkoleniowy
Dofinansowanie do 100% dla pracodawców
Dowiedz się więcejZaufali nam
Szkolimy zespoły największych polskich firm
Zainteresowany tym szkoleniem?
Skontaktuj się z nami - przygotujemy ofertę dopasowaną do potrzeb Twojego zespołu.