Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8310031

Parallel: Implement better work distribution for large object arrays in old gen

XMLWordPrintable

    • gc
    • b21

        Currently Parallel GC young gc distributes work to find dirty cards on stripe basis (65k areas of memory): if an object starts in a stripe assigned to a thread, that thread owns that object to find dirty cards exclusively.

        This is a problem with large objArrays that limits parallelism: a single worker thread will own that objArray, limiting throughput.

        That should also fix the difference between parallel gc and g1 gc in pause times (4-5x+) for DelayInducer (JDK-8062128) found in JDK-8309960.

          1. BigArrayInOldGenRR.java
            1.0 kB
          2. card_scan.java
            0.6 kB
          3. card_scan_scarce.java
            2 kB
          4. card_scan_scarce_2.java
            2 kB
          5. card_scan_big_instances.java
            25 kB

              rrich Richard Reingruber
              tschatzl Thomas Schatzl
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated:
                Resolved: