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

GenShen: Old at end of Full GC must include newly promoted objects

XMLWordPrintable

    • gc

      We track the amount of old-gen memory that is live at the end of each old marking pass as this is one of the mechanisms that feeds into the trigger for a new old-gen collection.

      Currently, the old-live value following Full GC is set based on the amount of live found by Full GC's stop-and-wait marking effort. However, this does not include young objects that are promoted into old as a result of this Full GC.

      In one recently examined GC log, old-live-at-end-of-last-mark was reported as 5_932M. However, following the compaction phase, which promotes aged young objects, the amount of live old-gen memory was 13_152M. At the end of the subsequent concurrent GC cycle, we found that old-gen held 13_390M, representing 125.7% growth since last old mark. With this "bad" information, we immediately triggered another old concurrent mark, because of the huge amount of growth.

            kdnilsen Kelvin Nilsen
            kdnilsen Kelvin Nilsen
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: