Project Lilliput - Compressed Object Headers
summary
Project Lilliput compresses object headers by merging the compressed class pointer into the mark word to cut header size from 12 to 8-byte headers (Lilliput One) and aims for 4-byte headers next. Measured results: one service sees ~30% heap reduction after GC, CPU down ~25% and latency down ~30%. Implementation details: backport to JDK17, landed gated in JDK21, targeted for JDK22; key techniques are lock stack instead of stack pointers, sliding-forwarding encoded via per-region side tables, and on-demand identity-hash storage; try estimates with the Java Object Layout tool.
AI-written summary · about
chapters (5)
- 0:00Project Liliput overview
- 3:42Performance and deployment
- 5:36Estimating memory impact
- 7:21Technical implementation
- 51:04Final discussion
related talks
47mProject Lilliput - Beyond Compact Headers
56mProject Lilliput: Shrinking Object Headers in the HotSpot JVM
44mLilliput on the horizon
40mSave Java memory
47mLegal JVM Doping in Your Containers
53mJava Performance Update 2024
20mCache Me If You Can: Speed Up Your JVM with Project Valhalla
51mJava Performance Update: From JDK 21 to JDK 25
