Przejdź do treści
Technologie / Programowanie

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?

Programiści Java z doświadczeniem produkcyjnym szukający wiedzy o wydajności i JVM internals
Architekci systemów odpowiedzialni za wydajność i skalowalność aplikacji Java
Inżynierowie DevOps/SRE monitorujący i tunningujący aplikacje JVM w produkcji
Liderzy zespołów Java odpowiedzialni za standardy wydajnościowe kodu
Specjaliści ds. wydajności (Performance Engineers) diagnostykujący problemy w aplikacjach enterprise
Deweloperzy Spring Boot/Jakarta EE optymalizujący czas startu i zużycie pamięci

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

01

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)
02

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
03

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.

Klaudia Janecka
Klaudia Janecka Opiekun szkolenia

Poproś o ofertę

Możliwości dofinansowania

Sprawdź możliwości dofinansowania dla Twojej firmy

Zaufali nam

Szkolimy zespoły największych polskich firm

ING Bank - klient EITT
mBank - klient EITT
PKO Bank Polski - klient EITT
PZU - klient EITT
Allianz - klient EITT
T-Mobile - klient EITT
KGHM - klient EITT
PGE - klient EITT
IKEA - klient EITT
InPost - klient EITT
Leroy Merlin - klient EITT
ZUS - klient EITT

Zainteresowany tym szkoleniem?

Skontaktuj się z nami - przygotujemy ofertę dopasowaną do potrzeb Twojego zespołu.

500+ ekspertów
2500+ szkoleń w ofercie
ISO 9001 certyfikat jakości
Zapytaj o szkolenie
Zadzwoń do nas +48 22 487 84 90