JDK-8337138 : Release Note: New Parallel GC Full GC algorithm
  • Type: Sub-task
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 23
  • Priority: P4
  • Status: Resolved
  • Resolution: Delivered
  • Submitted: 2024-07-24
  • Updated: 2024-08-26
  • Resolved: 2024-07-31
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 23
23Resolved
Description
Parallel GC now uses the same Full GC algorithm found in Serial GC and G1 GC Full GCs.

The previous algorithm consisted of three passes through every live object in the Java heap:

1. Marking live objects
2. Calculating new locations for every live object
3. Moving objects to new locations and update fields of every object

The object locations calculated in step 2 are stored using off-heap memory to avoid a fourth pass through the live objects in the Java heap. The problem is that this scheme does not scale well for certain problematic workloads. Additionally this data structure uses 1.5% of the Java heap in off-heap memory.

The new algorithm performs significantly better for the problematic workloads, and does not need the additional memory, reducing the footprint for all workloads.