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

Large eden prevents collecting the old gen due to too conservative estimation of eden live bytes

    XMLWordPrintable

Details

    • gc

    Description

      G1 tries to avoid taking too many old gen regions during evacuation to avoid evacuation failure.

      It does so by estimating the amount of space the young gen evacuation will take, and subtracting this value from the available free bytes. If the old gen region will still fit, it takes the region, otherwise it will stop adding region to the collection set.

      Now if the young gen is > 50% (by e.g. setting G1NewSizePercent > 50), the amount of space taken by the current young gen plus that estimation of the liveness is > 100% of the heap. That means G1 will never evacuate old gen regions, leading to full gc.

      JDK-8142935 introduced this code.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              tschatzl Thomas Schatzl
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: