Profiling your Java Application A Beginner’s Guide
summary
Uses micrometer/Prometheus/Zipkin for black‑ and gray‑box checks, then profiles with Java Flight Recorder (opened in Java Mission Control or Glowroot). Finds a GDPR aspect making an unexpected HTTP call, a class‑level @Transactional causing connection starvation (clients waiting ~60s), an HTTP client pool limited to 4 connections, and Lombok toString triggering lazy loads. Changes (move annotations, increase pool, exclude collections from toString) cut endpoint latency about 5× and shift time from 80% network to ~20% DB/CPU.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 2:34Response time in Java apps
- 8:11Profiling microservices
- 12:24Java Flight Recorder basics
- 16:57Setting up profiling
- 19:07First flame graph results
- 23:22Hidden aspects and network calls
- 27:15Transaction proxy performance
- 30:51Connection starvation fixes
- 33:18Lazy loading and toString issues
- 35:48HTTP client pool optimization
- 37:35Final flame graph analysis
- 38:39Lock contention detection
- 41:28Advanced Flight Recorder features
- 43:37Solving Java performance issues
- 44:20Summary
related talks
40mProfiling Without Pain: Always-On Performance for the JVM
51mThe Power of JDK Flight Recorder: Efficient Profiling and Troubleshooting for Java Applications
45mJava Performance Analysis and Optimization
44mJVM Profiling under the Hood
47mTracing Java's Hidden Performance Traps
50mObservability Beyond the Three Pillars — Continuous Profiling With Alibaba Dragonwell
42mProfiling and monitoring with the JDK
52mBulletproof Java Enterprise Applications for The Hard Production Life
