public class sun.jvm.hotspot.tools.ClassLoaderStats 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.ClassLoaderStats
  super_class: sun.jvm.hotspot.tools.Tool
{
  boolean verbose;
    descriptor: Z
    flags: (0x0000) 

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.tools.ClassLoaderStats this
         0: .line 45
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.tools.Tool.<init>:()V
         1: .line 42
            aload 0 /* this */
            iconst_1
            putfield sun.jvm.hotspot.tools.ClassLoaderStats.verbose:Z
         2: .line 46
            return
        end local 0 // sun.jvm.hotspot.tools.ClassLoaderStats this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/tools/ClassLoaderStats;

  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.ClassLoaderStats this
        start local 1 // sun.jvm.hotspot.debugger.JVMDebugger d
         0: .line 49
            aload 0 /* this */
            aload 1 /* d */
            invokespecial sun.jvm.hotspot.tools.Tool.<init>:(Lsun/jvm/hotspot/debugger/JVMDebugger;)V
         1: .line 42
            aload 0 /* this */
            iconst_1
            putfield sun.jvm.hotspot.tools.ClassLoaderStats.verbose:Z
         2: .line 50
            return
        end local 1 // sun.jvm.hotspot.debugger.JVMDebugger d
        end local 0 // sun.jvm.hotspot.tools.ClassLoaderStats this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/tools/ClassLoaderStats;
            0    3     1     d  Lsun/jvm/hotspot/debugger/JVMDebugger;
    MethodParameters:
      Name  Flags
      d     

  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.ClassLoaderStats this
         0: .line 54
            ldc "classLoaderStats"
            areturn
        end local 0 // sun.jvm.hotspot.tools.ClassLoaderStats this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/tools/ClassLoaderStats;

  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 58
            new sun.jvm.hotspot.tools.ClassLoaderStats
            dup
            invokespecial sun.jvm.hotspot.tools.ClassLoaderStats.<init>:()V
            astore 1 /* cls */
        start local 1 // sun.jvm.hotspot.tools.ClassLoaderStats cls
         1: .line 59
            aload 1 /* cls */
            aload 0 /* args */
            invokevirtual sun.jvm.hotspot.tools.ClassLoaderStats.execute:([Ljava/lang/String;)V
         2: .line 60
            return
        end local 1 // sun.jvm.hotspot.tools.ClassLoaderStats cls
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  args  [Ljava/lang/String;
            1    3     1   cls  Lsun/jvm/hotspot/tools/ClassLoaderStats;
    MethodParameters:
      Name  Flags
      args  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.tools.ClassLoaderStats this
         0: .line 78
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.tools.ClassLoaderStats.printClassLoaderStatistics:()V
         1: .line 79
            return
        end local 0 // sun.jvm.hotspot.tools.ClassLoaderStats this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/tools/ClassLoaderStats;

  private void printClassLoaderStatistics();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=28, args_size=1
        start local 0 // sun.jvm.hotspot.tools.ClassLoaderStats this
         0: .line 82
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            astore 1 /* out */
        start local 1 // java.io.PrintStream out
         1: .line 83
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            astore 2 /* err */
        start local 2 // java.io.PrintStream err
         2: .line 84
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* loaderMap */
        start local 3 // java.util.Map loaderMap
         3: .line 86
            new sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData
            dup
            invokespecial sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData.<init>:()V
            astore 4 /* bootstrapLoaderData */
        start local 4 // sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData bootstrapLoaderData
         4: .line 87
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats.verbose:Z
            ifeq 6
         5: .line 88
            aload 2 /* err */
            ldc "finding class loader instances .."
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         6: .line 91
      StackMap locals: sun.jvm.hotspot.tools.ClassLoaderStats java.io.PrintStream java.io.PrintStream java.util.Map sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            astore 5 /* vm */
        start local 5 // sun.jvm.hotspot.runtime.VM vm
         7: .line 92
            aload 5 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getObjectHeap:()Lsun/jvm/hotspot/oops/ObjectHeap;
            astore 6 /* heap */
        start local 6 // sun.jvm.hotspot.oops.ObjectHeap heap
         8: .line 93
            aload 5 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getSystemDictionary:()Lsun/jvm/hotspot/memory/SystemDictionary;
            pop
            invokestatic sun.jvm.hotspot.memory.SystemDictionary.getClassLoaderKlass:()Lsun/jvm/hotspot/oops/InstanceKlass;
            astore 7 /* classLoaderKlass */
        start local 7 // sun.jvm.hotspot.oops.Klass classLoaderKlass
         9: .line 95
            aload 6 /* heap */
            new sun.jvm.hotspot.tools.ClassLoaderStats$1
            dup
            aload 0 /* this */
            aload 3 /* loaderMap */
            invokespecial sun.jvm.hotspot.tools.ClassLoaderStats$1.<init>:(Lsun/jvm/hotspot/tools/ClassLoaderStats;Ljava/util/Map;)V
        10: .line 100
            aload 7 /* classLoaderKlass */
        11: .line 95
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.iterateObjectsOfKlass:(Lsun/jvm/hotspot/oops/HeapVisitor;Lsun/jvm/hotspot/oops/Klass;)V
        12: .line 101
            goto 15
      StackMap locals: sun.jvm.hotspot.tools.ClassLoaderStats java.io.PrintStream java.io.PrintStream java.util.Map sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData sun.jvm.hotspot.runtime.VM sun.jvm.hotspot.oops.ObjectHeap sun.jvm.hotspot.oops.Klass
      StackMap stack: java.lang.Exception
        13: astore 8 /* se */
        start local 8 // java.lang.Exception se
        14: .line 102
            aload 8 /* se */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 8 // java.lang.Exception se
        15: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats.verbose:Z
            ifeq 18
        16: .line 106
            aload 2 /* err */
            ldc "done."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 107
            aload 2 /* err */
            ldc "computing per loader stat .."
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        18: .line 110
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getClassLoaderDataGraph:()Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            astore 8 /* cldg */
        start local 8 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldg
        19: .line 111
            aload 8 /* cldg */
            new sun.jvm.hotspot.tools.ClassLoaderStats$2
            dup
            aload 0 /* this */
            aload 3 /* loaderMap */
            aload 4 /* bootstrapLoaderData */
            invokespecial sun.jvm.hotspot.tools.ClassLoaderStats$2.<init>:(Lsun/jvm/hotspot/tools/ClassLoaderStats;Ljava/util/Map;Lsun/jvm/hotspot/tools/ClassLoaderStats$LoaderData;)V
            invokevirtual sun.jvm.hotspot.classfile.ClassLoaderDataGraph.classesDo:(Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph$ClassVisitor;)V
        20: .line 128
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats.verbose:Z
            ifeq 23
        21: .line 129
            aload 2 /* err */
            ldc "done."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        22: .line 130
            aload 2 /* err */
            ldc "please wait.. computing liveness"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        23: .line 134
      StackMap locals: sun.jvm.hotspot.classfile.ClassLoaderDataGraph
      StackMap stack:
            new sun.jvm.hotspot.utilities.ReversePtrsAnalysis
            dup
            invokespecial sun.jvm.hotspot.utilities.ReversePtrsAnalysis.<init>:()V
            astore 9 /* analysis */
        start local 9 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis analysis
        24: .line 136
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats.verbose:Z
            ifeq 26
        25: .line 137
            aload 9 /* analysis */
            new sun.jvm.hotspot.tools.ClassLoaderStats$3
            dup
            aload 0 /* this */
            aload 2 /* err */
            invokespecial sun.jvm.hotspot.tools.ClassLoaderStats$3.<init>:(Lsun/jvm/hotspot/tools/ClassLoaderStats;Ljava/io/PrintStream;)V
            invokevirtual sun.jvm.hotspot.utilities.ReversePtrsAnalysis.setHeapProgressThunk:(Lsun/jvm/hotspot/utilities/HeapProgressThunk;)V
        26: .line 149
      StackMap locals: sun.jvm.hotspot.utilities.ReversePtrsAnalysis
      StackMap stack:
            aload 9 /* analysis */
            invokevirtual sun.jvm.hotspot.utilities.ReversePtrsAnalysis.run:()V
        27: .line 150
            goto 31
      StackMap locals:
      StackMap stack: java.lang.Exception
        28: pop
        29: .line 152
            aload 0 /* this */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats.verbose:Z
            ifeq 31
        30: .line 153
            aload 2 /* err */
            ldc "liveness analysis may be inaccurate ..."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        31: .line 155
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getRevPtrs:()Lsun/jvm/hotspot/utilities/ReversePtrs;
            astore 10 /* liveness */
        start local 10 // sun.jvm.hotspot.utilities.ReversePtrs liveness
        32: .line 157
            aload 1 /* out */
            ldc "class_loader\tclasses\tbytes\tparent_loader\talive?\ttype"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        33: .line 158
            aload 1 /* out */
            invokevirtual java.io.PrintStream.println:()V
        34: .line 160
            lconst_1
            lstore 11 /* numClassLoaders */
        start local 11 // long numClassLoaders
        35: .line 161
            aload 4 /* bootstrapLoaderData */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData.numClasses:J
            lstore 13 /* totalNumClasses */
        start local 13 // long totalNumClasses
        36: .line 162
            aload 4 /* bootstrapLoaderData */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData.classSize:J
            lstore 15 /* totalClassSize */
        start local 15 // long totalClassSize
        37: .line 163
            lconst_1
            lstore 17 /* numAliveLoaders */
        start local 17 // long numAliveLoaders
        38: .line 164
            lconst_0
            lstore 19 /* numDeadLoaders */
        start local 19 // long numDeadLoaders
        39: .line 167
            aload 1 /* out */
            ldc "<bootstrap>"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        40: .line 168
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        41: .line 169
            aload 1 /* out */
            aload 4 /* bootstrapLoaderData */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData.numClasses:J
            invokevirtual java.io.PrintStream.print:(J)V
        42: .line 170
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        43: .line 171
            aload 1 /* out */
            aload 4 /* bootstrapLoaderData */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData.classSize:J
            invokevirtual java.io.PrintStream.print:(J)V
        44: .line 172
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        45: .line 173
            aload 1 /* out */
            ldc "  null  "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        46: .line 174
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        47: .line 176
            aload 1 /* out */
            ldc "live"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        48: .line 177
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        49: .line 178
            aload 1 /* out */
            ldc "<internal>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        50: .line 180
            aload 3 /* loaderMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 21 /* keyItr */
        start local 21 // java.util.Iterator keyItr
        51: goto 88
        52: .line 181
      StackMap locals: sun.jvm.hotspot.tools.ClassLoaderStats java.io.PrintStream java.io.PrintStream java.util.Map sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData sun.jvm.hotspot.runtime.VM sun.jvm.hotspot.oops.ObjectHeap sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.classfile.ClassLoaderDataGraph sun.jvm.hotspot.utilities.ReversePtrsAnalysis sun.jvm.hotspot.utilities.ReversePtrs long long long long long java.util.Iterator
      StackMap stack:
            aload 21 /* keyItr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Oop
            astore 22 /* loader */
        start local 22 // sun.jvm.hotspot.oops.Oop loader
        53: .line 182
            aload 3 /* loaderMap */
            aload 22 /* loader */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData
            astore 23 /* data */
        start local 23 // sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData data
        54: .line 183
            lload 11 /* numClassLoaders */
            lconst_1
            ladd
            lstore 11 /* numClassLoaders */
        55: .line 184
            lload 13 /* totalNumClasses */
            aload 23 /* data */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData.numClasses:J
            ladd
            lstore 13 /* totalNumClasses */
        56: .line 185
            lload 15 /* totalClassSize */
            aload 23 /* data */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData.classSize:J
            ladd
            lstore 15 /* totalClassSize */
        57: .line 187
            aload 1 /* out */
            aload 22 /* loader */
            invokevirtual sun.jvm.hotspot.oops.Oop.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/Object;)V
        58: .line 188
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        59: .line 189
            aload 1 /* out */
            aload 23 /* data */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData.numClasses:J
            invokevirtual java.io.PrintStream.print:(J)V
        60: .line 190
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        61: .line 191
            aload 1 /* out */
            aload 23 /* data */
            getfield sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData.classSize:J
            invokevirtual java.io.PrintStream.print:(J)V
        62: .line 192
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        63: .line 204
            new sun.jvm.hotspot.tools.ClassLoaderStats$1ParentFinder
            dup
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.tools.ClassLoaderStats$1ParentFinder.<init>:(Lsun/jvm/hotspot/tools/ClassLoaderStats;)V
            astore 24 /* parentFinder */
        start local 24 // sun.jvm.hotspot.tools.ClassLoaderStats$1ParentFinder parentFinder
        64: .line 205
            aload 22 /* loader */
            aload 24 /* parentFinder */
            iconst_0
            invokevirtual sun.jvm.hotspot.oops.Oop.iterate:(Lsun/jvm/hotspot/oops/OopVisitor;Z)V
        65: .line 206
            aload 24 /* parentFinder */
            invokevirtual sun.jvm.hotspot.tools.ClassLoaderStats$1ParentFinder.getParent:()Lsun/jvm/hotspot/oops/Oop;
            astore 25 /* parent */
        start local 25 // sun.jvm.hotspot.oops.Oop parent
        66: .line 207
            aload 1 /* out */
            aload 25 /* parent */
            ifnull 67
            aload 25 /* parent */
            invokevirtual sun.jvm.hotspot.oops.Oop.getHandle:()Lsun/jvm/hotspot/debugger/OopHandle;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            goto 68
      StackMap locals: sun.jvm.hotspot.tools.ClassLoaderStats java.io.PrintStream java.io.PrintStream java.util.Map sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData sun.jvm.hotspot.runtime.VM sun.jvm.hotspot.oops.ObjectHeap sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.classfile.ClassLoaderDataGraph sun.jvm.hotspot.utilities.ReversePtrsAnalysis sun.jvm.hotspot.utilities.ReversePtrs long long long long long java.util.Iterator sun.jvm.hotspot.oops.Oop sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData sun.jvm.hotspot.tools.ClassLoaderStats$1ParentFinder sun.jvm.hotspot.oops.Oop
      StackMap stack: java.io.PrintStream
        67: ldc "  null  "
      StackMap locals: sun.jvm.hotspot.tools.ClassLoaderStats java.io.PrintStream java.io.PrintStream java.util.Map sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData sun.jvm.hotspot.runtime.VM sun.jvm.hotspot.oops.ObjectHeap sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.classfile.ClassLoaderDataGraph sun.jvm.hotspot.utilities.ReversePtrsAnalysis sun.jvm.hotspot.utilities.ReversePtrs long long long long long java.util.Iterator sun.jvm.hotspot.oops.Oop sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData sun.jvm.hotspot.tools.ClassLoaderStats$1ParentFinder sun.jvm.hotspot.oops.Oop
      StackMap stack: java.io.PrintStream java.lang.String
        68: invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        69: .line 208
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        70: .line 209
            aload 10 /* liveness */
            ifnull 72
            aload 10 /* liveness */
            aload 22 /* loader */
            invokevirtual sun.jvm.hotspot.utilities.ReversePtrs.get:(Lsun/jvm/hotspot/oops/Oop;)Ljava/util/ArrayList;
            ifnull 71
            iconst_1
            goto 73
      StackMap locals:
      StackMap stack:
        71: iconst_0
            goto 73
      StackMap locals:
      StackMap stack:
        72: iconst_1
      StackMap locals:
      StackMap stack: int
        73: istore 26 /* alive */
        start local 26 // boolean alive
        74: .line 210
            aload 1 /* out */
            iload 26 /* alive */
            ifeq 75
            ldc "live"
            goto 76
      StackMap locals: sun.jvm.hotspot.tools.ClassLoaderStats java.io.PrintStream java.io.PrintStream java.util.Map sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData sun.jvm.hotspot.runtime.VM sun.jvm.hotspot.oops.ObjectHeap sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.classfile.ClassLoaderDataGraph sun.jvm.hotspot.utilities.ReversePtrsAnalysis sun.jvm.hotspot.utilities.ReversePtrs long long long long long java.util.Iterator sun.jvm.hotspot.oops.Oop sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData sun.jvm.hotspot.tools.ClassLoaderStats$1ParentFinder sun.jvm.hotspot.oops.Oop int
      StackMap stack: java.io.PrintStream
        75: ldc "dead"
      StackMap locals: sun.jvm.hotspot.tools.ClassLoaderStats java.io.PrintStream java.io.PrintStream java.util.Map sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData sun.jvm.hotspot.runtime.VM sun.jvm.hotspot.oops.ObjectHeap sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.classfile.ClassLoaderDataGraph sun.jvm.hotspot.utilities.ReversePtrsAnalysis sun.jvm.hotspot.utilities.ReversePtrs long long long long long java.util.Iterator sun.jvm.hotspot.oops.Oop sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData sun.jvm.hotspot.tools.ClassLoaderStats$1ParentFinder sun.jvm.hotspot.oops.Oop int
      StackMap stack: java.io.PrintStream java.lang.String
        76: invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        77: .line 211
            iload 26 /* alive */
            ifeq 78
            lload 17 /* numAliveLoaders */
            lconst_1
            ladd
            lstore 17 /* numAliveLoaders */
            goto 79
      StackMap locals:
      StackMap stack:
        78: lload 19 /* numDeadLoaders */
            lconst_1
            ladd
            lstore 19 /* numDeadLoaders */
        79: .line 212
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        80: .line 213
            aload 22 /* loader */
            invokevirtual sun.jvm.hotspot.oops.Oop.getKlass:()Lsun/jvm/hotspot/oops/Klass;
            astore 27 /* loaderKlass */
        start local 27 // sun.jvm.hotspot.oops.Klass loaderKlass
        81: .line 214
            aload 27 /* loaderKlass */
            ifnull 86
        82: .line 215
            aload 1 /* out */
            aload 27 /* loaderKlass */
            invokevirtual sun.jvm.hotspot.oops.Klass.getName:()Lsun/jvm/hotspot/oops/Symbol;
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        83: .line 216
            aload 1 /* out */
            bipush 64
            invokevirtual java.io.PrintStream.print:(C)V
        84: .line 217
            aload 1 /* out */
            aload 22 /* loader */
            invokevirtual sun.jvm.hotspot.oops.Oop.getKlass:()Lsun/jvm/hotspot/oops/Klass;
            invokevirtual sun.jvm.hotspot.oops.Klass.getAddress:()Lsun/jvm/hotspot/debugger/Address;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/Object;)V
        85: .line 218
            goto 87
        86: .line 219
      StackMap locals: sun.jvm.hotspot.oops.Klass
      StackMap stack:
            aload 1 /* out */
            ldc "    null!    "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        87: .line 221
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            invokevirtual java.io.PrintStream.println:()V
        end local 27 // sun.jvm.hotspot.oops.Klass loaderKlass
        end local 26 // boolean alive
        end local 25 // sun.jvm.hotspot.oops.Oop parent
        end local 24 // sun.jvm.hotspot.tools.ClassLoaderStats$1ParentFinder parentFinder
        end local 23 // sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData data
        end local 22 // sun.jvm.hotspot.oops.Oop loader
        88: .line 180
      StackMap locals: sun.jvm.hotspot.tools.ClassLoaderStats java.io.PrintStream java.io.PrintStream java.util.Map sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData sun.jvm.hotspot.runtime.VM sun.jvm.hotspot.oops.ObjectHeap sun.jvm.hotspot.oops.Klass sun.jvm.hotspot.classfile.ClassLoaderDataGraph sun.jvm.hotspot.utilities.ReversePtrsAnalysis sun.jvm.hotspot.utilities.ReversePtrs long long long long long java.util.Iterator
      StackMap stack:
            aload 21 /* keyItr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 52
        end local 21 // java.util.Iterator keyItr
        89: .line 224
            aload 1 /* out */
            invokevirtual java.io.PrintStream.println:()V
        90: .line 226
            aload 1 /* out */
            ldc "total = "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        91: .line 227
            aload 1 /* out */
            lload 11 /* numClassLoaders */
            invokevirtual java.io.PrintStream.print:(J)V
        92: .line 228
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        93: .line 229
            aload 1 /* out */
            lload 13 /* totalNumClasses */
            invokevirtual java.io.PrintStream.print:(J)V
        94: .line 230
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        95: .line 231
            aload 1 /* out */
            lload 15 /* totalClassSize */
            invokevirtual java.io.PrintStream.print:(J)V
        96: .line 232
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        97: .line 233
            aload 1 /* out */
            ldc "    N/A    "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        98: .line 234
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
        99: .line 235
            aload 1 /* out */
            ldc "alive="
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
       100: .line 236
            aload 1 /* out */
            lload 17 /* numAliveLoaders */
            invokevirtual java.io.PrintStream.print:(J)V
       101: .line 237
            aload 1 /* out */
            ldc ", dead="
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
       102: .line 238
            aload 1 /* out */
            lload 19 /* numDeadLoaders */
            invokevirtual java.io.PrintStream.print:(J)V
       103: .line 239
            aload 1 /* out */
            bipush 9
            invokevirtual java.io.PrintStream.print:(C)V
       104: .line 240
            aload 1 /* out */
            ldc "    N/A    "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
       105: .line 241
            aload 1 /* out */
            invokevirtual java.io.PrintStream.println:()V
       106: .line 242
            return
        end local 19 // long numDeadLoaders
        end local 17 // long numAliveLoaders
        end local 15 // long totalClassSize
        end local 13 // long totalNumClasses
        end local 11 // long numClassLoaders
        end local 10 // sun.jvm.hotspot.utilities.ReversePtrs liveness
        end local 9 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis analysis
        end local 8 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldg
        end local 7 // sun.jvm.hotspot.oops.Klass classLoaderKlass
        end local 6 // sun.jvm.hotspot.oops.ObjectHeap heap
        end local 5 // sun.jvm.hotspot.runtime.VM vm
        end local 4 // sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData bootstrapLoaderData
        end local 3 // java.util.Map loaderMap
        end local 2 // java.io.PrintStream err
        end local 1 // java.io.PrintStream out
        end local 0 // sun.jvm.hotspot.tools.ClassLoaderStats this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  107     0                 this  Lsun/jvm/hotspot/tools/ClassLoaderStats;
            1  107     1                  out  Ljava/io/PrintStream;
            2  107     2                  err  Ljava/io/PrintStream;
            3  107     3            loaderMap  Ljava/util/Map<Lsun/jvm/hotspot/oops/Oop;Lsun/jvm/hotspot/tools/ClassLoaderStats$LoaderData;>;
            4  107     4  bootstrapLoaderData  Lsun/jvm/hotspot/tools/ClassLoaderStats$LoaderData;
            7  107     5                   vm  Lsun/jvm/hotspot/runtime/VM;
            8  107     6                 heap  Lsun/jvm/hotspot/oops/ObjectHeap;
            9  107     7     classLoaderKlass  Lsun/jvm/hotspot/oops/Klass;
           14   15     8                   se  Ljava/lang/Exception;
           19  107     8                 cldg  Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
           24  107     9             analysis  Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;
           32  107    10             liveness  Lsun/jvm/hotspot/utilities/ReversePtrs;
           35  107    11      numClassLoaders  J
           36  107    13      totalNumClasses  J
           37  107    15       totalClassSize  J
           38  107    17      numAliveLoaders  J
           39  107    19       numDeadLoaders  J
           51   89    21               keyItr  Ljava/util/Iterator;
           53   88    22               loader  Lsun/jvm/hotspot/oops/Oop;
           54   88    23                 data  Lsun/jvm/hotspot/tools/ClassLoaderStats$LoaderData;
           64   88    24         parentFinder  Lsun/jvm/hotspot/tools/ClassLoaderStats$1ParentFinder;
           66   88    25               parent  Lsun/jvm/hotspot/oops/Oop;
           74   88    26                alive  Z
           81   88    27          loaderKlass  Lsun/jvm/hotspot/oops/Klass;
      Exception table:
        from    to  target  type
           9    12      13  Class java.lang.Exception
          26    27      28  Class java.lang.Exception

  private static long objectSize(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Oop oop
         0: .line 245
            aload 0 /* oop */
            ifnonnull 1
            lconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* oop */
            invokevirtual sun.jvm.hotspot.oops.Oop.getObjectSize:()J
      StackMap locals:
      StackMap stack: long
         2: lreturn
        end local 0 // sun.jvm.hotspot.oops.Oop oop
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   oop  Lsun/jvm/hotspot/oops/Oop;
    MethodParameters:
      Name  Flags
      oop   

  private static long arraySize(sun.jvm.hotspot.utilities.GenericArray);
    descriptor: (Lsun/jvm/hotspot/utilities/GenericArray;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.GenericArray arr
         0: .line 250
            aload 0 /* arr */
            invokevirtual sun.jvm.hotspot.utilities.GenericArray.getLength:()I
            i2l
            lconst_0
            lcmp
            ifeq 1
            aload 0 /* arr */
            invokevirtual sun.jvm.hotspot.utilities.GenericArray.getSize:()J
            goto 2
      StackMap locals:
      StackMap stack:
         1: lconst_0
      StackMap locals:
      StackMap stack: long
         2: lreturn
        end local 0 // sun.jvm.hotspot.utilities.GenericArray arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   arr  Lsun/jvm/hotspot/utilities/GenericArray;
    MethodParameters:
      Name  Flags
      arr   

  private long computeSize(sun.jvm.hotspot.oops.InstanceKlass);
    descriptor: (Lsun/jvm/hotspot/oops/InstanceKlass;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // sun.jvm.hotspot.tools.ClassLoaderStats this
        start local 1 // sun.jvm.hotspot.oops.InstanceKlass k
         0: .line 254
            lconst_0
            lstore 2 /* size */
        start local 2 // long size
         1: .line 256
            lload 2 /* size */
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getSize:()J
            ladd
            lstore 2 /* size */
         2: .line 259
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getConstants:()Lsun/jvm/hotspot/oops/ConstantPool;
            astore 4 /* cp */
        start local 4 // sun.jvm.hotspot.oops.ConstantPool cp
         3: .line 260
            lload 2 /* size */
            aload 4 /* cp */
            invokevirtual sun.jvm.hotspot.oops.ConstantPool.getSize:()J
            ladd
            lstore 2 /* size */
         4: .line 261
            aload 4 /* cp */
            invokevirtual sun.jvm.hotspot.oops.ConstantPool.getCache:()Lsun/jvm/hotspot/oops/ConstantPoolCache;
            ifnull 6
         5: .line 262
            lload 2 /* size */
            aload 4 /* cp */
            invokevirtual sun.jvm.hotspot.oops.ConstantPool.getCache:()Lsun/jvm/hotspot/oops/ConstantPoolCache;
            invokevirtual sun.jvm.hotspot.oops.ConstantPoolCache.getSize:()J
            ladd
            lstore 2 /* size */
         6: .line 264
      StackMap locals: long sun.jvm.hotspot.oops.ConstantPool
      StackMap stack:
            lload 2 /* size */
            aload 4 /* cp */
            invokevirtual sun.jvm.hotspot.oops.ConstantPool.getTags:()Lsun/jvm/hotspot/utilities/U1Array;
            invokestatic sun.jvm.hotspot.tools.ClassLoaderStats.arraySize:(Lsun/jvm/hotspot/utilities/GenericArray;)J
            ladd
            lstore 2 /* size */
         7: .line 267
            lload 2 /* size */
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getLocalInterfaces:()Lsun/jvm/hotspot/utilities/KlassArray;
            invokestatic sun.jvm.hotspot.tools.ClassLoaderStats.arraySize:(Lsun/jvm/hotspot/utilities/GenericArray;)J
            ladd
            lstore 2 /* size */
         8: .line 268
            lload 2 /* size */
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getTransitiveInterfaces:()Lsun/jvm/hotspot/utilities/KlassArray;
            invokestatic sun.jvm.hotspot.tools.ClassLoaderStats.arraySize:(Lsun/jvm/hotspot/utilities/GenericArray;)J
            ladd
            lstore 2 /* size */
         9: .line 271
            lload 2 /* size */
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getInnerClasses:()Lsun/jvm/hotspot/utilities/U2Array;
            invokestatic sun.jvm.hotspot.tools.ClassLoaderStats.arraySize:(Lsun/jvm/hotspot/utilities/GenericArray;)J
            ladd
            lstore 2 /* size */
        10: .line 274
            lload 2 /* size */
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getFields:()Lsun/jvm/hotspot/utilities/U2Array;
            invokestatic sun.jvm.hotspot.tools.ClassLoaderStats.arraySize:(Lsun/jvm/hotspot/utilities/GenericArray;)J
            ladd
            lstore 2 /* size */
        11: .line 277
            aload 1 /* k */
            invokevirtual sun.jvm.hotspot.oops.InstanceKlass.getMethods:()Lsun/jvm/hotspot/utilities/MethodArray;
            astore 5 /* methods */
        start local 5 // sun.jvm.hotspot.utilities.MethodArray methods
        12: .line 278
            aload 5 /* methods */
            invokevirtual sun.jvm.hotspot.utilities.MethodArray.getLength:()I
            istore 6 /* nmethods */
        start local 6 // int nmethods
        13: .line 279
            iload 6 /* nmethods */
            i2l
            lconst_0
            lcmp
            ifeq 22
        14: .line 280
            lload 2 /* size */
            aload 5 /* methods */
            invokevirtual sun.jvm.hotspot.utilities.MethodArray.getSize:()J
            ladd
            lstore 2 /* size */
        15: .line 281
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        16: goto 21
        17: .line 282
      StackMap locals: sun.jvm.hotspot.utilities.MethodArray int int
      StackMap stack:
            aload 5 /* methods */
            iload 7 /* i */
            invokevirtual sun.jvm.hotspot.utilities.MethodArray.at:(I)Lsun/jvm/hotspot/oops/Method;
            astore 8 /* m */
        start local 8 // sun.jvm.hotspot.oops.Method m
        18: .line 283
            lload 2 /* size */
            aload 8 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getSize:()J
            ladd
            lstore 2 /* size */
        19: .line 284
            lload 2 /* size */
            aload 8 /* m */
            invokevirtual sun.jvm.hotspot.oops.Method.getConstMethod:()Lsun/jvm/hotspot/oops/ConstMethod;
            invokevirtual sun.jvm.hotspot.oops.ConstMethod.getSize:()J
            ladd
            lstore 2 /* size */
        end local 8 // sun.jvm.hotspot.oops.Method m
        20: .line 281
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 7 /* i */
            iload 6 /* nmethods */
            if_icmplt 17
        end local 7 // int i
        22: .line 288
      StackMap locals:
      StackMap stack:
            lload 2 /* size */
            lreturn
        end local 6 // int nmethods
        end local 5 // sun.jvm.hotspot.utilities.MethodArray methods
        end local 4 // sun.jvm.hotspot.oops.ConstantPool cp
        end local 2 // long size
        end local 1 // sun.jvm.hotspot.oops.InstanceKlass k
        end local 0 // sun.jvm.hotspot.tools.ClassLoaderStats this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Lsun/jvm/hotspot/tools/ClassLoaderStats;
            0   23     1         k  Lsun/jvm/hotspot/oops/InstanceKlass;
            1   23     2      size  J
            3   23     4        cp  Lsun/jvm/hotspot/oops/ConstantPool;
           12   23     5   methods  Lsun/jvm/hotspot/utilities/MethodArray;
           13   23     6  nmethods  I
           16   22     7         i  I
           18   20     8         m  Lsun/jvm/hotspot/oops/Method;
    MethodParameters:
      Name  Flags
      k     
}
SourceFile: "ClassLoaderStats.java"
NestMembers:
  sun.jvm.hotspot.tools.ClassLoaderStats$1  sun.jvm.hotspot.tools.ClassLoaderStats$1ParentFinder  sun.jvm.hotspot.tools.ClassLoaderStats$2  sun.jvm.hotspot.tools.ClassLoaderStats$3  sun.jvm.hotspot.tools.ClassLoaderStats$ClassData  sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData
InnerClasses:
  public abstract ClassVisitor = sun.jvm.hotspot.classfile.ClassLoaderDataGraph$ClassVisitor of sun.jvm.hotspot.classfile.ClassLoaderDataGraph
  sun.jvm.hotspot.tools.ClassLoaderStats$1
  ParentFinder = sun.jvm.hotspot.tools.ClassLoaderStats$1ParentFinder
  sun.jvm.hotspot.tools.ClassLoaderStats$2
  sun.jvm.hotspot.tools.ClassLoaderStats$3
  private ClassData = sun.jvm.hotspot.tools.ClassLoaderStats$ClassData of sun.jvm.hotspot.tools.ClassLoaderStats
  private LoaderData = sun.jvm.hotspot.tools.ClassLoaderStats$LoaderData of sun.jvm.hotspot.tools.ClassLoaderStats