JVM internals — bytecode, JIT, GC, speculative optimization
summary
The JVM loads, verifies, and initializes classes, runs bytecode through a template interpreter (precompiled machine-code stubs), then tiers to a fast C1 JIT after ~1,000 calls (roughly 10× faster than interpretation) and finally to C2 where heavy speculative optimization rewrites hot paths and can deopt if assumptions break. Garbage collectors differ wildly for tail latency — tiny heaps can trigger the serial collector and cause 1–2s pauses — so choosing GC and profiling tools matters.
AI-written summary · about
chapters (8)
- 0:00Introduction and welcome
- 1:51Why JVM knowledge matters
- 2:52Java code to bytecode
- 3:34Memory management basics
- 4:17Execution engine and interpretation
- 4:59JIT compilation and optimizations
- 6:01Practical JVM troubleshooting
- 9:16Audience feedback and takeaways
related talks
49mAn Introduction to JVM Performance
43mThe Virtual Machine Under the Hood
35mJava at Speed: Building a Better JVM
01h 01mAn Introduction to JVM Performance
44mJava at Speed: Building a Better JVM.
59mAn Introduction to JVM Performance
41mAn Introduction to JVM Performance
01h 09mFrom Bytecode to Native Code in HotSpot JVM
