Reorder CDS archived heap to speed up relocation

XMLWordPrintable

    • Type: Enhancement
    • Resolution: Fixed
    • Priority: P4
    • 23
    • Affects Version/s: 16
    • Component/s: hotspot
    • b14

      Many of the objects in the CDS archive heap have no non-null oop fields. (E.g., type arrays, or an object whose oop fields are all null).

      With the attached patch, we can see that more than 60% of the spaces used by the archived heap don't need to be marked by the oopmap.

      We should reorder the archived heap to segregate the objects that don't need marking. This will save space in the archive and improve start-up time (see also JDK-8251322)

      calculate_oopmap: objects = 15262 (507904 bytes, 332752 bytes don't need marking), embedded oops = 8408, nulls = 54
      Oopmap = 15872 bytes

      calculate_oopmap: objects = 4590 (335872 bytes, 178120 bytes don't need marking), embedded oops = 46487, nulls = 29019
      Oopmap = 10496 bytes

      (332752 + 178120) / (507904 + 335872.0) = 0.6054592688106796

            Assignee:
            Matias Saavedra Silva
            Reporter:
            Ioi Lam
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: