public class sun.jvm.hotspot.tools.HeapSummary extends sun.jvm.hotspot.tools.Tool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.tools.HeapSummary
  super_class: sun.jvm.hotspot.tools.Tool
{
  private static java.lang.String alignment;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final double FACTOR;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1048576.0

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 231
            ldc "   "
            putstatic sun.jvm.hotspot.tools.HeapSummary.alignment:Ljava/lang/String;
         1: .line 278
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
         0: .line 43
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.tools.Tool.<init>:()V
         1: .line 44
            return
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/tools/HeapSummary;

  public void <init>(sun.jvm.hotspot.debugger.JVMDebugger);
    descriptor: (Lsun/jvm/hotspot/debugger/JVMDebugger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
        start local 1 // sun.jvm.hotspot.debugger.JVMDebugger d
         0: .line 47
            aload 0 /* this */
            aload 1 /* d */
            invokespecial sun.jvm.hotspot.tools.Tool.<init>:(Lsun/jvm/hotspot/debugger/JVMDebugger;)V
         1: .line 48
            return
        end local 1 // sun.jvm.hotspot.debugger.JVMDebugger d
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/tools/HeapSummary;
            0    2     1     d  Lsun/jvm/hotspot/debugger/JVMDebugger;
    MethodParameters:
      Name  Flags
      d     

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 51
            new sun.jvm.hotspot.tools.HeapSummary
            dup
            invokespecial sun.jvm.hotspot.tools.HeapSummary.<init>:()V
            astore 1 /* hs */
        start local 1 // sun.jvm.hotspot.tools.HeapSummary hs
         1: .line 52
            aload 1 /* hs */
            aload 0 /* args */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.execute:([Ljava/lang/String;)V
         2: .line 53
            return
        end local 1 // sun.jvm.hotspot.tools.HeapSummary hs
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  args  [Ljava/lang/String;
            1    3     1    hs  Lsun/jvm/hotspot/tools/HeapSummary;
    MethodParameters:
      Name  Flags
      args  

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
         0: .line 57
            ldc "heapSummary"
            areturn
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/tools/HeapSummary;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=1
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
         0: .line 61
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getUniverse:()Lsun/jvm/hotspot/memory/Universe;
            invokevirtual sun.jvm.hotspot.memory.Universe.heap:()Lsun/jvm/hotspot/gc/shared/CollectedHeap;
            astore 1 /* heap */
        start local 1 // sun.jvm.hotspot.gc.shared.CollectedHeap heap
         1: .line 62
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getCommandLineFlags:()[Lsun/jvm/hotspot/runtime/VM$Flag;
            astore 2 /* flags */
        start local 2 // sun.jvm.hotspot.runtime.VM$Flag[] flags
         2: .line 63
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* flagMap */
        start local 3 // java.util.Map flagMap
         3: .line 64
            aload 2 /* flags */
            ifnonnull 6
         4: .line 65
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "WARNING: command line flags are not available"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 66
            goto 11
         6: .line 67
      StackMap locals: sun.jvm.hotspot.gc.shared.CollectedHeap sun.jvm.hotspot.runtime.VM$Flag[] java.util.Map
      StackMap stack:
            iconst_0
            istore 4 /* f */
        start local 4 // int f
         7: goto 10
         8: .line 68
      StackMap locals: int
      StackMap stack:
            aload 3 /* flagMap */
            aload 2 /* flags */
            iload 4 /* f */
            aaload
            invokevirtual sun.jvm.hotspot.runtime.VM$Flag.getName:()Ljava/lang/String;
            aload 2 /* flags */
            iload 4 /* f */
            aaload
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 67
            iinc 4 /* f */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* f */
            aload 2 /* flags */
            arraylength
            if_icmplt 8
        end local 4 // int f
        11: .line 72
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        12: .line 73
            aload 0 /* this */
            aload 3 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printGCAlgorithm:(Ljava/util/Map;)V
        13: .line 74
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        14: .line 75
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Heap Configuration:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 76
            aload 0 /* this */
            ldc "MinHeapFreeRatio         = "
            aload 0 /* this */
            ldc "MinHeapFreeRatio"
            aload 3 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValue:(Ljava/lang/String;J)V
        16: .line 77
            aload 0 /* this */
            ldc "MaxHeapFreeRatio         = "
            aload 0 /* this */
            ldc "MaxHeapFreeRatio"
            aload 3 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValue:(Ljava/lang/String;J)V
        17: .line 78
            aload 0 /* this */
            ldc "MaxHeapSize              = "
            aload 0 /* this */
            ldc "MaxHeapSize"
            aload 3 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        18: .line 79
            aload 0 /* this */
            ldc "NewSize                  = "
            aload 0 /* this */
            ldc "NewSize"
            aload 3 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        19: .line 80
            aload 0 /* this */
            ldc "MaxNewSize               = "
            aload 0 /* this */
            ldc "MaxNewSize"
            aload 3 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        20: .line 81
            aload 0 /* this */
            ldc "OldSize                  = "
            aload 0 /* this */
            ldc "OldSize"
            aload 3 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        21: .line 82
            aload 0 /* this */
            ldc "NewRatio                 = "
            aload 0 /* this */
            ldc "NewRatio"
            aload 3 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValue:(Ljava/lang/String;J)V
        22: .line 83
            aload 0 /* this */
            ldc "SurvivorRatio            = "
            aload 0 /* this */
            ldc "SurvivorRatio"
            aload 3 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValue:(Ljava/lang/String;J)V
        23: .line 84
            aload 0 /* this */
            ldc "MetaspaceSize            = "
            aload 0 /* this */
            ldc "MetaspaceSize"
            aload 3 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        24: .line 85
            aload 0 /* this */
            ldc "CompressedClassSpaceSize = "
            aload 0 /* this */
            ldc "CompressedClassSpaceSize"
            aload 3 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        25: .line 86
            aload 0 /* this */
            ldc "MaxMetaspaceSize         = "
            aload 0 /* this */
            ldc "MaxMetaspaceSize"
            aload 3 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        26: .line 87
            aload 1 /* heap */
            instanceof sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap
            ifeq 29
        27: .line 88
            aload 0 /* this */
            ldc "ShenandoahRegionSize     = "
            invokestatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.regionSizeBytes:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        28: .line 89
            goto 30
        29: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "G1HeapRegionSize         = "
            invokestatic sun.jvm.hotspot.gc.g1.HeapRegion.grainBytes:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        30: .line 93
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        31: .line 94
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Heap Usage:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        32: .line 96
            aload 1 /* heap */
            instanceof sun.jvm.hotspot.gc.shared.GenCollectedHeap
            ifeq 55
        33: .line 97
            aload 1 /* heap */
            checkcast sun.jvm.hotspot.gc.shared.GenCollectedHeap
            astore 4 /* genHeap */
        start local 4 // sun.jvm.hotspot.gc.shared.GenCollectedHeap genHeap
        34: .line 98
            iconst_0
            istore 5 /* n */
        start local 5 // int n
        35: goto 53
        36: .line 99
      StackMap locals: sun.jvm.hotspot.gc.shared.GenCollectedHeap int
      StackMap stack:
            aload 4 /* genHeap */
            iload 5 /* n */
            invokevirtual sun.jvm.hotspot.gc.shared.GenCollectedHeap.getGen:(I)Lsun/jvm/hotspot/gc/shared/Generation;
            astore 6 /* gen */
        start local 6 // sun.jvm.hotspot.gc.shared.Generation gen
        37: .line 100
            aload 6 /* gen */
            instanceof sun.jvm.hotspot.gc.serial.DefNewGeneration
            ifeq 50
        38: .line 101
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "New Generation (Eden + 1 Survivor Space):"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        39: .line 102
            aload 0 /* this */
            aload 6 /* gen */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printGen:(Lsun/jvm/hotspot/gc/shared/Generation;)V
        40: .line 104
            aload 6 /* gen */
            checkcast sun.jvm.hotspot.gc.serial.DefNewGeneration
            invokevirtual sun.jvm.hotspot.gc.serial.DefNewGeneration.eden:()Lsun/jvm/hotspot/gc/shared/ContiguousSpace;
            astore 7 /* eden */
        start local 7 // sun.jvm.hotspot.gc.shared.ContiguousSpace eden
        41: .line 105
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Eden Space:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        42: .line 106
            aload 0 /* this */
            aload 7 /* eden */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printSpace:(Lsun/jvm/hotspot/gc/shared/ContiguousSpace;)V
        43: .line 108
            aload 6 /* gen */
            checkcast sun.jvm.hotspot.gc.serial.DefNewGeneration
            invokevirtual sun.jvm.hotspot.gc.serial.DefNewGeneration.from:()Lsun/jvm/hotspot/gc/shared/ContiguousSpace;
            astore 8 /* from */
        start local 8 // sun.jvm.hotspot.gc.shared.ContiguousSpace from
        44: .line 109
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "From Space:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        45: .line 110
            aload 0 /* this */
            aload 8 /* from */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printSpace:(Lsun/jvm/hotspot/gc/shared/ContiguousSpace;)V
        46: .line 112
            aload 6 /* gen */
            checkcast sun.jvm.hotspot.gc.serial.DefNewGeneration
            invokevirtual sun.jvm.hotspot.gc.serial.DefNewGeneration.to:()Lsun/jvm/hotspot/gc/shared/ContiguousSpace;
            astore 9 /* to */
        start local 9 // sun.jvm.hotspot.gc.shared.ContiguousSpace to
        47: .line 113
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "To Space:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        48: .line 114
            aload 0 /* this */
            aload 9 /* to */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printSpace:(Lsun/jvm/hotspot/gc/shared/ContiguousSpace;)V
        end local 9 // sun.jvm.hotspot.gc.shared.ContiguousSpace to
        end local 8 // sun.jvm.hotspot.gc.shared.ContiguousSpace from
        end local 7 // sun.jvm.hotspot.gc.shared.ContiguousSpace eden
        49: .line 115
            goto 52
        50: .line 116
      StackMap locals: sun.jvm.hotspot.gc.shared.Generation
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            aload 6 /* gen */
            invokevirtual sun.jvm.hotspot.gc.shared.Generation.name:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        51: .line 117
            aload 0 /* this */
            aload 6 /* gen */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printGen:(Lsun/jvm/hotspot/gc/shared/Generation;)V
        end local 6 // sun.jvm.hotspot.gc.shared.Generation gen
        52: .line 98
      StackMap locals:
      StackMap stack:
            iinc 5 /* n */ 1
      StackMap locals:
      StackMap stack:
        53: iload 5 /* n */
            aload 4 /* genHeap */
            invokevirtual sun.jvm.hotspot.gc.shared.GenCollectedHeap.nGens:()I
            if_icmplt 36
        end local 5 // int n
        end local 4 // sun.jvm.hotspot.gc.shared.GenCollectedHeap genHeap
        54: .line 120
            goto 88
      StackMap locals:
      StackMap stack:
        55: aload 1 /* heap */
            instanceof sun.jvm.hotspot.gc.g1.G1CollectedHeap
            ifeq 58
        56: .line 121
            aload 0 /* this */
            aload 1 /* heap */
            checkcast sun.jvm.hotspot.gc.g1.G1CollectedHeap
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printG1HeapSummary:(Lsun/jvm/hotspot/gc/g1/G1CollectedHeap;)V
        57: .line 122
            goto 88
      StackMap locals:
      StackMap stack:
        58: aload 1 /* heap */
            instanceof sun.jvm.hotspot.gc.parallel.ParallelScavengeHeap
            ifeq 70
        59: .line 123
            aload 1 /* heap */
            checkcast sun.jvm.hotspot.gc.parallel.ParallelScavengeHeap
            astore 4 /* psh */
        start local 4 // sun.jvm.hotspot.gc.parallel.ParallelScavengeHeap psh
        60: .line 124
            aload 4 /* psh */
            invokevirtual sun.jvm.hotspot.gc.parallel.ParallelScavengeHeap.youngGen:()Lsun/jvm/hotspot/gc/parallel/PSYoungGen;
            astore 5 /* youngGen */
        start local 5 // sun.jvm.hotspot.gc.parallel.PSYoungGen youngGen
        61: .line 125
            aload 0 /* this */
            aload 5 /* youngGen */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printPSYoungGen:(Lsun/jvm/hotspot/gc/parallel/PSYoungGen;)V
        62: .line 127
            aload 4 /* psh */
            invokevirtual sun.jvm.hotspot.gc.parallel.ParallelScavengeHeap.oldGen:()Lsun/jvm/hotspot/gc/parallel/PSOldGen;
            astore 6 /* oldGen */
        start local 6 // sun.jvm.hotspot.gc.parallel.PSOldGen oldGen
        63: .line 128
            aload 6 /* oldGen */
            invokevirtual sun.jvm.hotspot.gc.parallel.PSOldGen.capacity:()J
            aload 6 /* oldGen */
            invokevirtual sun.jvm.hotspot.gc.parallel.PSOldGen.used:()J
            lsub
            lstore 7 /* oldFree */
        start local 7 // long oldFree
        64: .line 129
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "PS Old Generation"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        65: .line 130
            aload 0 /* this */
            ldc "capacity = "
            aload 6 /* oldGen */
            invokevirtual sun.jvm.hotspot.gc.parallel.PSOldGen.capacity:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        66: .line 131
            aload 0 /* this */
            ldc "used     = "
            aload 6 /* oldGen */
            invokevirtual sun.jvm.hotspot.gc.parallel.PSOldGen.used:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        67: .line 132
            aload 0 /* this */
            ldc "free     = "
            lload 7 /* oldFree */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        68: .line 133
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            getstatic sun.jvm.hotspot.tools.HeapSummary.alignment:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* oldGen */
            invokevirtual sun.jvm.hotspot.gc.parallel.PSOldGen.used:()J
            l2d
            ldc 100.0
            dmul
            aload 6 /* oldGen */
            invokevirtual sun.jvm.hotspot.gc.parallel.PSOldGen.capacity:()J
            l2d
            ddiv
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc "% used"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 7 // long oldFree
        end local 6 // sun.jvm.hotspot.gc.parallel.PSOldGen oldGen
        end local 5 // sun.jvm.hotspot.gc.parallel.PSYoungGen youngGen
        end local 4 // sun.jvm.hotspot.gc.parallel.ParallelScavengeHeap psh
        69: .line 134
            goto 88
      StackMap locals:
      StackMap stack:
        70: aload 1 /* heap */
            instanceof sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap
            ifeq 79
        71: .line 135
            aload 1 /* heap */
            checkcast sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap
            astore 4 /* sh */
        start local 4 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap sh
        72: .line 136
            aload 4 /* sh */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap.numOfRegions:()J
            lstore 5 /* num_regions */
        start local 5 // long num_regions
        73: .line 137
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Shenandoah Heap:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        74: .line 138
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "   regions   = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 5 /* num_regions */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        75: .line 139
            aload 0 /* this */
            ldc "capacity  = "
            lload 5 /* num_regions */
            invokestatic sun.jvm.hotspot.gc.shenandoah.ShenandoahHeapRegion.regionSizeBytes:()J
            lmul
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        76: .line 140
            aload 0 /* this */
            ldc "used      = "
            aload 4 /* sh */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap.used:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        77: .line 141
            aload 0 /* this */
            ldc "committed = "
            aload 4 /* sh */
            invokevirtual sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap.committed:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
        end local 5 // long num_regions
        end local 4 // sun.jvm.hotspot.gc.shenandoah.ShenandoahHeap sh
        78: .line 142
            goto 88
      StackMap locals:
      StackMap stack:
        79: aload 1 /* heap */
            instanceof sun.jvm.hotspot.gc.epsilon.EpsilonHeap
            ifeq 83
        80: .line 143
            aload 1 /* heap */
            checkcast sun.jvm.hotspot.gc.epsilon.EpsilonHeap
            astore 4 /* eh */
        start local 4 // sun.jvm.hotspot.gc.epsilon.EpsilonHeap eh
        81: .line 144
            aload 0 /* this */
            aload 4 /* eh */
            invokevirtual sun.jvm.hotspot.gc.epsilon.EpsilonHeap.space:()Lsun/jvm/hotspot/gc/shared/ContiguousSpace;
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printSpace:(Lsun/jvm/hotspot/gc/shared/ContiguousSpace;)V
        end local 4 // sun.jvm.hotspot.gc.epsilon.EpsilonHeap eh
        82: .line 145
            goto 88
      StackMap locals:
      StackMap stack:
        83: aload 1 /* heap */
            instanceof sun.jvm.hotspot.gc.z.ZCollectedHeap
            ifeq 87
        84: .line 146
            aload 1 /* heap */
            checkcast sun.jvm.hotspot.gc.z.ZCollectedHeap
            astore 4 /* zheap */
        start local 4 // sun.jvm.hotspot.gc.z.ZCollectedHeap zheap
        85: .line 147
            aload 4 /* zheap */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual sun.jvm.hotspot.gc.z.ZCollectedHeap.printOn:(Ljava/io/PrintStream;)V
        end local 4 // sun.jvm.hotspot.gc.z.ZCollectedHeap zheap
        86: .line 148
            goto 88
        87: .line 149
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown CollectedHeap type : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* heap */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        88: .line 152
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        89: .line 153
            return
        end local 3 // java.util.Map flagMap
        end local 2 // sun.jvm.hotspot.runtime.VM$Flag[] flags
        end local 1 // sun.jvm.hotspot.gc.shared.CollectedHeap heap
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   90     0         this  Lsun/jvm/hotspot/tools/HeapSummary;
            1   90     1         heap  Lsun/jvm/hotspot/gc/shared/CollectedHeap;
            2   90     2        flags  [Lsun/jvm/hotspot/runtime/VM$Flag;
            3   90     3      flagMap  Ljava/util/Map;
            7   11     4            f  I
           34   54     4      genHeap  Lsun/jvm/hotspot/gc/shared/GenCollectedHeap;
           35   54     5            n  I
           37   52     6          gen  Lsun/jvm/hotspot/gc/shared/Generation;
           41   49     7         eden  Lsun/jvm/hotspot/gc/shared/ContiguousSpace;
           44   49     8         from  Lsun/jvm/hotspot/gc/shared/ContiguousSpace;
           47   49     9           to  Lsun/jvm/hotspot/gc/shared/ContiguousSpace;
           60   69     4          psh  Lsun/jvm/hotspot/gc/parallel/ParallelScavengeHeap;
           61   69     5     youngGen  Lsun/jvm/hotspot/gc/parallel/PSYoungGen;
           63   69     6       oldGen  Lsun/jvm/hotspot/gc/parallel/PSOldGen;
           64   69     7      oldFree  J
           72   78     4           sh  Lsun/jvm/hotspot/gc/shenandoah/ShenandoahHeap;
           73   78     5  num_regions  J
           81   82     4           eh  Lsun/jvm/hotspot/gc/epsilon/EpsilonHeap;
           85   86     4        zheap  Lsun/jvm/hotspot/gc/z/ZCollectedHeap;

  private void printGCAlgorithm(java.util.Map);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
        start local 1 // java.util.Map flagMap
         0: .line 158
            aload 0 /* this */
            ldc "UseTLAB"
            aload 1 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            lstore 2 /* l */
        start local 2 // long l
         1: .line 159
            lload 2 /* l */
            lconst_1
            lcmp
            ifne 3
         2: .line 160
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "using thread-local object allocation."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 163
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            ldc "UseConcMarkSweepGC"
            aload 1 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            lstore 2 /* l */
         4: .line 164
            lload 2 /* l */
            lconst_1
            lcmp
            ifne 7
         5: .line 165
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Concurrent Mark-Sweep GC"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 166
            return
         7: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "UseParallelGC"
            aload 1 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            lstore 2 /* l */
         8: .line 170
            lload 2 /* l */
            lconst_1
            lcmp
            ifne 13
         9: .line 171
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Parallel GC "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        10: .line 172
            aload 0 /* this */
            ldc "ParallelGCThreads"
            aload 1 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            lstore 2 /* l */
        11: .line 173
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 2 /* l */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " thread(s)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        12: .line 174
            return
        13: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "UseG1GC"
            aload 1 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            lstore 2 /* l */
        14: .line 178
            lload 2 /* l */
            lconst_1
            lcmp
            ifne 19
        15: .line 179
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Garbage-First (G1) GC "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        16: .line 180
            aload 0 /* this */
            ldc "ParallelGCThreads"
            aload 1 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            lstore 2 /* l */
        17: .line 181
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 2 /* l */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " thread(s)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        18: .line 182
            return
        19: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "UseEpsilonGC"
            aload 1 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            lstore 2 /* l */
        20: .line 186
            lload 2 /* l */
            lconst_1
            lcmp
            ifne 23
        21: .line 187
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Epsilon (no-op) GC"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        22: .line 188
            return
        23: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "UseZGC"
            aload 1 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            lstore 2 /* l */
        24: .line 192
            lload 2 /* l */
            lconst_1
            lcmp
            ifne 29
        25: .line 193
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "ZGC "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        26: .line 194
            aload 0 /* this */
            ldc "ParallelGCThreads"
            aload 1 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            lstore 2 /* l */
        27: .line 195
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 2 /* l */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " thread(s)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        28: .line 196
            return
        29: .line 199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "UseShenandoahGC"
            aload 1 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            lstore 2 /* l */
        30: .line 200
            lload 2 /* l */
            lconst_1
            lcmp
            ifne 35
        31: .line 201
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Shenandoah GC "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        32: .line 202
            aload 0 /* this */
            ldc "ParallelGCThreads"
            aload 1 /* flagMap */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.getFlagValue:(Ljava/lang/String;Ljava/util/Map;)J
            lstore 2 /* l */
        33: .line 203
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 2 /* l */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " thread(s)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        34: .line 204
            return
        35: .line 207
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Mark Sweep Compact GC"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        36: .line 208
            return
        end local 2 // long l
        end local 1 // java.util.Map flagMap
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   37     0     this  Lsun/jvm/hotspot/tools/HeapSummary;
            0   37     1  flagMap  Ljava/util/Map;
            1   37     2        l  J
    MethodParameters:
         Name  Flags
      flagMap  

  private void printPSYoungGen(sun.jvm.hotspot.gc.parallel.PSYoungGen);
    descriptor: (Lsun/jvm/hotspot/gc/parallel/PSYoungGen;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
        start local 1 // sun.jvm.hotspot.gc.parallel.PSYoungGen youngGen
         0: .line 211
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "PS Young Generation"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 212
            aload 1 /* youngGen */
            invokevirtual sun.jvm.hotspot.gc.parallel.PSYoungGen.edenSpace:()Lsun/jvm/hotspot/gc/parallel/MutableSpace;
            astore 2 /* eden */
        start local 2 // sun.jvm.hotspot.gc.parallel.MutableSpace eden
         2: .line 213
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Eden Space:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 214
            aload 0 /* this */
            aload 2 /* eden */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printMutableSpace:(Lsun/jvm/hotspot/gc/parallel/MutableSpace;)V
         4: .line 215
            aload 1 /* youngGen */
            invokevirtual sun.jvm.hotspot.gc.parallel.PSYoungGen.fromSpace:()Lsun/jvm/hotspot/gc/parallel/MutableSpace;
            astore 3 /* from */
        start local 3 // sun.jvm.hotspot.gc.parallel.MutableSpace from
         5: .line 216
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "From Space:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 217
            aload 0 /* this */
            aload 3 /* from */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printMutableSpace:(Lsun/jvm/hotspot/gc/parallel/MutableSpace;)V
         7: .line 218
            aload 1 /* youngGen */
            invokevirtual sun.jvm.hotspot.gc.parallel.PSYoungGen.toSpace:()Lsun/jvm/hotspot/gc/parallel/MutableSpace;
            astore 4 /* to */
        start local 4 // sun.jvm.hotspot.gc.parallel.MutableSpace to
         8: .line 219
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "To Space:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         9: .line 220
            aload 0 /* this */
            aload 4 /* to */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printMutableSpace:(Lsun/jvm/hotspot/gc/parallel/MutableSpace;)V
        10: .line 221
            return
        end local 4 // sun.jvm.hotspot.gc.parallel.MutableSpace to
        end local 3 // sun.jvm.hotspot.gc.parallel.MutableSpace from
        end local 2 // sun.jvm.hotspot.gc.parallel.MutableSpace eden
        end local 1 // sun.jvm.hotspot.gc.parallel.PSYoungGen youngGen
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lsun/jvm/hotspot/tools/HeapSummary;
            0   11     1  youngGen  Lsun/jvm/hotspot/gc/parallel/PSYoungGen;
            2   11     2      eden  Lsun/jvm/hotspot/gc/parallel/MutableSpace;
            5   11     3      from  Lsun/jvm/hotspot/gc/parallel/MutableSpace;
            8   11     4        to  Lsun/jvm/hotspot/gc/parallel/MutableSpace;
    MethodParameters:
          Name  Flags
      youngGen  

  private void printMutableSpace(sun.jvm.hotspot.gc.parallel.MutableSpace);
    descriptor: (Lsun/jvm/hotspot/gc/parallel/MutableSpace;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
        start local 1 // sun.jvm.hotspot.gc.parallel.MutableSpace space
         0: .line 224
            aload 0 /* this */
            ldc "capacity = "
            aload 1 /* space */
            invokevirtual sun.jvm.hotspot.gc.parallel.MutableSpace.capacity:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
         1: .line 225
            aload 0 /* this */
            ldc "used     = "
            aload 1 /* space */
            invokevirtual sun.jvm.hotspot.gc.parallel.MutableSpace.used:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
         2: .line 226
            aload 1 /* space */
            invokevirtual sun.jvm.hotspot.gc.parallel.MutableSpace.capacity:()J
            aload 1 /* space */
            invokevirtual sun.jvm.hotspot.gc.parallel.MutableSpace.used:()J
            lsub
            lstore 2 /* free */
        start local 2 // long free
         3: .line 227
            aload 0 /* this */
            ldc "free     = "
            lload 2 /* free */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
         4: .line 228
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            getstatic sun.jvm.hotspot.tools.HeapSummary.alignment:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* space */
            invokevirtual sun.jvm.hotspot.gc.parallel.MutableSpace.used:()J
            l2d
            ldc 100.0
            dmul
            aload 1 /* space */
            invokevirtual sun.jvm.hotspot.gc.parallel.MutableSpace.capacity:()J
            l2d
            ddiv
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc "% used"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 229
            return
        end local 2 // long free
        end local 1 // sun.jvm.hotspot.gc.parallel.MutableSpace space
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lsun/jvm/hotspot/tools/HeapSummary;
            0    6     1  space  Lsun/jvm/hotspot/gc/parallel/MutableSpace;
            3    6     2   free  J
    MethodParameters:
       Name  Flags
      space  

  private void printGen(sun.jvm.hotspot.gc.shared.Generation);
    descriptor: (Lsun/jvm/hotspot/gc/shared/Generation;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
        start local 1 // sun.jvm.hotspot.gc.shared.Generation gen
         0: .line 234
            aload 0 /* this */
            ldc "capacity = "
            aload 1 /* gen */
            invokevirtual sun.jvm.hotspot.gc.shared.Generation.capacity:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
         1: .line 235
            aload 0 /* this */
            ldc "used     = "
            aload 1 /* gen */
            invokevirtual sun.jvm.hotspot.gc.shared.Generation.used:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
         2: .line 236
            aload 0 /* this */
            ldc "free     = "
            aload 1 /* gen */
            invokevirtual sun.jvm.hotspot.gc.shared.Generation.free:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
         3: .line 237
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            getstatic sun.jvm.hotspot.tools.HeapSummary.alignment:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* gen */
            invokevirtual sun.jvm.hotspot.gc.shared.Generation.used:()J
            l2d
            ldc 100.0
            dmul
            aload 1 /* gen */
            invokevirtual sun.jvm.hotspot.gc.shared.Generation.capacity:()J
            l2d
            ddiv
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc "% used"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 238
            return
        end local 1 // sun.jvm.hotspot.gc.shared.Generation gen
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/jvm/hotspot/tools/HeapSummary;
            0    5     1   gen  Lsun/jvm/hotspot/gc/shared/Generation;
    MethodParameters:
      Name  Flags
      gen   

  private void printSpace(sun.jvm.hotspot.gc.shared.ContiguousSpace);
    descriptor: (Lsun/jvm/hotspot/gc/shared/ContiguousSpace;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
        start local 1 // sun.jvm.hotspot.gc.shared.ContiguousSpace space
         0: .line 241
            aload 0 /* this */
            ldc "capacity = "
            aload 1 /* space */
            invokevirtual sun.jvm.hotspot.gc.shared.ContiguousSpace.capacity:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
         1: .line 242
            aload 0 /* this */
            ldc "used     = "
            aload 1 /* space */
            invokevirtual sun.jvm.hotspot.gc.shared.ContiguousSpace.used:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
         2: .line 243
            aload 0 /* this */
            ldc "free     = "
            aload 1 /* space */
            invokevirtual sun.jvm.hotspot.gc.shared.ContiguousSpace.free:()J
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
         3: .line 244
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            getstatic sun.jvm.hotspot.tools.HeapSummary.alignment:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* space */
            invokevirtual sun.jvm.hotspot.gc.shared.ContiguousSpace.used:()J
            l2d
            ldc 100.0
            dmul
            aload 1 /* space */
            invokevirtual sun.jvm.hotspot.gc.shared.ContiguousSpace.capacity:()J
            l2d
            ddiv
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc "% used"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 245
            return
        end local 1 // sun.jvm.hotspot.gc.shared.ContiguousSpace space
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lsun/jvm/hotspot/tools/HeapSummary;
            0    5     1  space  Lsun/jvm/hotspot/gc/shared/ContiguousSpace;
    MethodParameters:
       Name  Flags
      space  

  public void printG1HeapSummary(sun.jvm.hotspot.gc.g1.G1CollectedHeap);
    descriptor: (Lsun/jvm/hotspot/gc/g1/G1CollectedHeap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=12, args_size=2
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
        start local 1 // sun.jvm.hotspot.gc.g1.G1CollectedHeap g1h
         0: .line 248
            aload 1 /* g1h */
            invokevirtual sun.jvm.hotspot.gc.g1.G1CollectedHeap.g1mm:()Lsun/jvm/hotspot/gc/g1/G1MonitoringSupport;
            astore 2 /* g1mm */
        start local 2 // sun.jvm.hotspot.gc.g1.G1MonitoringSupport g1mm
         1: .line 249
            aload 2 /* g1mm */
            invokevirtual sun.jvm.hotspot.gc.g1.G1MonitoringSupport.edenSpaceRegionNum:()J
            lstore 3 /* edenSpaceRegionNum */
        start local 3 // long edenSpaceRegionNum
         2: .line 250
            aload 2 /* g1mm */
            invokevirtual sun.jvm.hotspot.gc.g1.G1MonitoringSupport.survivorSpaceRegionNum:()J
            lstore 5 /* survivorSpaceRegionNum */
        start local 5 // long survivorSpaceRegionNum
         3: .line 251
            aload 1 /* g1h */
            invokevirtual sun.jvm.hotspot.gc.g1.G1CollectedHeap.oldSet:()Lsun/jvm/hotspot/gc/g1/HeapRegionSetBase;
            astore 7 /* oldSet */
        start local 7 // sun.jvm.hotspot.gc.g1.HeapRegionSetBase oldSet
         4: .line 252
            aload 1 /* g1h */
            invokevirtual sun.jvm.hotspot.gc.g1.G1CollectedHeap.archiveSet:()Lsun/jvm/hotspot/gc/g1/HeapRegionSetBase;
            astore 8 /* archiveSet */
        start local 8 // sun.jvm.hotspot.gc.g1.HeapRegionSetBase archiveSet
         5: .line 253
            aload 1 /* g1h */
            invokevirtual sun.jvm.hotspot.gc.g1.G1CollectedHeap.humongousSet:()Lsun/jvm/hotspot/gc/g1/HeapRegionSetBase;
            astore 9 /* humongousSet */
        start local 9 // sun.jvm.hotspot.gc.g1.HeapRegionSetBase humongousSet
         6: .line 254
            aload 7 /* oldSet */
            invokevirtual sun.jvm.hotspot.gc.g1.HeapRegionSetBase.length:()J
            aload 8 /* archiveSet */
            invokevirtual sun.jvm.hotspot.gc.g1.HeapRegionSetBase.length:()J
            ladd
            aload 9 /* humongousSet */
            invokevirtual sun.jvm.hotspot.gc.g1.HeapRegionSetBase.length:()J
            ladd
            lstore 10 /* oldGenRegionNum */
        start local 10 // long oldGenRegionNum
         7: .line 255
            aload 0 /* this */
            ldc "G1 Heap:"
            aload 1 /* g1h */
            invokevirtual sun.jvm.hotspot.gc.g1.G1CollectedHeap.n_regions:()J
         8: .line 256
            aload 1 /* g1h */
            invokevirtual sun.jvm.hotspot.gc.g1.G1CollectedHeap.used:()J
            aload 1 /* g1h */
            invokevirtual sun.jvm.hotspot.gc.g1.G1CollectedHeap.capacity:()J
         9: .line 255
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printG1Space:(Ljava/lang/String;JJJ)V
        10: .line 257
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "G1 Young Generation:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 258
            aload 0 /* this */
            ldc "Eden Space:"
            lload 3 /* edenSpaceRegionNum */
        12: .line 259
            aload 2 /* g1mm */
            invokevirtual sun.jvm.hotspot.gc.g1.G1MonitoringSupport.edenSpaceUsed:()J
            aload 2 /* g1mm */
            invokevirtual sun.jvm.hotspot.gc.g1.G1MonitoringSupport.edenSpaceCommitted:()J
        13: .line 258
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printG1Space:(Ljava/lang/String;JJJ)V
        14: .line 260
            aload 0 /* this */
            ldc "Survivor Space:"
            lload 5 /* survivorSpaceRegionNum */
        15: .line 261
            aload 2 /* g1mm */
            invokevirtual sun.jvm.hotspot.gc.g1.G1MonitoringSupport.survivorSpaceUsed:()J
            aload 2 /* g1mm */
            invokevirtual sun.jvm.hotspot.gc.g1.G1MonitoringSupport.survivorSpaceCommitted:()J
        16: .line 260
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printG1Space:(Ljava/lang/String;JJJ)V
        17: .line 262
            aload 0 /* this */
            ldc "G1 Old Generation:"
            lload 10 /* oldGenRegionNum */
        18: .line 263
            aload 2 /* g1mm */
            invokevirtual sun.jvm.hotspot.gc.g1.G1MonitoringSupport.oldGenUsed:()J
            aload 2 /* g1mm */
            invokevirtual sun.jvm.hotspot.gc.g1.G1MonitoringSupport.oldGenCommitted:()J
        19: .line 262
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printG1Space:(Ljava/lang/String;JJJ)V
        20: .line 264
            return
        end local 10 // long oldGenRegionNum
        end local 9 // sun.jvm.hotspot.gc.g1.HeapRegionSetBase humongousSet
        end local 8 // sun.jvm.hotspot.gc.g1.HeapRegionSetBase archiveSet
        end local 7 // sun.jvm.hotspot.gc.g1.HeapRegionSetBase oldSet
        end local 5 // long survivorSpaceRegionNum
        end local 3 // long edenSpaceRegionNum
        end local 2 // sun.jvm.hotspot.gc.g1.G1MonitoringSupport g1mm
        end local 1 // sun.jvm.hotspot.gc.g1.G1CollectedHeap g1h
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   21     0                    this  Lsun/jvm/hotspot/tools/HeapSummary;
            0   21     1                     g1h  Lsun/jvm/hotspot/gc/g1/G1CollectedHeap;
            1   21     2                    g1mm  Lsun/jvm/hotspot/gc/g1/G1MonitoringSupport;
            2   21     3      edenSpaceRegionNum  J
            3   21     5  survivorSpaceRegionNum  J
            4   21     7                  oldSet  Lsun/jvm/hotspot/gc/g1/HeapRegionSetBase;
            5   21     8              archiveSet  Lsun/jvm/hotspot/gc/g1/HeapRegionSetBase;
            6   21     9            humongousSet  Lsun/jvm/hotspot/gc/g1/HeapRegionSetBase;
            7   21    10         oldGenRegionNum  J
    MethodParameters:
      Name  Flags
      g1h   

  private void printG1Space(java.lang.String, long, long, long);
    descriptor: (Ljava/lang/String;JJJ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=5
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
        start local 1 // java.lang.String spaceName
        start local 2 // long regionNum
        start local 4 // long used
        start local 6 // long capacity
         0: .line 268
            lload 6 /* capacity */
            lload 4 /* used */
            lsub
            lstore 8 /* free */
        start local 8 // long free
         1: .line 269
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 1 /* spaceName */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 270
            aload 0 /* this */
            ldc "regions  = "
            lload 2 /* regionNum */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValue:(Ljava/lang/String;J)V
         3: .line 271
            aload 0 /* this */
            ldc "capacity = "
            lload 6 /* capacity */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
         4: .line 272
            aload 0 /* this */
            ldc "used     = "
            lload 4 /* used */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
         5: .line 273
            aload 0 /* this */
            ldc "free     = "
            lload 8 /* free */
            invokevirtual sun.jvm.hotspot.tools.HeapSummary.printValMB:(Ljava/lang/String;J)V
         6: .line 274
            lload 6 /* capacity */
            lconst_0
            lcmp
            ifle 7
            lload 4 /* used */
            l2d
            ldc 100.0
            dmul
            lload 6 /* capacity */
            l2d
            ddiv
            goto 8
      StackMap locals: long
      StackMap stack:
         7: dconst_0
      StackMap locals:
      StackMap stack: double
         8: dstore 10 /* occPerc */
        start local 10 // double occPerc
         9: .line 275
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            getstatic sun.jvm.hotspot.tools.HeapSummary.alignment:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            dload 10 /* occPerc */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc "% used"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 276
            return
        end local 10 // double occPerc
        end local 8 // long free
        end local 6 // long capacity
        end local 4 // long used
        end local 2 // long regionNum
        end local 1 // java.lang.String spaceName
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lsun/jvm/hotspot/tools/HeapSummary;
            0   11     1  spaceName  Ljava/lang/String;
            0   11     2  regionNum  J
            0   11     4       used  J
            0   11     6   capacity  J
            1   11     8       free  J
            9   11    10    occPerc  D
    MethodParameters:
           Name  Flags
      spaceName  
      regionNum  
      used       
      capacity   

  private void printValMB(java.lang.String, long);
    descriptor: (Ljava/lang/String;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
        start local 1 // java.lang.String title
        start local 2 // long value
         0: .line 280
            lload 2 /* value */
            lconst_0
            lcmp
            ifge 3
         1: .line 281
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            getstatic sun.jvm.hotspot.tools.HeapSummary.alignment:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* title */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 2 /* value */
            bipush 20
            lushr
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " MB"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 282
            goto 5
         3: .line 283
      StackMap locals:
      StackMap stack:
            lload 2 /* value */
            l2d
            ldc 1048576.0
            ddiv
            dstore 4 /* mb */
        start local 4 // double mb
         4: .line 284
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            getstatic sun.jvm.hotspot.tools.HeapSummary.alignment:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* title */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 2 /* value */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            dload 4 /* mb */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc "MB)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 4 // double mb
         5: .line 286
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long value
        end local 1 // java.lang.String title
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lsun/jvm/hotspot/tools/HeapSummary;
            0    6     1  title  Ljava/lang/String;
            0    6     2  value  J
            4    5     4     mb  D
    MethodParameters:
       Name  Flags
      title  
      value  

  private void printValue(java.lang.String, long);
    descriptor: (Ljava/lang/String;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
        start local 1 // java.lang.String title
        start local 2 // long value
         0: .line 289
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            getstatic sun.jvm.hotspot.tools.HeapSummary.alignment:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* title */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 2 /* value */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 290
            return
        end local 2 // long value
        end local 1 // java.lang.String title
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lsun/jvm/hotspot/tools/HeapSummary;
            0    2     1  title  Ljava/lang/String;
            0    2     2  value  J
    MethodParameters:
       Name  Flags
      title  
      value  

  private long getFlagValue(java.lang.String, java.util.Map);
    descriptor: (Ljava/lang/String;Ljava/util/Map;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // sun.jvm.hotspot.tools.HeapSummary this
        start local 1 // java.lang.String name
        start local 2 // java.util.Map flagMap
         0: .line 293
            aload 2 /* flagMap */
            aload 1 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.jvm.hotspot.runtime.VM$Flag
            astore 3 /* f */
        start local 3 // sun.jvm.hotspot.runtime.VM$Flag f
         1: .line 294
            aload 3 /* f */
            ifnull 7
         2: .line 295
            aload 3 /* f */
            invokevirtual sun.jvm.hotspot.runtime.VM$Flag.isBool:()Z
            ifeq 6
         3: .line 296
            aload 3 /* f */
            invokevirtual sun.jvm.hotspot.runtime.VM$Flag.getBool:()Z
            ifeq 4
            lconst_1
            goto 5
      StackMap locals: sun.jvm.hotspot.runtime.VM$Flag
      StackMap stack:
         4: lconst_0
      StackMap locals:
      StackMap stack: long
         5: lreturn
         6: .line 298
      StackMap locals:
      StackMap stack:
            aload 3 /* f */
            invokevirtual sun.jvm.hotspot.runtime.VM$Flag.getValue:()Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lreturn
         7: .line 301
      StackMap locals:
      StackMap stack:
            ldc -1
            lreturn
        end local 3 // sun.jvm.hotspot.runtime.VM$Flag f
        end local 2 // java.util.Map flagMap
        end local 1 // java.lang.String name
        end local 0 // sun.jvm.hotspot.tools.HeapSummary this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lsun/jvm/hotspot/tools/HeapSummary;
            0    8     1     name  Ljava/lang/String;
            0    8     2  flagMap  Ljava/util/Map;
            1    8     3        f  Lsun/jvm/hotspot/runtime/VM$Flag;
    MethodParameters:
         Name  Flags
      name     
      flagMap  
}
SourceFile: "HeapSummary.java"
InnerClasses:
  public final Flag = sun.jvm.hotspot.runtime.VM$Flag of sun.jvm.hotspot.runtime.VM