Memory Effecient Java (4hrs)

  • Objective: Learn how to quickly diagnose and solve memory leaks in Java heap
  • Topics:
    • Introduction
    • Memory to CPU and back
    • Allocations in Java Heap
    • High Memory Churn
      • Introduction
      • Monitoring
      • Tooling
      • Resolving high allocations by example
      • Problems with profilers
    • Live Set Size Reduction
      • Introduction
      • Tour of tooling

Solving Java Memory Leaks (4hrs)

  • Objective: Learn how to quickly diagnose, characterize and solve memory inefficiency in Java applications.
  • Topics:
    • Introduction
    • Managed and Unmanaged Memory
    • Java Heap
    • Monitoring Java Heap
    • Allocations in Java Heap
    • Garbage Collection Overview
    • Diagnostic - Generational counts
    • Diagnostic - Dominators
    • Other Leaks (Classloaders/Metaspace)

Garbage Collection Tuning (8hrs)

  • Objective: Learn the basics of Garbage Collection and how to tune GC in Java
  • Topics:
    • Introduction
    • OpenJDK Collectors
    • Java Heap Structure
      • Allocations in Java Heap
    • Basic GC Cycle
    • Garbage Collectors Phases
      • Serial/Parallel/CMS
      • G1GC
      • ZGC
      • Shenandoah
      • DGC
    • Metaspace
    • Reference Processing
    • Choosing a collector
    • Tuning Goals
    • Container Support
    • GC tooling for observability
    • GC Log Analysis
    • OutOfMemoryError

Java Performance Tuning Workshop (3 days)

  • Objective: Hands on dive into performance tuning Java applications.
  • Topics:
    • Introduction into Java Performance Diagnostic Methodology (JPDM)
    • Latency and Throughput
    • Measurements, accuracy, precision, resolution and bias
    • Benchmarking for Performance
    • Inside the JVM
      • Garbage Collection
      • HotSpot Optimizations
    • Profiling Fundamentals
    • Java Management Extensions
    • IPC