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

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

    XMLWordPrintable

Details

    • gc

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: