JEP 519:紧凑对象头

主要观点:将 JDK 中的紧凑对象头从实验特性变更为产品特性,其在 JDK24 中已被引入并证明了稳定性和性能,经过大量测试且无需进一步测试,同时提及了相关风险和假设。
关键信息

  • 所有者为 Roman Kennke,类型为 Feature,范围是 Implementation,状态为 Closed/Delivered,发布于 25,组件是 hotspot/runtime,讨论在 hotspot dash dev at openjdk dot org,工作量为 S,持续时间为 XS,与JEP 450: Compact Object Headers (Experimental)相关,经 Coleen Phillimore、Stefan Karlsson、Vladimir Kozlov 评审,Vladimir Kozlov 认可,创建于 2025/04/15 14:01,更新于 2025/07/15 11:46,问题为8354672
  • 紧凑对象头原作为 JDK24 中[JEP 450]的替代对象头布局引入,因其大小特性需谨慎逐步引入,现为产品特性时机已到。
  • 在 JDK24 中通过命令行选项$ java -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders...启用,之后成为产品特性则无需-XX:+UnlockExperimentalVMOptions选项,且已进行大量测试无需进一步测试,部分测试需调整。
  • 风险方面,未来特性可能需额外对象头位,已为[Project Valhalla]预留 4 位,若需求更大可通过[Project Lilliput]已原型化技术进一步压缩压缩类指针和标识哈希码。
    重要细节:SPECjbb2015 基准测试在不同设置下使用紧凑对象头可减少 22%堆空间、8%CPU 时间,垃圾收集次数减少 15%,高度并行 JSON 解析器基准测试运行时间减少 10%等具体性能提升数据。
阅读 39
0 条评论