Training Agenda

JVM Performance
Optimization

The JVM is a sophisticated runtime with a garbage collector, JIT compiler, and threading model that most Java developers never fully understand. Performance problems on the JVM — memory leaks, GC pressure, lock contention, thread starvation — require a systematic approach: measuring before optimizing, reading GC logs, analyzing heap dumps, and profiling CPU usage. This training gives Java developers the mental model and practical tools to diagnose and fix JVM performance problems.

1–2 days On-site, remote, or hybrid Up to 20 participants German or English
What We Cover
Measure, diagnose, and fix — no guessing
Day 1

GC, Memory & Heap Analysis

  • JVM memory model: heap, metaspace, stack, off-heap
  • Garbage collection algorithms: G1GC, ZGC, Shenandoah — trade-offs and when to use each
  • GC log analysis: enabling with -Xlog:gc*, reading pause times and throughput
  • Object allocation profiling: finding allocation hot spots with async-profiler
  • Heap dump analysis: Eclipse MAT — retained heap, dominator tree, leak suspects
  • Common memory leaks: static collections, unclosed resources, ThreadLocal misuse
  • JVM flags: tuning heap size, GC algorithm selection, survivor ratios
  • Metaspace: when it grows unbounded and how to cap it
Day 2

CPU, Threading & Production Profiling

  • JIT compilation: tiered compilation, inlining, deoptimization
  • async-profiler: CPU flame graphs, wall-clock profiling, allocation profiling
  • Thread dump analysis: identifying deadlocks, lock contention, thread starvation
  • Virtual threads (Project Loom): when they help and when they don't
  • JMH: writing correct microbenchmarks — avoiding JIT pitfalls
  • JFR (Java Flight Recorder): continuous production profiling without overhead
  • JDK Mission Control: analyzing JFR recordings
  • Spring Boot specific: identifying slow startup, actuator metrics tuning
  • Connection pool tuning: HikariCP metrics and identifying pool exhaustion
Learning Outcomes
What your team walks away with

Java developers who can approach performance problems systematically — with real tooling, real measurements, and an understanding of what the JVM is actually doing.

Book the JVM Performance training

Hands-on profiling workshop — bring a real performance problem from your codebase and we work through it together.

Get in touch