~/talk

Profiling Without Pain: Always-On Performance for the JVM

Talkat Voxxed Days Zurich 2026 · on Tuesday, 2026-03-24· [observability, java]
slides:none on file

A Quarkus feature-flag service with Postgres shows 1.48s traces and 10s GC-driven spikes until memory is increased; an N+1 Hibernate query is fixed with a JPQL join and per-request latency drops to tens of ms. Continuous profiling using Java Flight Recorder combined with async-profiler and Pyroscope ties samples to OpenTelemetry traces, reveals native compression CPU hot paths and lock contention invisible to CPU-only sampling, and cuts a slow endpoint from ~500ms P99 to ~8ms average (P99 23ms) with ~1–2% overhead.

AI-written summary · about

  1. 0:00Introduction
  2. 1:19Feature flag service for profiling
  3. 3:51Diagnosing with metrics and GC
  4. 6:56Traces for N+1 queries
  5. 12:30Traditional profilers' limits
  6. 17:04Sampling profilers in JVM
  7. 23:23Java Flight Recorder tools
  8. 28:18Pyroscope for production
  9. 32:08Flame graphs analysis
  10. 37:01Key takeaways
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.