public class sun.jvm.hotspot.tools.ObjectHistogram 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.ObjectHistogram
  super_class: sun.jvm.hotspot.tools.Tool
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.tools.ObjectHistogram this
         0: .line 38
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.tools.Tool.<init>:()V
         1: .line 39
            return
        end local 0 // sun.jvm.hotspot.tools.ObjectHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/tools/ObjectHistogram;

  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.ObjectHistogram this
        start local 1 // sun.jvm.hotspot.debugger.JVMDebugger d
         0: .line 42
            aload 0 /* this */
            aload 1 /* d */
            invokespecial sun.jvm.hotspot.tools.Tool.<init>:(Lsun/jvm/hotspot/debugger/JVMDebugger;)V
         1: .line 43
            return
        end local 1 // sun.jvm.hotspot.debugger.JVMDebugger d
        end local 0 // sun.jvm.hotspot.tools.ObjectHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/tools/ObjectHistogram;
            0    2     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.ObjectHistogram this
         0: .line 47
            ldc "objectHistogram"
            areturn
        end local 0 // sun.jvm.hotspot.tools.ObjectHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/tools/ObjectHistogram;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.tools.ObjectHistogram this
         0: .line 51
            aload 0 /* this */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual sun.jvm.hotspot.tools.ObjectHistogram.run:(Ljava/io/PrintStream;Ljava/io/PrintStream;)V
         1: .line 52
            return
        end local 0 // sun.jvm.hotspot.tools.ObjectHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/tools/ObjectHistogram;

  public void run(java.io.PrintStream, java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;Ljava/io/PrintStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // sun.jvm.hotspot.tools.ObjectHistogram this
        start local 1 // java.io.PrintStream out
        start local 2 // java.io.PrintStream err
         0: .line 56
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getObjectHeap:()Lsun/jvm/hotspot/oops/ObjectHeap;
            astore 3 /* heap */
        start local 3 // sun.jvm.hotspot.oops.ObjectHeap heap
         1: .line 58
            new sun.jvm.hotspot.oops.ObjectHistogram
            dup
            invokespecial sun.jvm.hotspot.oops.ObjectHistogram.<init>:()V
         2: .line 57
            astore 4 /* histogram */
        start local 4 // sun.jvm.hotspot.oops.ObjectHistogram histogram
         3: .line 59
            aload 2 /* err */
            ldc "Iterating over heap. This may take a while..."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 60
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 5 /* startTime */
        start local 5 // long startTime
         5: .line 61
            aload 3 /* heap */
            aload 4 /* histogram */
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.iterate:(Lsun/jvm/hotspot/oops/HeapVisitor;)V
         6: .line 62
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 7 /* endTime */
        start local 7 // long endTime
         7: .line 63
            aload 4 /* histogram */
            aload 1 /* out */
            invokevirtual sun.jvm.hotspot.oops.ObjectHistogram.printOn:(Ljava/io/PrintStream;)V
         8: .line 64
            lload 7 /* endTime */
            lload 5 /* startTime */
            lsub
            l2f
            ldc 1000.0
            fdiv
            fstore 9 /* secs */
        start local 9 // float secs
         9: .line 65
            aload 2 /* err */
            new java.lang.StringBuilder
            dup
            ldc "Heap traversal took "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            fload 9 /* secs */
            invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
            ldc " seconds."
            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 66
            return
        end local 9 // float secs
        end local 7 // long endTime
        end local 5 // long startTime
        end local 4 // sun.jvm.hotspot.oops.ObjectHistogram histogram
        end local 3 // sun.jvm.hotspot.oops.ObjectHeap heap
        end local 2 // java.io.PrintStream err
        end local 1 // java.io.PrintStream out
        end local 0 // sun.jvm.hotspot.tools.ObjectHistogram this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lsun/jvm/hotspot/tools/ObjectHistogram;
            0   11     1        out  Ljava/io/PrintStream;
            0   11     2        err  Ljava/io/PrintStream;
            1   11     3       heap  Lsun/jvm/hotspot/oops/ObjectHeap;
            3   11     4  histogram  Lsun/jvm/hotspot/oops/ObjectHistogram;
            5   11     5  startTime  J
            7   11     7    endTime  J
            9   11     9       secs  F
    MethodParameters:
      Name  Flags
      out   
      err   

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