class org.openjdk.jmh.profile.GCProfiler$VMSupport
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.openjdk.jmh.profile.GCProfiler$VMSupport
  super_class: java.lang.Object
{
  private static final boolean ALLOC_AVAILABLE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static java.lang.management.ThreadMXBean ALLOC_MX_BEAN;
    descriptor: Ljava/lang/management/ThreadMXBean;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.reflect.Method ALLOC_MX_BEAN_GETTER;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final boolean CHURN_AVAILABLE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static javax.management.NotificationListener listener;
    descriptor: Ljavax/management/NotificationListener;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.openjdk.jmh.util.Multiset<java.lang.String> churn;
    descriptor: Lorg/openjdk/jmh/util/Multiset;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Lorg/openjdk/jmh/util/Multiset<Ljava/lang/String;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 210
            invokestatic org.openjdk.jmh.profile.GCProfiler$VMSupport.tryInitAlloc:()Z
            putstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.ALLOC_AVAILABLE:Z
         1: .line 211
            invokestatic org.openjdk.jmh.profile.GCProfiler$VMSupport.tryInitChurn:()Z
            putstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.CHURN_AVAILABLE:Z
         2: .line 212
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.openjdk.jmh.profile.GCProfiler$VMSupport this
         0: .line 201
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.openjdk.jmh.profile.GCProfiler$VMSupport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/openjdk/jmh/profile/GCProfiler$VMSupport;

  private static boolean tryInitAlloc();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=0
         0: .line 216
            ldc "com.sun.management.ThreadMXBean"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 0 /* internalIntf */
        start local 0 // java.lang.Class internalIntf
         1: .line 217
            invokestatic java.lang.management.ManagementFactory.getThreadMXBean:()Ljava/lang/management/ThreadMXBean;
            astore 1 /* bean */
        start local 1 // java.lang.management.ThreadMXBean bean
         2: .line 218
            aload 0 /* internalIntf */
            aload 1 /* bean */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 8
         3: .line 219
            ldc "java.lang.management.PlatformManagedObject"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* pmo */
        start local 2 // java.lang.Class pmo
         4: .line 220
            ldc Ljava/lang/management/ManagementFactory;
            ldc "getPlatformMXBean"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            dup
            iconst_1
            aload 2 /* pmo */
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 3 /* m */
        start local 3 // java.lang.reflect.Method m
         5: .line 221
            aload 3 /* m */
            aconst_null
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* internalIntf */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.management.ThreadMXBean
            astore 1 /* bean */
         6: .line 222
            aload 1 /* bean */
            ifnonnull 8
         7: .line 223
            new java.lang.UnsupportedOperationException
            dup
            ldc "No way to access private ThreadMXBean"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.reflect.Method m
        end local 2 // java.lang.Class pmo
         8: .line 227
      StackMap locals: java.lang.Class java.lang.management.ThreadMXBean
      StackMap stack:
            aload 1 /* bean */
            putstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.ALLOC_MX_BEAN:Ljava/lang/management/ThreadMXBean;
         9: .line 228
            aload 0 /* internalIntf */
            ldc "getThreadAllocatedBytes"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc [J
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.ALLOC_MX_BEAN_GETTER:Ljava/lang/reflect/Method;
        10: .line 229
            aload 1 /* bean */
            invokeinterface java.lang.management.ThreadMXBean.getAllThreadIds:()[J
            invokestatic org.openjdk.jmh.profile.GCProfiler$VMSupport.getAllocatedBytes:([J)[J
            pop
        11: .line 231
            iconst_1
            ireturn
        end local 1 // java.lang.management.ThreadMXBean bean
        end local 0 // java.lang.Class internalIntf
        12: .line 232
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 0 /* e */
        start local 0 // java.lang.Throwable e
        13: .line 233
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Allocation profiling is not available: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* e */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            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 0 // java.lang.Throwable e
        14: .line 235
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            1   12     0  internalIntf  Ljava/lang/Class<*>;
            2   12     1          bean  Ljava/lang/management/ThreadMXBean;
            4    8     2           pmo  Ljava/lang/Class<*>;
            5    8     3             m  Ljava/lang/reflect/Method;
           13   14     0             e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0    11      12  Class java.lang.Throwable

  private static boolean tryInitChurn();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=0
         0: .line 240
            invokestatic java.lang.management.ManagementFactory.getGarbageCollectorMXBeans:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 1
            goto 4
      StackMap locals: top java.util.Iterator
      StackMap stack:
         1: aload 1
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.management.GarbageCollectorMXBean
            astore 0 /* bean */
        start local 0 // java.lang.management.GarbageCollectorMXBean bean
         2: .line 241
            aload 0 /* bean */
            instanceof javax.management.NotificationEmitter
            ifne 4
         3: .line 242
            new java.lang.UnsupportedOperationException
            dup
            ldc "GarbageCollectorMXBean cannot notify"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.management.GarbageCollectorMXBean bean
         4: .line 240
      StackMap locals:
      StackMap stack:
            aload 1
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 245
            invokestatic org.openjdk.jmh.profile.GCProfiler$VMSupport.newListener:()Ljavax/management/NotificationListener;
            pop
         6: .line 246
            iconst_1
            ireturn
         7: .line 247
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 0 /* e */
        start local 0 // java.lang.Throwable e
         8: .line 248
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Churn profiling is not available: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* e */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            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 0 // java.lang.Throwable e
         9: .line 251
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2    4     0  bean  Ljava/lang/management/GarbageCollectorMXBean;
            8    9     0     e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     6       7  Class java.lang.Throwable

  private static long[] getAllocatedBytes(long[]);
    descriptor: ([J)[J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // long[] threadIds
         0: .line 256
            getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.ALLOC_MX_BEAN_GETTER:Ljava/lang/reflect/Method;
            getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.ALLOC_MX_BEAN:Ljava/lang/management/ThreadMXBean;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* threadIds */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast long[]
         1: areturn
         2: .line 257
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 1 /* e */
        start local 1 // java.lang.ReflectiveOperationException e
         3: .line 258
            new java.lang.IllegalStateException
            dup
            aload 1 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.ReflectiveOperationException e
        end local 0 // long[] threadIds
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  threadIds  [J
            3    4     1          e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.reflect.InvocationTargetException
           0     1       2  Class java.lang.IllegalAccessException
    MethodParameters:
           Name  Flags
      threadIds  

  private static javax.management.NotificationListener newListener();
    descriptor: ()Ljavax/management/NotificationListener;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=0
         0: .line 263
            new org.openjdk.jmh.util.HashMultiset
            dup
            invokespecial org.openjdk.jmh.util.HashMultiset.<init>:()V
            putstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.churn:Lorg/openjdk/jmh/util/Multiset;
         1: .line 265
            ldc "com.sun.management.GarbageCollectionNotificationInfo"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 0 /* infoKlass */
        start local 0 // java.lang.Class infoKlass
         2: .line 266
            aload 0 /* infoKlass */
            ldc "GARBAGE_COLLECTION_NOTIFICATION"
            invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 1 /* notifNameField */
        start local 1 // java.lang.reflect.Field notifNameField
         3: .line 267
            aload 0 /* infoKlass */
            ldc "from"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljavax/management/openmbean/CompositeData;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 2 /* infoMethod */
        start local 2 // java.lang.reflect.Method infoMethod
         4: .line 268
            aload 0 /* infoKlass */
            ldc "getGcInfo"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 3 /* getGcInfo */
        start local 3 // java.lang.reflect.Method getGcInfo
         5: .line 269
            aload 3 /* getGcInfo */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            ldc "getMemoryUsageBeforeGc"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 4 /* getMemoryUsageBeforeGc */
        start local 4 // java.lang.reflect.Method getMemoryUsageBeforeGc
         6: .line 270
            aload 3 /* getGcInfo */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            ldc "getMemoryUsageAfterGc"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 5 /* getMemoryUsageAfterGc */
        start local 5 // java.lang.reflect.Method getMemoryUsageAfterGc
         7: .line 272
            new org.openjdk.jmh.profile.GCProfiler$VMSupport$1
            dup
            aload 1 /* notifNameField */
            aload 2 /* infoMethod */
            aload 3 /* getGcInfo */
            aload 4 /* getMemoryUsageBeforeGc */
            aload 5 /* getMemoryUsageAfterGc */
            invokespecial org.openjdk.jmh.profile.GCProfiler$VMSupport$1.<init>:(Ljava/lang/reflect/Field;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
         8: areturn
        end local 5 // java.lang.reflect.Method getMemoryUsageAfterGc
        end local 4 // java.lang.reflect.Method getMemoryUsageBeforeGc
        end local 3 // java.lang.reflect.Method getGcInfo
        end local 2 // java.lang.reflect.Method infoMethod
        end local 1 // java.lang.reflect.Field notifNameField
        end local 0 // java.lang.Class infoKlass
         9: .line 296
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 0 /* e */
        start local 0 // java.lang.Throwable e
        10: .line 297
            new java.lang.IllegalStateException
            dup
            aload 0 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.lang.Throwable e
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            2    9     0               infoKlass  Ljava/lang/Class<*>;
            3    9     1          notifNameField  Ljava/lang/reflect/Field;
            4    9     2              infoMethod  Ljava/lang/reflect/Method;
            5    9     3               getGcInfo  Ljava/lang/reflect/Method;
            6    9     4  getMemoryUsageBeforeGc  Ljava/lang/reflect/Method;
            7    9     5   getMemoryUsageAfterGc  Ljava/lang/reflect/Method;
           10   11     0                       e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     8       9  Class java.lang.Throwable

  public static org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot getSnapshot();
    descriptor: ()Lorg/openjdk/jmh/profile/GCProfiler$HotspotAllocationSnapshot;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=0
         0: .line 302
            getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.ALLOC_AVAILABLE:Z
            ifne 1
            getstatic org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot.EMPTY:Lorg/openjdk/jmh/profile/GCProfiler$HotspotAllocationSnapshot;
            areturn
         1: .line 303
      StackMap locals:
      StackMap stack:
            getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.ALLOC_MX_BEAN:Ljava/lang/management/ThreadMXBean;
            invokeinterface java.lang.management.ThreadMXBean.getAllThreadIds:()[J
            astore 0 /* threadIds */
        start local 0 // long[] threadIds
         2: .line 304
            aload 0 /* threadIds */
            invokestatic org.openjdk.jmh.profile.GCProfiler$VMSupport.getAllocatedBytes:([J)[J
            astore 1 /* allocatedBytes */
        start local 1 // long[] allocatedBytes
         3: .line 305
            new org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot
            dup
            aload 0 /* threadIds */
            aload 1 /* allocatedBytes */
            invokespecial org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot.<init>:([J[J)V
            areturn
        end local 1 // long[] allocatedBytes
        end local 0 // long[] threadIds
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            2    4     0       threadIds  [J
            3    4     1  allocatedBytes  [J

  public static synchronized void startChurnProfile();
    descriptor: ()V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=2, args_size=0
         0: .line 309
            getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.CHURN_AVAILABLE:Z
            ifne 1
            return
         1: .line 310
      StackMap locals:
      StackMap stack:
            getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.listener:Ljavax/management/NotificationListener;
            ifnull 3
         2: .line 311
            new java.lang.IllegalStateException
            dup
            ldc "Churn profile already started"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 313
      StackMap locals:
      StackMap stack:
            invokestatic org.openjdk.jmh.profile.GCProfiler$VMSupport.newListener:()Ljavax/management/NotificationListener;
            putstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.listener:Ljavax/management/NotificationListener;
         4: .line 315
            invokestatic java.lang.management.ManagementFactory.getGarbageCollectorMXBeans:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 1
            goto 7
      StackMap locals: top java.util.Iterator
      StackMap stack:
         5: aload 1
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.management.GarbageCollectorMXBean
            astore 0 /* bean */
        start local 0 // java.lang.management.GarbageCollectorMXBean bean
         6: .line 316
            aload 0 /* bean */
            checkcast javax.management.NotificationEmitter
            getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.listener:Ljavax/management/NotificationListener;
            aconst_null
            aconst_null
            invokeinterface javax.management.NotificationEmitter.addNotificationListener:(Ljavax/management/NotificationListener;Ljavax/management/NotificationFilter;Ljava/lang/Object;)V
        end local 0 // java.lang.management.GarbageCollectorMXBean bean
         7: .line 315
      StackMap locals:
      StackMap stack:
            aload 1
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 318
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Exception
         9: pop
        10: .line 319
            new java.lang.IllegalStateException
            dup
            ldc "Should not be here"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 321
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            6    7     0  bean  Ljava/lang/management/GarbageCollectorMXBean;
      Exception table:
        from    to  target  type
           4     8       9  Class java.lang.Exception

  public static synchronized void finishChurnProfile();
    descriptor: ()V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=0
         0: .line 324
            getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.CHURN_AVAILABLE:Z
            ifne 1
            return
         1: .line 325
      StackMap locals:
      StackMap stack:
            getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.listener:Ljavax/management/NotificationListener;
            ifnonnull 3
         2: .line 326
            new java.lang.IllegalStateException
            dup
            ldc "Churn profile already stopped"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 331
      StackMap locals:
      StackMap stack:
            ldc 500
            invokestatic java.lang.Thread.sleep:(J)V
         4: .line 332
            goto 6
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         5: pop
         6: .line 336
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.management.ManagementFactory.getGarbageCollectorMXBeans:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 1
            goto 11
      StackMap locals: top java.util.Iterator
      StackMap stack:
         7: aload 1
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.management.GarbageCollectorMXBean
            astore 0 /* bean */
        start local 0 // java.lang.management.GarbageCollectorMXBean bean
         8: .line 338
            aload 0 /* bean */
            checkcast javax.management.NotificationEmitter
            getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.listener:Ljavax/management/NotificationListener;
            invokeinterface javax.management.NotificationEmitter.removeNotificationListener:(Ljavax/management/NotificationListener;)V
         9: .line 339
            goto 11
      StackMap locals: java.lang.management.GarbageCollectorMXBean java.util.Iterator
      StackMap stack: javax.management.ListenerNotFoundException
        10: pop
        end local 0 // java.lang.management.GarbageCollectorMXBean bean
        11: .line 336
      StackMap locals: top java.util.Iterator
      StackMap stack:
            aload 1
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        12: .line 343
            aconst_null
            putstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.listener:Ljavax/management/NotificationListener;
        13: .line 344
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            8   11     0  bean  Ljava/lang/management/GarbageCollectorMXBean;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.InterruptedException
           8     9      10  Class javax.management.ListenerNotFoundException

  public static synchronized org.openjdk.jmh.util.Multiset<java.lang.String> getChurn();
    descriptor: ()Lorg/openjdk/jmh/util/Multiset;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=0, args_size=0
         0: .line 347
            getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.churn:Lorg/openjdk/jmh/util/Multiset;
            ifnull 1
            getstatic org.openjdk.jmh.profile.GCProfiler$VMSupport.churn:Lorg/openjdk/jmh/util/Multiset;
            goto 2
      StackMap locals:
      StackMap stack:
         1: new org.openjdk.jmh.util.HashMultiset
            dup
            invokespecial org.openjdk.jmh.util.HashMultiset.<init>:()V
      StackMap locals:
      StackMap stack: org.openjdk.jmh.util.Multiset
         2: areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Lorg/openjdk/jmh/util/Multiset<Ljava/lang/String;>;
}
SourceFile: "GCProfiler.java"
NestHost: org.openjdk.jmh.profile.GCProfiler
InnerClasses:
  HotspotAllocationSnapshot = org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot of org.openjdk.jmh.profile.GCProfiler
  VMSupport = org.openjdk.jmh.profile.GCProfiler$VMSupport of org.openjdk.jmh.profile.GCProfiler
  org.openjdk.jmh.profile.GCProfiler$VMSupport$1