An Introduction to JVM Performance
summary
Explains how HotSpot turns bytecode into machine code via levels of JIT profiling and monomorphic call sites so that tiny changes (one extra runtime type) can break inlining and slow a program hugely — example: rewriting a batch to use fewer runtime types drops runtime from ten hours to four minutes. Covers escape analysis, branch-prediction effects, and why logging and megamorphic utilities kill optimizations. Shows practical tools and flags: JMH for benchmarks, JITWatch and async-profiler/Flight Recorder plus -XX compilation prints.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 3:00Performance disclaimer
- 5:00The basics
- 7:10The life cycle
- 15:22The most crucial optimization
- 17:30Why call a method expensive
- 21:28Speculative Optimization
- 23:05Linked Calls
- 24:07Virtual Method Process
- 27:04Inlining
- 28:52Avoiding types
- 32:06Example
- 32:45Alternative
- 34:15Lock Methods
- 39:56JavaScript
- 44:06Ifelse
- 49:08Object Allocation
- 52:36Benchmarks
- 56:51Conclusion
related talks
41mAn Introduction to JVM Performance
01h 01mAn Introduction to JVM Performance
49mAn Introduction to JVM Performance
01h 09mWhat it means to be Just In Time
01h 09mFrom Bytecode to Native Code in HotSpot JVM
54mJava performance techniques The cost of HotSpot runtime optimizations
55mThe Performance Engineer's Guide To Java HotSpot
35mJava at Speed: Building a Better JVM
