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

GCs with survivor spaces report Init > Max through MXBeans

    XMLWordPrintable

Details

    • gc

    Description

      Run this:

      $ cat Test.java
      import java.lang.management.ManagementFactory;

      public class Test {
        public static void main(String... args) {
           var bean = ManagementFactory.getMemoryMXBean();
           System.out.println("MXBean says: " + bean.getHeapMemoryUsage());
        }
      }

      $ java -XX:+UseParallelGC -Xms76m -Xmx76m Test.java
      MXBean says: init = 79691776(77824K) used = 9006952(8795K) committed = 76546048(74752K) max = 76546048(74752K)

      Note how init > max. This is because generational collectors report "max" as max_capacity(), which excludes one of the survivors, while reporting "init" as the vanilla Xms. The fix on the GC side, in the way they report their initial capacity.

      Attachments

        Issue Links

          Activity

            People

              shade Aleksey Shipilev
              shade Aleksey Shipilev
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: