JDK-8354168 : Release Note: UseCompactObjectHeaders is a product option
  • Type: Sub-task
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 25
  • Priority: P4
  • Status: Resolved
  • Resolution: Delivered
  • Submitted: 2025-04-09
  • Updated: 2025-06-10
  • Resolved: 2025-06-10
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 25
25Resolved
Related Reports
Relates :  
Description
The flag `-XX:+/-UseCompactObjectHeaders` is now a product option. This allows users to enable compact object headers without `-XX:+UnlockExperimentalVMOptions`. Compact object headers are a feature introduced in JDK 24 under  JEP 450. Enabling this feature reduces the Java heap footprint of applications and potentially provides performance benefits. The feature remains disabled by default in this release but may become the default in a future release.

To support use of compact object headers two additional CDS archives for the JDK image called `classes_coh.jsa` and `classes_nocoops_coh.jsa` are provided to allow equivalent startup performance when `UseCompactObjectHeaders` is turned on.
Comments
Thank you for the wording cleanup and reviewing [~dholmes]
10-06-2025

I've done an editorial pass and reworked the last part about the archives. Adding myself as reviewer.
10-06-2025

[~dholmes] and [~rkennke] Can you review this?
09-06-2025

Yes, the plan is to make it on by default (hopefully in JDK 26).
03-06-2025

Do we intend making this the default in the future or will it always be an opt-in selection? If it will become the default then I suggest we outline the plan going forward e.g. The feature remains disabled by default in this release whilst it continues to be evaluated. In a future release it is expected to be enabled by default, and eventually will be the only mode of operation.
03-06-2025

I assigned myself the release note because we want to mention the additional archives which we have in the Oracle JDK image, and I didn't know if the release note is vendor specific or vendor neutral. Can you review the wording and see if it can be improved? I don't think we should promise features and timelines. We still have to evaluate the performance with COH on by default to make sure there are no regressions that customers are going to care about.
03-06-2025