public class org.openjdk.jmh.profile.LinuxPerfNormProfiler implements org.openjdk.jmh.profile.ExternalProfiler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.openjdk.jmh.profile.LinuxPerfNormProfiler
  super_class: java.lang.Object
{
  private static final java.lang.String[] interestingEvents;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final int delayMs;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int lengthMs;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean useDefaultStats;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long highPassFilter;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int incrementInterval;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean isIncrementable;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Collection<java.lang.String> supportedEvents;
    descriptor: Ljava/util/Collection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Collection<Ljava/lang/String;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 46
            bipush 22
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 47
            ldc "cycles"
            aastore
            dup
            iconst_1
            ldc "instructions"
            aastore
            dup
            iconst_2
         2: .line 48
            ldc "branches"
            aastore
            dup
            iconst_3
            ldc "branch-misses"
            aastore
            dup
            iconst_4
         3: .line 49
            ldc "L1-dcache-loads"
            aastore
            dup
            iconst_5
            ldc "L1-dcache-load-misses"
            aastore
            dup
            bipush 6
         4: .line 50
            ldc "L1-dcache-stores"
            aastore
            dup
            bipush 7
            ldc "L1-dcache-store-misses"
            aastore
            dup
            bipush 8
         5: .line 51
            ldc "L1-icache-loads"
            aastore
            dup
            bipush 9
            ldc "L1-icache-load-misses"
            aastore
            dup
            bipush 10
         6: .line 52
            ldc "LLC-loads"
            aastore
            dup
            bipush 11
            ldc "LLC-load-misses"
            aastore
            dup
            bipush 12
         7: .line 53
            ldc "LLC-stores"
            aastore
            dup
            bipush 13
            ldc "LLC-store-misses"
            aastore
            dup
            bipush 14
         8: .line 54
            ldc "dTLB-loads"
            aastore
            dup
            bipush 15
            ldc "dTLB-load-misses"
            aastore
            dup
            bipush 16
         9: .line 55
            ldc "dTLB-stores"
            aastore
            dup
            bipush 17
            ldc "dTLB-store-misses"
            aastore
            dup
            bipush 18
        10: .line 56
            ldc "iTLB-loads"
            aastore
            dup
            bipush 19
            ldc "iTLB-load-misses"
            aastore
            dup
            bipush 20
        11: .line 57
            ldc "stalled-cycles-frontend"
            aastore
            dup
            bipush 21
            ldc "stalled-cycles-backend"
            aastore
        12: .line 46
            putstatic org.openjdk.jmh.profile.LinuxPerfNormProfiler.interestingEvents:[Ljava/lang/String;
        13: .line 58
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=18, args_size=2
        start local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
        start local 1 // java.lang.String initLine
         0: .line 69
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 67
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.supportedEvents:Ljava/util/Collection;
         2: .line 70
            new joptsimple.OptionParser
            dup
            invokespecial joptsimple.OptionParser.<init>:()V
            astore 2 /* parser */
        start local 2 // joptsimple.OptionParser parser
         3: .line 71
            aload 2 /* parser */
            new org.openjdk.jmh.profile.ProfilerOptionFormatter
            dup
            ldc "perfnorm"
            invokespecial org.openjdk.jmh.profile.ProfilerOptionFormatter.<init>:(Ljava/lang/String;)V
            invokevirtual joptsimple.OptionParser.formatHelpWith:(Ljoptsimple/HelpFormatter;)V
         4: .line 73
            aload 2 /* parser */
            ldc "events"
         5: .line 74
            ldc "Events to gather."
         6: .line 73
            invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
         7: .line 75
            invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc Ljava/lang/String;
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc ","
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.withValuesSeparatedBy:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc "event+"
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
         8: .line 73
            astore 3 /* optEvents */
        start local 3 // joptsimple.OptionSpec optEvents
         9: .line 77
            aload 2 /* parser */
            ldc "delay"
        10: .line 78
            ldc "Delay collection for a given time, in milliseconds; -1 to detect automatically."
        11: .line 77
            invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
        12: .line 79
            invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc Ljava/lang/Integer;
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc "ms"
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            iconst_m1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_0
            anewarray java.lang.Integer
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
        13: .line 77
            astore 4 /* optDelay */
        start local 4 // joptsimple.OptionSpec optDelay
        14: .line 81
            aload 2 /* parser */
            ldc "length"
        15: .line 82
            ldc "Do the collection for a given time, in milliseconds; -1 to detect automatically."
        16: .line 81
            invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
        17: .line 83
            invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc Ljava/lang/Integer;
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc "ms"
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            iconst_m1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_0
            anewarray java.lang.Integer
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
        18: .line 81
            astore 5 /* optLength */
        start local 5 // joptsimple.OptionSpec optLength
        19: .line 85
            aload 2 /* parser */
            ldc "interval"
        20: .line 86
            ldc "The interval between incremental updates from a concurrently running perf. Lower values may improve accuracy, while increasing the profiling overhead."
        21: .line 85
            invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
        22: .line 88
            invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc Ljava/lang/Integer;
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc "ms"
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            bipush 100
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_0
            anewarray java.lang.Integer
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
        23: .line 85
            astore 6 /* optIncrementInterval */
        start local 6 // joptsimple.OptionSpec optIncrementInterval
        24: .line 90
            aload 2 /* parser */
            ldc "highPassFilter"
        25: .line 91
            ldc "Ignore event increments larger that this."
        26: .line 90
            invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
        27: .line 92
            invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc Ljava/lang/Long;
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc "#"
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc 100000000000
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            iconst_0
            anewarray java.lang.Long
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
        28: .line 90
            astore 7 /* optHighPassFilter */
        start local 7 // joptsimple.OptionSpec optHighPassFilter
        29: .line 94
            aload 2 /* parser */
            ldc "useDefaultStat"
        30: .line 95
            ldc "Use \"perf stat -d -d -d\" instead of explicit counter list."
        31: .line 94
            invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
        32: .line 96
            invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc Ljava/lang/Boolean;
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.ofType:(Ljava/lang/Class;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            ldc "bool"
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            iconst_0
            anewarray java.lang.Boolean
            invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
        33: .line 94
            astore 8 /* optDefaultStat */
        start local 8 // joptsimple.OptionSpec optDefaultStat
        34: .line 98
            aload 1 /* initLine */
            aload 2 /* parser */
            invokestatic org.openjdk.jmh.profile.ProfilerUtils.parseInitLine:(Ljava/lang/String;Ljoptsimple/OptionParser;)Ljoptsimple/OptionSet;
            astore 9 /* set */
        start local 9 // joptsimple.OptionSet set
        35: .line 103
            aload 0 /* this */
            aload 9 /* set */
            aload 4 /* optDelay */
            invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            putfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.delayMs:I
        36: .line 104
            aload 0 /* this */
            aload 9 /* set */
            aload 5 /* optLength */
            invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            putfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.lengthMs:I
        37: .line 105
            aload 0 /* this */
            aload 9 /* set */
            aload 6 /* optIncrementInterval */
            invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            putfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.incrementInterval:I
        38: .line 106
            aload 0 /* this */
            aload 9 /* set */
            aload 7 /* optHighPassFilter */
            invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            putfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.highPassFilter:J
        39: .line 107
            aload 0 /* this */
            aload 9 /* set */
            aload 8 /* optDefaultStat */
            invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.useDefaultStats:Z
        40: .line 108
            aload 9 /* set */
            aload 3 /* optEvents */
            invokevirtual joptsimple.OptionSet.valuesOf:(Ljoptsimple/OptionSpec;)Ljava/util/List;
            astore 10 /* userEvents */
        start local 10 // java.util.Collection userEvents
        41: .line 109
            goto 44
        end local 10 // java.util.Collection userEvents
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler java.lang.String joptsimple.OptionParser joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSet
      StackMap stack: joptsimple.OptionException
        42: astore 11 /* e */
        start local 11 // joptsimple.OptionException e
        43: .line 110
            new org.openjdk.jmh.profile.ProfilerException
            dup
            aload 11 /* e */
            invokevirtual joptsimple.OptionException.getMessage:()Ljava/lang/String;
            invokespecial org.openjdk.jmh.profile.ProfilerException.<init>:(Ljava/lang/String;)V
            athrow
        end local 11 // joptsimple.OptionException e
        start local 10 // java.util.Collection userEvents
        44: .line 113
      StackMap locals: java.util.Collection
      StackMap stack:
            bipush 8
            anewarray java.lang.String
            dup
            iconst_0
            getstatic org.openjdk.jmh.profile.PerfSupport.PERF_EXEC:Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "stat"
            aastore
            dup
            iconst_2
            ldc "--log-fd"
            aastore
            dup
            iconst_3
            ldc "2"
            aastore
            dup
            iconst_4
            ldc "--field-separator"
            aastore
            dup
            iconst_5
            ldc ","
            aastore
            dup
            bipush 6
            ldc "echo"
            aastore
            dup
            bipush 7
            ldc "1"
            aastore
            invokestatic org.openjdk.jmh.util.Utils.tryWith:([Ljava/lang/String;)Ljava/util/Collection;
            astore 11 /* msgs */
        start local 11 // java.util.Collection msgs
        45: .line 114
            aload 11 /* msgs */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 47
        46: .line 115
            new org.openjdk.jmh.profile.ProfilerException
            dup
            aload 11 /* msgs */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokespecial org.openjdk.jmh.profile.ProfilerException.<init>:(Ljava/lang/String;)V
            athrow
        47: .line 118
      StackMap locals: java.util.Collection
      StackMap stack:
            bipush 10
            anewarray java.lang.String
            dup
            iconst_0
            getstatic org.openjdk.jmh.profile.PerfSupport.PERF_EXEC:Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "stat"
            aastore
            dup
            iconst_2
            ldc "--log-fd"
            aastore
            dup
            iconst_3
            ldc "2"
            aastore
            dup
            iconst_4
            ldc "--field-separator"
            aastore
            dup
            iconst_5
            ldc ","
            aastore
            dup
            bipush 6
            ldc "--interval-print"
            aastore
            dup
            bipush 7
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.incrementInterval:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            aastore
            dup
            bipush 8
            ldc "echo"
            aastore
            dup
            bipush 9
            ldc "1"
            aastore
            invokestatic org.openjdk.jmh.util.Utils.tryWith:([Ljava/lang/String;)Ljava/util/Collection;
            astore 12 /* incremental */
        start local 12 // java.util.Collection incremental
        48: .line 119
            aload 0 /* this */
            aload 12 /* incremental */
            invokeinterface java.util.Collection.isEmpty:()Z
            putfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.isIncrementable:Z
        49: .line 121
            aload 10 /* userEvents */
            ifnull 55
        50: .line 122
            aload 10 /* userEvents */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 14
            goto 54
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler java.lang.String joptsimple.OptionParser joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSet java.util.Collection java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
        51: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 13 /* ev */
        start local 13 // java.lang.String ev
        52: .line 123
            aload 13 /* ev */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 53
            goto 54
        53: .line 124
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler java.lang.String joptsimple.OptionParser joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSet java.util.Collection java.util.Collection java.util.Collection java.lang.String java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.supportedEvents:Ljava/util/Collection;
            aload 13 /* ev */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // java.lang.String ev
        54: .line 122
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler java.lang.String joptsimple.OptionParser joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSet java.util.Collection java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 51
        55: .line 128
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler java.lang.String joptsimple.OptionParser joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSet java.util.Collection java.util.Collection java.util.Collection
      StackMap stack:
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.supportedEvents:Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 63
        56: .line 129
            getstatic org.openjdk.jmh.profile.LinuxPerfNormProfiler.interestingEvents:[Ljava/lang/String;
            dup
            astore 16
            arraylength
            istore 15
            iconst_0
            istore 14
            goto 62
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler java.lang.String joptsimple.OptionParser joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSet java.util.Collection java.util.Collection java.util.Collection top int int java.lang.String[]
      StackMap stack:
        57: aload 16
            iload 14
            aaload
            astore 13 /* ev */
        start local 13 // java.lang.String ev
        58: .line 130
            bipush 10
            anewarray java.lang.String
            dup
            iconst_0
            getstatic org.openjdk.jmh.profile.PerfSupport.PERF_EXEC:Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "stat"
            aastore
            dup
            iconst_2
            ldc "--log-fd"
            aastore
            dup
            iconst_3
            ldc "2"
            aastore
            dup
            iconst_4
            ldc "--field-separator"
            aastore
            dup
            iconst_5
            ldc ","
            aastore
            dup
            bipush 6
            ldc "--event"
            aastore
            dup
            bipush 7
            aload 13 /* ev */
            aastore
            dup
            bipush 8
            ldc "echo"
            aastore
            dup
            bipush 9
            ldc "1"
            aastore
            invokestatic org.openjdk.jmh.util.Utils.tryWith:([Ljava/lang/String;)Ljava/util/Collection;
            astore 17 /* res */
        start local 17 // java.util.Collection res
        59: .line 131
            aload 17 /* res */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 61
        60: .line 132
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.supportedEvents:Ljava/util/Collection;
            aload 13 /* ev */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 17 // java.util.Collection res
        end local 13 // java.lang.String ev
        61: .line 129
      StackMap locals:
      StackMap stack:
            iinc 14 1
      StackMap locals:
      StackMap stack:
        62: iload 14
            iload 15
            if_icmplt 57
        63: .line 136
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler java.lang.String joptsimple.OptionParser joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSet java.util.Collection java.util.Collection java.util.Collection
      StackMap stack:
            return
        end local 12 // java.util.Collection incremental
        end local 11 // java.util.Collection msgs
        end local 10 // java.util.Collection userEvents
        end local 9 // joptsimple.OptionSet set
        end local 8 // joptsimple.OptionSpec optDefaultStat
        end local 7 // joptsimple.OptionSpec optHighPassFilter
        end local 6 // joptsimple.OptionSpec optIncrementInterval
        end local 5 // joptsimple.OptionSpec optLength
        end local 4 // joptsimple.OptionSpec optDelay
        end local 3 // joptsimple.OptionSpec optEvents
        end local 2 // joptsimple.OptionParser parser
        end local 1 // java.lang.String initLine
        end local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   64     0                  this  Lorg/openjdk/jmh/profile/LinuxPerfNormProfiler;
            0   64     1              initLine  Ljava/lang/String;
            3   64     2                parser  Ljoptsimple/OptionParser;
            9   64     3             optEvents  Ljoptsimple/OptionSpec<Ljava/lang/String;>;
           14   64     4              optDelay  Ljoptsimple/OptionSpec<Ljava/lang/Integer;>;
           19   64     5             optLength  Ljoptsimple/OptionSpec<Ljava/lang/Integer;>;
           24   64     6  optIncrementInterval  Ljoptsimple/OptionSpec<Ljava/lang/Integer;>;
           29   64     7     optHighPassFilter  Ljoptsimple/OptionSpec<Ljava/lang/Long;>;
           34   64     8        optDefaultStat  Ljoptsimple/OptionSpec<Ljava/lang/Boolean;>;
           35   64     9                   set  Ljoptsimple/OptionSet;
           41   42    10            userEvents  Ljava/util/Collection<Ljava/lang/String;>;
           44   64    10            userEvents  Ljava/util/Collection<Ljava/lang/String;>;
           43   44    11                     e  Ljoptsimple/OptionException;
           45   64    11                  msgs  Ljava/util/Collection<Ljava/lang/String;>;
           48   64    12           incremental  Ljava/util/Collection<Ljava/lang/String;>;
           52   54    13                    ev  Ljava/lang/String;
           58   61    13                    ev  Ljava/lang/String;
           59   61    17                   res  Ljava/util/Collection<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
          35    41      42  Class joptsimple.OptionException
    Exceptions:
      throws org.openjdk.jmh.profile.ProfilerException
    MethodParameters:
          Name  Flags
      initLine  

  public java.util.Collection<java.lang.String> addJVMInvokeOptions(org.openjdk.jmh.infra.BenchmarkParams);
    descriptor: (Lorg/openjdk/jmh/infra/BenchmarkParams;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
        start local 1 // org.openjdk.jmh.infra.BenchmarkParams params
         0: .line 140
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* cmd */
        start local 2 // java.util.List cmd
         1: .line 141
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.useDefaultStats:Z
            ifeq 4
         2: .line 142
            aload 2 /* cmd */
            bipush 9
            anewarray java.lang.String
            dup
            iconst_0
            getstatic org.openjdk.jmh.profile.PerfSupport.PERF_EXEC:Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "stat"
            aastore
            dup
            iconst_2
            ldc "--log-fd"
            aastore
            dup
            iconst_3
            ldc "2"
            aastore
            dup
            iconst_4
            ldc "--field-separator"
            aastore
            dup
            iconst_5
            ldc ","
            aastore
            dup
            bipush 6
            ldc "--detailed"
            aastore
            dup
            bipush 7
            ldc "--detailed"
            aastore
            dup
            bipush 8
            ldc "--detailed"
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 143
            goto 5
         4: .line 144
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* cmd */
            bipush 8
            anewarray java.lang.String
            dup
            iconst_0
            getstatic org.openjdk.jmh.profile.PerfSupport.PERF_EXEC:Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "stat"
            aastore
            dup
            iconst_2
            ldc "--log-fd"
            aastore
            dup
            iconst_3
            ldc "2"
            aastore
            dup
            iconst_4
            ldc "--field-separator"
            aastore
            dup
            iconst_5
            ldc ","
            aastore
            dup
            bipush 6
            ldc "--event"
            aastore
            dup
            bipush 7
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.supportedEvents:Ljava/util/Collection;
            ldc ","
            invokestatic org.openjdk.jmh.util.Utils.join:(Ljava/util/Collection;Ljava/lang/String;)Ljava/lang/String;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         5: .line 146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.isIncrementable:Z
            ifeq 7
         6: .line 147
            aload 2 /* cmd */
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "-I"
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.incrementInterval:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         7: .line 149
      StackMap locals:
      StackMap stack:
            aload 2 /* cmd */
            areturn
        end local 2 // java.util.List cmd
        end local 1 // org.openjdk.jmh.infra.BenchmarkParams params
        end local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/openjdk/jmh/profile/LinuxPerfNormProfiler;
            0    8     1  params  Lorg/openjdk/jmh/infra/BenchmarkParams;
            1    8     2     cmd  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Lorg/openjdk/jmh/infra/BenchmarkParams;)Ljava/util/Collection<Ljava/lang/String;>;
    MethodParameters:
        Name  Flags
      params  

  public java.util.Collection<java.lang.String> addJVMOptions(org.openjdk.jmh.infra.BenchmarkParams);
    descriptor: (Lorg/openjdk/jmh/infra/BenchmarkParams;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
        start local 1 // org.openjdk.jmh.infra.BenchmarkParams params
         0: .line 154
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
        end local 1 // org.openjdk.jmh.infra.BenchmarkParams params
        end local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/openjdk/jmh/profile/LinuxPerfNormProfiler;
            0    1     1  params  Lorg/openjdk/jmh/infra/BenchmarkParams;
    Signature: (Lorg/openjdk/jmh/infra/BenchmarkParams;)Ljava/util/Collection<Ljava/lang/String;>;
    MethodParameters:
        Name  Flags
      params  

  public void beforeTrial(org.openjdk.jmh.infra.BenchmarkParams);
    descriptor: (Lorg/openjdk/jmh/infra/BenchmarkParams;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
        start local 1 // org.openjdk.jmh.infra.BenchmarkParams params
         0: .line 160
            return
        end local 1 // org.openjdk.jmh.infra.BenchmarkParams params
        end local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/openjdk/jmh/profile/LinuxPerfNormProfiler;
            0    1     1  params  Lorg/openjdk/jmh/infra/BenchmarkParams;
    MethodParameters:
        Name  Flags
      params  

  public java.util.Collection<? extends org.openjdk.jmh.results.Result> afterTrial(org.openjdk.jmh.results.BenchmarkResult, long, java.io.File, java.io.File);
    descriptor: (Lorg/openjdk/jmh/results/BenchmarkResult;JLjava/io/File;Ljava/io/File;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
        start local 1 // org.openjdk.jmh.results.BenchmarkResult br
        start local 2 // long pid
        start local 4 // java.io.File stdOut
        start local 5 // java.io.File stdErr
         0: .line 164
            aload 0 /* this */
            aload 1 /* br */
            aload 4 /* stdOut */
            aload 5 /* stdErr */
            invokevirtual org.openjdk.jmh.profile.LinuxPerfNormProfiler.process:(Lorg/openjdk/jmh/results/BenchmarkResult;Ljava/io/File;Ljava/io/File;)Ljava/util/Collection;
            areturn
        end local 5 // java.io.File stdErr
        end local 4 // java.io.File stdOut
        end local 2 // long pid
        end local 1 // org.openjdk.jmh.results.BenchmarkResult br
        end local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/openjdk/jmh/profile/LinuxPerfNormProfiler;
            0    1     1      br  Lorg/openjdk/jmh/results/BenchmarkResult;
            0    1     2     pid  J
            0    1     4  stdOut  Ljava/io/File;
            0    1     5  stdErr  Ljava/io/File;
    Signature: (Lorg/openjdk/jmh/results/BenchmarkResult;JLjava/io/File;Ljava/io/File;)Ljava/util/Collection<+Lorg/openjdk/jmh/results/Result;>;
    MethodParameters:
        Name  Flags
      br      
      pid     
      stdOut  
      stdErr  

  public boolean allowPrintOut();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
         0: .line 169
            iconst_1
            ireturn
        end local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/openjdk/jmh/profile/LinuxPerfNormProfiler;

  public boolean allowPrintErr();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
         0: .line 174
            iconst_0
            ireturn
        end local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/openjdk/jmh/profile/LinuxPerfNormProfiler;

  public java.lang.String getDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
         0: .line 179
            ldc "Linux perf statistics, normalized by operation count"
            areturn
        end local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/openjdk/jmh/profile/LinuxPerfNormProfiler;

  private java.util.Collection<? extends org.openjdk.jmh.results.Result> process(org.openjdk.jmh.results.BenchmarkResult, java.io.File, java.io.File);
    descriptor: (Lorg/openjdk/jmh/results/BenchmarkResult;Ljava/io/File;Ljava/io/File;)Ljava/util/Collection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=31, args_size=4
        start local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
        start local 1 // org.openjdk.jmh.results.BenchmarkResult br
        start local 2 // java.io.File stdOut
        start local 3 // java.io.File stdErr
         0: .line 183
            new org.openjdk.jmh.util.HashMultiset
            dup
            invokespecial org.openjdk.jmh.util.HashMultiset.<init>:()V
            astore 4 /* events */
        start local 4 // org.openjdk.jmh.util.Multiset events
         1: .line 185
            aconst_null
            astore 5
            aconst_null
            astore 6
         2: new java.io.FileReader
            dup
            aload 3 /* stdErr */
            invokespecial java.io.FileReader.<init>:(Ljava/io/File;)V
            astore 7 /* fr */
        start local 7 // java.io.FileReader fr
         3: .line 186
            new java.io.BufferedReader
            dup
            aload 7 /* fr */
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 8 /* reader */
        start local 8 // java.io.BufferedReader reader
         4: .line 189
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.delayMs:I
            iconst_m1
            if_icmpne 7
         5: .line 190
            aload 1 /* br */
            invokestatic org.openjdk.jmh.profile.ProfilerUtils.measurementDelayMs:(Lorg/openjdk/jmh/results/BenchmarkResult;)J
            lstore 9 /* skipMs */
        start local 9 // long skipMs
         6: .line 191
            goto 8
        end local 9 // long skipMs
         7: .line 192
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader
      StackMap stack:
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.delayMs:I
            i2l
            lstore 9 /* skipMs */
        start local 9 // long skipMs
         8: .line 196
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.lengthMs:I
            iconst_m1
            if_icmpne 11
         9: .line 197
            aload 1 /* br */
            invokestatic org.openjdk.jmh.profile.ProfilerUtils.measuredTimeMs:(Lorg/openjdk/jmh/results/BenchmarkResult;)J
            l2d
            dstore 11 /* lenMs */
        start local 11 // double lenMs
        10: .line 198
            goto 12
        end local 11 // double lenMs
        11: .line 199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.lengthMs:I
            i2d
            dstore 11 /* lenMs */
        start local 11 // double lenMs
        12: .line 202
      StackMap locals: double
      StackMap stack:
            lload 9 /* skipMs */
            l2d
            ldc 1000.0
            ddiv
            dstore 13 /* readFrom */
        start local 13 // double readFrom
        13: .line 203
            lload 9 /* skipMs */
            l2d
            dload 11 /* lenMs */
            dadd
            ldc 1000.0
            ddiv
            dstore 15 /* softTo */
        start local 15 // double softTo
        14: .line 204
            lload 9 /* skipMs */
            l2d
            dload 11 /* lenMs */
            dadd
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.incrementInterval:I
            i2d
            dadd
            ldc 1000.0
            ddiv
            dstore 17 /* readTo */
        start local 17 // double readTo
        15: .line 206
            invokestatic java.text.NumberFormat.getInstance:()Ljava/text/NumberFormat;
            astore 19 /* nf */
        start local 19 // java.text.NumberFormat nf
        16: .line 211
            goto 59
        start local 20 // java.lang.String line
        17: .line 212
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long double double double double java.text.NumberFormat java.lang.String
      StackMap stack:
            aload 20 /* line */
            ldc "#"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 18
            goto 59
        18: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.isIncrementable:Z
            ifeq 51
        19: .line 215
            aload 20 /* line */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 21 /* split */
        start local 21 // java.lang.String[] split
        20: .line 221
            aload 21 /* split */
            arraylength
            iconst_3
            if_icmpne 25
        21: .line 223
            aload 21 /* split */
            iconst_0
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 22 /* time */
        start local 22 // java.lang.String time
        22: .line 224
            aload 21 /* split */
            iconst_1
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 23 /* count */
        start local 23 // java.lang.String count
        23: .line 225
            aload 21 /* split */
            iconst_2
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 24 /* event */
        start local 24 // java.lang.String event
        24: .line 226
            goto 29
        end local 24 // java.lang.String event
        end local 23 // java.lang.String count
        end local 22 // java.lang.String time
      StackMap locals: java.lang.String[]
      StackMap stack:
        25: aload 21 /* split */
            arraylength
            iconst_4
            if_icmplt 59
        26: .line 228
            aload 21 /* split */
            iconst_0
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 22 /* time */
        start local 22 // java.lang.String time
        27: .line 229
            aload 21 /* split */
            iconst_1
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 23 /* count */
        start local 23 // java.lang.String count
        28: .line 230
            aload 21 /* split */
            iconst_3
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 24 /* event */
        start local 24 // java.lang.String event
        29: .line 236
      StackMap locals: java.lang.String java.lang.String java.lang.String
      StackMap stack:
            dconst_1
            dstore 25 /* multiplier */
        start local 25 // double multiplier
        30: .line 238
            aload 19 /* nf */
            aload 22 /* time */
            invokevirtual java.text.NumberFormat.parse:(Ljava/lang/String;)Ljava/lang/Number;
            invokevirtual java.lang.Number.doubleValue:()D
            dstore 27 /* timeSec */
        start local 27 // double timeSec
        31: .line 239
            dload 27 /* timeSec */
            dload 13 /* readFrom */
            dcmpg
            ifge 33
        32: .line 241
            goto 59
        33: .line 243
      StackMap locals: double double
      StackMap stack:
            dload 27 /* timeSec */
            dload 17 /* readTo */
            dcmpl
            ifle 35
        34: .line 245
            goto 59
        35: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.incrementInterval:I
            i2d
            ldc 1000.0
            ddiv
            dstore 29 /* intervalSec */
        start local 29 // double intervalSec
        36: .line 250
            dload 27 /* timeSec */
            dload 29 /* intervalSec */
            dsub
            dload 13 /* readFrom */
            dcmpg
            ifge 38
        37: .line 259
            dload 27 /* timeSec */
            dload 13 /* readFrom */
            dsub
            dload 29 /* intervalSec */
            ddiv
            dstore 25 /* multiplier */
        38: .line 261
      StackMap locals: double
      StackMap stack:
            dload 27 /* timeSec */
            dload 15 /* softTo */
            dcmpl
            ifle 40
        39: .line 269
            dconst_1
            dload 27 /* timeSec */
            dload 15 /* softTo */
            dsub
            dload 29 /* intervalSec */
            ddiv
            dsub
            dstore 25 /* multiplier */
        40: .line 273
      StackMap locals:
      StackMap stack:
            dconst_1
            dconst_0
            dload 25 /* multiplier */
            invokestatic java.lang.Math.min:(DD)D
            invokestatic java.lang.Math.max:(DD)D
            dstore 25 /* multiplier */
        end local 29 // double intervalSec
        end local 27 // double timeSec
        41: .line 274
            goto 44
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long double double double double java.text.NumberFormat java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.String double
      StackMap stack: java.text.ParseException
        42: pop
        43: .line 276
            goto 59
        44: .line 280
      StackMap locals:
      StackMap stack:
            aload 19 /* nf */
            aload 23 /* count */
            invokevirtual java.text.NumberFormat.parse:(Ljava/lang/String;)Ljava/lang/Number;
            invokevirtual java.lang.Number.longValue:()J
            lstore 27 /* lValue */
        start local 27 // long lValue
        45: .line 281
            lload 27 /* lValue */
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.highPassFilter:J
            lcmp
            ifle 47
        46: .line 283
            goto 59
        47: .line 285
      StackMap locals: long
      StackMap stack:
            aload 4 /* events */
            aload 24 /* event */
            lload 27 /* lValue */
            l2d
            dload 25 /* multiplier */
            dmul
            d2l
            invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;J)V
        end local 27 // long lValue
        48: .line 286
            goto 59
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long double double double double java.text.NumberFormat java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.String double
      StackMap stack: java.text.ParseException
        49: pop
        50: .line 288
            goto 59
        end local 25 // double multiplier
        end local 24 // java.lang.String event
        end local 23 // java.lang.String count
        end local 22 // java.lang.String time
        end local 21 // java.lang.String[] split
        51: .line 292
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long double double double double java.text.NumberFormat java.lang.String
      StackMap stack:
            aload 20 /* line */
            ldc ","
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 21 /* idx */
        start local 21 // int idx
        52: .line 295
            iload 21 /* idx */
            iconst_m1
            if_icmpne 53
            goto 59
        53: .line 297
      StackMap locals: int
      StackMap stack:
            aload 20 /* line */
            iconst_0
            iload 21 /* idx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 22 /* count */
        start local 22 // java.lang.String count
        54: .line 298
            aload 20 /* line */
            iload 21 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 23 /* event */
        start local 23 // java.lang.String event
        55: .line 301
            aload 19 /* nf */
            aload 22 /* count */
            invokevirtual java.text.NumberFormat.parse:(Ljava/lang/String;)Ljava/lang/Number;
            invokevirtual java.lang.Number.longValue:()J
            lstore 24 /* lValue */
        start local 24 // long lValue
        56: .line 302
            aload 4 /* events */
            aload 23 /* event */
            lload 24 /* lValue */
            invokeinterface org.openjdk.jmh.util.Multiset.add:(Ljava/lang/Object;J)V
        end local 24 // long lValue
        57: .line 303
            goto 59
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long double double double double java.text.NumberFormat java.lang.String int java.lang.String java.lang.String
      StackMap stack: java.text.ParseException
        58: pop
        end local 23 // java.lang.String event
        end local 22 // java.lang.String count
        end local 21 // int idx
        end local 20 // java.lang.String line
        59: .line 211
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long double double double double java.text.NumberFormat
      StackMap stack:
            aload 8 /* reader */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 20 /* line */
        start local 20 // java.lang.String line
        60: ifnonnull 17
        61: .line 311
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.isIncrementable:Z
            ifne 65
        62: .line 312
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        63: .line 313
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        64: .line 314
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "WARNING: Your system uses old \"perf\", which cannot print data incrementally (-I).\nTherefore, perf performance data includes benchmark warmup."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        65: .line 320
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* br */
            invokevirtual org.openjdk.jmh.results.BenchmarkResult.getMetadata:()Lorg/openjdk/jmh/results/BenchmarkResultMetaData;
            astore 23 /* md */
        start local 23 // org.openjdk.jmh.results.BenchmarkResultMetaData md
        66: .line 321
            aload 23 /* md */
            ifnull 84
        67: .line 322
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfNormProfiler.isIncrementable:Z
            ifeq 70
        68: .line 323
            aload 23 /* md */
            invokevirtual org.openjdk.jmh.results.BenchmarkResultMetaData.getMeasurementOps:()J
            lstore 21 /* totalOpts */
        start local 21 // long totalOpts
        69: .line 324
            goto 71
        end local 21 // long totalOpts
        70: .line 325
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long double double double double java.text.NumberFormat java.lang.String top top org.openjdk.jmh.results.BenchmarkResultMetaData
      StackMap stack:
            aload 23 /* md */
            invokevirtual org.openjdk.jmh.results.BenchmarkResultMetaData.getWarmupOps:()J
            aload 23 /* md */
            invokevirtual org.openjdk.jmh.results.BenchmarkResultMetaData.getMeasurementOps:()J
            ladd
            lstore 21 /* totalOpts */
        start local 21 // long totalOpts
        71: .line 327
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long double double double double java.text.NumberFormat java.lang.String long org.openjdk.jmh.results.BenchmarkResultMetaData
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 24 /* results */
        start local 24 // java.util.Collection results
        72: .line 328
            aload 4 /* events */
            invokeinterface org.openjdk.jmh.util.Multiset.keys:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 26
            goto 75
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long double double double double java.text.NumberFormat java.lang.String long org.openjdk.jmh.results.BenchmarkResultMetaData java.util.Collection top java.util.Iterator
      StackMap stack:
        73: aload 26
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 25 /* key */
        start local 25 // java.lang.String key
        74: .line 329
            aload 24 /* results */
            new org.openjdk.jmh.profile.LinuxPerfNormProfiler$PerfResult
            dup
            aload 25 /* key */
            aload 4 /* events */
            aload 25 /* key */
            invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
            l2d
            dconst_1
            dmul
            lload 21 /* totalOpts */
            l2d
            ddiv
            invokespecial org.openjdk.jmh.profile.LinuxPerfNormProfiler$PerfResult.<init>:(Ljava/lang/String;D)V
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 25 // java.lang.String key
        75: .line 328
      StackMap locals:
      StackMap stack:
            aload 26
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 73
        76: .line 334
            aload 4 /* events */
            ldc "cycles"
            invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
            lstore 25 /* cycles */
        start local 25 // long cycles
        77: .line 335
            aload 4 /* events */
            ldc "instructions"
            invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
            lstore 27 /* instructions */
        start local 27 // long instructions
        78: .line 336
            lload 25 /* cycles */
            lconst_0
            lcmp
            ifeq 80
            lload 27 /* instructions */
            lconst_0
            lcmp
            ifeq 80
        79: .line 337
            aload 24 /* results */
            new org.openjdk.jmh.profile.LinuxPerfNormProfiler$PerfResult
            dup
            ldc "CPI"
            dconst_1
            lload 25 /* cycles */
            l2d
            dmul
            lload 27 /* instructions */
            l2d
            ddiv
            invokespecial org.openjdk.jmh.profile.LinuxPerfNormProfiler$PerfResult.<init>:(Ljava/lang/String;D)V
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 27 // long instructions
        end local 25 // long cycles
        80: .line 341
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long double double double double java.text.NumberFormat java.lang.String long org.openjdk.jmh.results.BenchmarkResultMetaData java.util.Collection
      StackMap stack:
            aload 24 /* results */
        81: .line 346
            aload 8 /* reader */
            ifnull 82
            aload 8 /* reader */
            invokevirtual java.io.BufferedReader.close:()V
      StackMap locals:
      StackMap stack: java.util.Collection
        82: aload 7 /* fr */
            ifnull 83
            aload 7 /* fr */
            invokevirtual java.io.FileReader.close:()V
        83: .line 341
      StackMap locals:
      StackMap stack: java.util.Collection
            areturn
        end local 24 // java.util.Collection results
        end local 21 // long totalOpts
        84: .line 343
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long double double double double java.text.NumberFormat java.lang.String top top org.openjdk.jmh.results.BenchmarkResultMetaData
      StackMap stack:
            new org.openjdk.jmh.profile.LinuxPerfNormProfiler$PerfResult
            dup
            ldc "N/A"
            ldc NaN
            invokespecial org.openjdk.jmh.profile.LinuxPerfNormProfiler$PerfResult.<init>:(Ljava/lang/String;D)V
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
        85: .line 346
            aload 8 /* reader */
            ifnull 86
            aload 8 /* reader */
            invokevirtual java.io.BufferedReader.close:()V
      StackMap locals:
      StackMap stack: java.util.Set
        86: aload 7 /* fr */
            ifnull 87
            aload 7 /* fr */
            invokevirtual java.io.FileReader.close:()V
        87: .line 343
      StackMap locals:
      StackMap stack: java.util.Set
            areturn
        end local 23 // org.openjdk.jmh.results.BenchmarkResultMetaData md
        end local 20 // java.lang.String line
        end local 19 // java.text.NumberFormat nf
        end local 17 // double readTo
        end local 15 // double softTo
        end local 13 // double readFrom
        end local 11 // double lenMs
        end local 9 // long skipMs
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader
      StackMap stack: java.lang.Throwable
        88: astore 5
        89: .line 346
            aload 8 /* reader */
            ifnull 90
            aload 8 /* reader */
            invokevirtual java.io.BufferedReader.close:()V
        end local 8 // java.io.BufferedReader reader
      StackMap locals:
      StackMap stack:
        90: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        91: astore 6
            aload 5
            ifnonnull 92
            aload 6
            astore 5
            goto 93
      StackMap locals:
      StackMap stack:
        92: aload 5
            aload 6
            if_acmpeq 93
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        93: aload 7 /* fr */
            ifnull 94
            aload 7 /* fr */
            invokevirtual java.io.FileReader.close:()V
        end local 7 // java.io.FileReader fr
      StackMap locals:
      StackMap stack:
        94: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        95: astore 6
            aload 5
            ifnonnull 96
            aload 6
            astore 5
            goto 97
      StackMap locals:
      StackMap stack:
        96: aload 5
            aload 6
            if_acmpeq 97
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        97: aload 5
            athrow
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfNormProfiler org.openjdk.jmh.results.BenchmarkResult java.io.File java.io.File org.openjdk.jmh.util.Multiset
      StackMap stack: java.io.IOException
        98: astore 5 /* e */
        start local 5 // java.io.IOException e
        99: .line 347
            new java.lang.IllegalStateException
            dup
            aload 5 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.io.IOException e
        end local 4 // org.openjdk.jmh.util.Multiset events
        end local 3 // java.io.File stdErr
        end local 2 // java.io.File stdOut
        end local 1 // org.openjdk.jmh.results.BenchmarkResult br
        end local 0 // org.openjdk.jmh.profile.LinuxPerfNormProfiler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0  100     0          this  Lorg/openjdk/jmh/profile/LinuxPerfNormProfiler;
            0  100     1            br  Lorg/openjdk/jmh/results/BenchmarkResult;
            0  100     2        stdOut  Ljava/io/File;
            0  100     3        stdErr  Ljava/io/File;
            1  100     4        events  Lorg/openjdk/jmh/util/Multiset<Ljava/lang/String;>;
            3   94     7            fr  Ljava/io/FileReader;
            4   90     8        reader  Ljava/io/BufferedReader;
            6    7     9        skipMs  J
            8   88     9        skipMs  J
           10   11    11         lenMs  D
           12   88    11         lenMs  D
           13   88    13      readFrom  D
           14   88    15        softTo  D
           15   88    17        readTo  D
           16   88    19            nf  Ljava/text/NumberFormat;
           17   59    20          line  Ljava/lang/String;
           60   88    20          line  Ljava/lang/String;
           20   51    21         split  [Ljava/lang/String;
           22   25    22          time  Ljava/lang/String;
           27   51    22          time  Ljava/lang/String;
           23   25    23         count  Ljava/lang/String;
           28   51    23         count  Ljava/lang/String;
           24   25    24         event  Ljava/lang/String;
           29   51    24         event  Ljava/lang/String;
           30   51    25    multiplier  D
           31   41    27       timeSec  D
           36   41    29   intervalSec  D
           45   48    27        lValue  J
           52   59    21           idx  I
           54   59    22         count  Ljava/lang/String;
           55   59    23         event  Ljava/lang/String;
           56   57    24        lValue  J
           69   70    21     totalOpts  J
           71   84    21     totalOpts  J
           66   88    23            md  Lorg/openjdk/jmh/results/BenchmarkResultMetaData;
           72   84    24       results  Ljava/util/Collection<Lorg/openjdk/jmh/results/Result;>;
           74   75    25           key  Ljava/lang/String;
           77   80    25        cycles  J
           78   80    27  instructions  J
           99  100     5             e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          30    32      42  Class java.text.ParseException
          33    34      42  Class java.text.ParseException
          35    41      42  Class java.text.ParseException
          44    46      49  Class java.text.ParseException
          47    48      49  Class java.text.ParseException
          55    57      58  Class java.text.ParseException
           4    81      88  any
          84    85      88  any
           3    82      91  any
          84    86      91  any
          88    91      91  any
           2    83      95  any
          84    87      95  any
          88    95      95  any
           1    83      98  Class java.io.IOException
          84    87      98  Class java.io.IOException
          88    98      98  Class java.io.IOException
    Signature: (Lorg/openjdk/jmh/results/BenchmarkResult;Ljava/io/File;Ljava/io/File;)Ljava/util/Collection<+Lorg/openjdk/jmh/results/Result;>;
    MethodParameters:
        Name  Flags
      br      
      stdOut  
      stdErr  
}
SourceFile: "LinuxPerfNormProfiler.java"
NestMembers:
  org.openjdk.jmh.profile.LinuxPerfNormProfiler$PerfResult
InnerClasses:
  PerfResult = org.openjdk.jmh.profile.LinuxPerfNormProfiler$PerfResult of org.openjdk.jmh.profile.LinuxPerfNormProfiler