Tooling 高级

将对象头大小减半,提高内存密度和缓存利用率。

✕ Java 8
// Default: 128-bit object header
// = 16 bytes overhead per object
// A boolean field object = 32 bytes!
// Mark word (64) + Klass pointer (64)
✓ Java 25
// -XX:+UseCompactObjectHeaders
// 64-bit object header
// = 8 bytes overhead per object
// 50% less header memory
// More objects fit in cache
发现此代码有问题? 告诉我们。
📦

头部缩小 50%

每个对象 8 字节而非 16 字节。

更好的缓存

更小的对象意味着每个缓存行容纳更多对象。

🔧

零代码更改

无需修改应用程序代码。

旧方式
128 位头
现代方式
64 位头
自 JDK
25
难度
高级
紧凑对象头
可用

在 JDK 25 LTS 中正式发布(JEP 519,2025 年 9 月)。

紧凑对象头将每个对象的开销从 128 位(16 字节)减少到 64 位(8 字节)。这提高了内存密度,减少了 GC 压力,并提高了缓存局部性。

分享 𝕏 🦋 in