Project Lilliput: Shrinking Object Headers in the HotSpot JVM
summary
Project Lilliput reduces HotSpot object headers from 128 bits to a 64-bit design by combining compressed class pointers with a small forwarding/metadata table to preserve object identity, synchronization (locks/monitors) and hash codes. A HotSpot prototype runs with the Shenandoah GC and shows large memory reductions (up to ~50–54% in some workloads) and improved allocation rates on DaCapo and custom benchmarks; the implementation involves changes to monitors, identity-hash handling and pointer compression and uses a forwarding table approach.
AI-written summary · about
chapters (6)
- 0:00Introduction to Project Lilliput
- 10:09Memory savings with Lilliput
- 20:00Compressed object headers in Hotspot
- 30:59Identity hash and object identity
- 40:52Forwarding pointers and performance
- 51:09Project status and future
related talks
47mProject Lilliput - Beyond Compact Headers
51mProject Lilliput - Compressed Object Headers
44mLilliput on the horizon
55mThe Performance Engineer's Guide To Java HotSpot
35mJava at Speed: Building a Better JVM
01h 01mAn Introduction to JVM Performance
44mJava at Speed: Building a Better JVM.
45mLambda Forms
