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

    Details

    • Subcomponent:
      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

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

                Dates

                • Created:
                  Updated: