JDK-8323579 : Release Note: Parallel: Better GC Throughput with Large Object Arrays
  • Type: Sub-task
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 22
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2024-01-11
  • Updated: 2024-01-29
Description
During a young collection, Parallel GC searches for dirty cards in the card table to locate old-to-young pointers. After finding dirty cards, Parallel GC uses the internal bookkeeping data structures to locate object starts for heap-parsing to be able to walk the heap within these dirty cards object-by-object.

This change modifies the internal bookkeeping data structure to the one used by Serial and G1. As a result, the object start lookup time is improved and one can observe ~20% reduction of Young-GC pause in some benchmarks using large object arrays.