public class org.openjdk.jmh.profile.LinuxPerfProfiler 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.LinuxPerfProfiler
  super_class: java.lang.Object
{
  private final boolean isDelayed;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.openjdk.jmh.profile.LinuxPerfProfiler this
        start local 1 // java.lang.String initLine
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            new joptsimple.OptionParser
            dup
            invokespecial joptsimple.OptionParser.<init>:()V
            astore 2 /* parser */
        start local 2 // joptsimple.OptionParser parser
         2: .line 53
            aload 2 /* parser */
            new org.openjdk.jmh.profile.ProfilerOptionFormatter
            dup
            ldc "perf"
            invokespecial org.openjdk.jmh.profile.ProfilerOptionFormatter.<init>:(Ljava/lang/String;)V
            invokevirtual joptsimple.OptionParser.formatHelpWith:(Ljoptsimple/HelpFormatter;)V
         3: .line 55
            aload 2 /* parser */
            ldc "delay"
         4: .line 56
            ldc "Delay collection for a given time, in milliseconds; -1 to detect automatically."
         5: .line 55
            invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
         6: .line 57
            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;
         7: .line 55
            astore 3 /* optDelay */
        start local 3 // joptsimple.OptionSpec optDelay
         8: .line 59
            aload 1 /* initLine */
            aload 2 /* parser */
            invokestatic org.openjdk.jmh.profile.ProfilerUtils.parseInitLine:(Ljava/lang/String;Ljoptsimple/OptionParser;)Ljoptsimple/OptionSet;
            astore 4 /* set */
        start local 4 // joptsimple.OptionSet set
         9: .line 62
            aload 0 /* this */
            aload 4 /* set */
            aload 3 /* 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.LinuxPerfProfiler.delayMs:I
        10: .line 63
            goto 13
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfProfiler java.lang.String joptsimple.OptionParser joptsimple.OptionSpec joptsimple.OptionSet
      StackMap stack: joptsimple.OptionException
        11: astore 5 /* e */
        start local 5 // joptsimple.OptionException e
        12: .line 64
            new org.openjdk.jmh.profile.ProfilerException
            dup
            aload 5 /* e */
            invokevirtual joptsimple.OptionException.getMessage:()Ljava/lang/String;
            invokespecial org.openjdk.jmh.profile.ProfilerException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // joptsimple.OptionException e
        13: .line 67
      StackMap locals:
      StackMap stack:
            bipush 6
            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 "echo"
            aastore
            dup
            iconst_5
            ldc "1"
            aastore
            invokestatic org.openjdk.jmh.util.Utils.tryWith:([Ljava/lang/String;)Ljava/util/Collection;
            astore 5 /* msgs */
        start local 5 // java.util.Collection msgs
        14: .line 68
            aload 5 /* msgs */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 16
        15: .line 69
            new org.openjdk.jmh.profile.ProfilerException
            dup
            aload 5 /* msgs */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokespecial org.openjdk.jmh.profile.ProfilerException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 72
      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 "--delay"
            aastore
            dup
            iconst_5
            ldc "1"
            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 6 /* delay */
        start local 6 // java.util.Collection delay
        17: .line 73
            aload 0 /* this */
            aload 6 /* delay */
            invokeinterface java.util.Collection.isEmpty:()Z
            putfield org.openjdk.jmh.profile.LinuxPerfProfiler.isDelayed:Z
        18: .line 74
            return
        end local 6 // java.util.Collection delay
        end local 5 // java.util.Collection msgs
        end local 4 // joptsimple.OptionSet set
        end local 3 // joptsimple.OptionSpec optDelay
        end local 2 // joptsimple.OptionParser parser
        end local 1 // java.lang.String initLine
        end local 0 // org.openjdk.jmh.profile.LinuxPerfProfiler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Lorg/openjdk/jmh/profile/LinuxPerfProfiler;
            0   19     1  initLine  Ljava/lang/String;
            2   19     2    parser  Ljoptsimple/OptionParser;
            8   19     3  optDelay  Ljoptsimple/OptionSpec<Ljava/lang/Integer;>;
            9   19     4       set  Ljoptsimple/OptionSet;
           12   13     5         e  Ljoptsimple/OptionException;
           14   19     5      msgs  Ljava/util/Collection<Ljava/lang/String;>;
           17   19     6     delay  Ljava/util/Collection<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
           9    10      11  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=5, locals=4, args_size=2
        start local 0 // org.openjdk.jmh.profile.LinuxPerfProfiler this
        start local 1 // org.openjdk.jmh.infra.BenchmarkParams params
         0: .line 79
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfProfiler.delayMs:I
            iconst_m1
            if_icmpne 7
         1: .line 80
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            aload 1 /* params */
            invokevirtual org.openjdk.jmh.infra.BenchmarkParams.getWarmup:()Lorg/openjdk/jmh/infra/IterationParams;
            invokevirtual org.openjdk.jmh.infra.IterationParams.getCount:()I
            i2l
         2: .line 81
            aload 1 /* params */
            invokevirtual org.openjdk.jmh.infra.BenchmarkParams.getWarmup:()Lorg/openjdk/jmh/infra/IterationParams;
            invokevirtual org.openjdk.jmh.infra.IterationParams.getTime:()Lorg/openjdk/jmh/runner/options/TimeValue;
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.openjdk.jmh.runner.options.TimeValue.convertTo:(Ljava/util/concurrent/TimeUnit;)J
            lmul
         3: .line 80
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
         4: .line 82
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            lconst_1
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
         5: .line 80
            ladd
            lstore 2 /* delay */
        start local 2 // long delay
         6: .line 83
            goto 8
        end local 2 // long delay
         7: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfProfiler.delayMs:I
            i2l
            lstore 2 /* delay */
        start local 2 // long delay
         8: .line 87
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfProfiler.isDelayed:Z
            ifeq 10
         9: .line 88
            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 "--detailed"
            aastore
            dup
            iconst_5
            ldc "--detailed"
            aastore
            dup
            bipush 6
            ldc "--detailed"
            aastore
            dup
            bipush 7
            ldc "--delay"
            aastore
            dup
            bipush 8
            lload 2 /* delay */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        10: .line 90
      StackMap locals:
      StackMap stack:
            bipush 7
            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 "--detailed"
            aastore
            dup
            iconst_5
            ldc "--detailed"
            aastore
            dup
            bipush 6
            ldc "--detailed"
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 2 // long delay
        end local 1 // org.openjdk.jmh.infra.BenchmarkParams params
        end local 0 // org.openjdk.jmh.profile.LinuxPerfProfiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/openjdk/jmh/profile/LinuxPerfProfiler;
            0   11     1  params  Lorg/openjdk/jmh/infra/BenchmarkParams;
            6    7     2   delay  J
            8   11     2   delay  J
    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.LinuxPerfProfiler this
        start local 1 // org.openjdk.jmh.infra.BenchmarkParams params
         0: .line 96
            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.LinuxPerfProfiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/openjdk/jmh/profile/LinuxPerfProfiler;
            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.LinuxPerfProfiler this
        start local 1 // org.openjdk.jmh.infra.BenchmarkParams params
         0: .line 102
            return
        end local 1 // org.openjdk.jmh.infra.BenchmarkParams params
        end local 0 // org.openjdk.jmh.profile.LinuxPerfProfiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/openjdk/jmh/profile/LinuxPerfProfiler;
            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=3, locals=7, args_size=5
        start local 0 // org.openjdk.jmh.profile.LinuxPerfProfiler 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 106
            aload 0 /* this */
            aload 4 /* stdOut */
            aload 5 /* stdErr */
            invokevirtual org.openjdk.jmh.profile.LinuxPerfProfiler.process:(Ljava/io/File;Ljava/io/File;)Lorg/openjdk/jmh/profile/LinuxPerfProfiler$PerfResult;
            astore 6 /* result */
        start local 6 // org.openjdk.jmh.profile.LinuxPerfProfiler$PerfResult result
         1: .line 107
            aload 6 /* result */
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            areturn
        end local 6 // org.openjdk.jmh.profile.LinuxPerfProfiler$PerfResult result
        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.LinuxPerfProfiler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/openjdk/jmh/profile/LinuxPerfProfiler;
            0    2     1      br  Lorg/openjdk/jmh/results/BenchmarkResult;
            0    2     2     pid  J
            0    2     4  stdOut  Ljava/io/File;
            0    2     5  stdErr  Ljava/io/File;
            1    2     6  result  Lorg/openjdk/jmh/profile/LinuxPerfProfiler$PerfResult;
    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.LinuxPerfProfiler this
         0: .line 112
            iconst_1
            ireturn
        end local 0 // org.openjdk.jmh.profile.LinuxPerfProfiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/openjdk/jmh/profile/LinuxPerfProfiler;

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

  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.LinuxPerfProfiler this
         0: .line 122
            ldc "Linux perf Statistics"
            areturn
        end local 0 // org.openjdk.jmh.profile.LinuxPerfProfiler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/openjdk/jmh/profile/LinuxPerfProfiler;

  private org.openjdk.jmh.profile.LinuxPerfProfiler$PerfResult process(java.io.File, java.io.File);
    descriptor: (Ljava/io/File;Ljava/io/File;)Lorg/openjdk/jmh/profile/LinuxPerfProfiler$PerfResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=17, args_size=3
        start local 0 // org.openjdk.jmh.profile.LinuxPerfProfiler this
        start local 1 // java.io.File stdOut
        start local 2 // java.io.File stdErr
         0: .line 126
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 3 /* sw */
        start local 3 // java.io.StringWriter sw
         1: .line 127
            new java.io.PrintWriter
            dup
            aload 3 /* sw */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
            astore 4 /* pw */
        start local 4 // java.io.PrintWriter pw
         2: .line 129
            aconst_null
            astore 5
            aconst_null
            astore 6
         3: new java.io.FileReader
            dup
            aload 2 /* stdErr */
            invokespecial java.io.FileReader.<init>:(Ljava/io/File;)V
            astore 7 /* fr */
        start local 7 // java.io.FileReader fr
         4: .line 130
            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
         5: .line 132
            lconst_0
            lstore 9 /* cycles */
        start local 9 // long cycles
         6: .line 133
            lconst_0
            lstore 11 /* insns */
        start local 11 // long insns
         7: .line 135
            iconst_0
            istore 13 /* printing */
        start local 13 // boolean printing
         8: .line 137
            goto 24
        start local 14 // java.lang.String line
         9: .line 138
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfProfiler java.io.File java.io.File java.io.StringWriter java.io.PrintWriter java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long long int java.lang.String
      StackMap stack:
            iload 13 /* printing */
            ifeq 11
        10: .line 139
            aload 4 /* pw */
            aload 14 /* line */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        11: .line 141
      StackMap locals:
      StackMap stack:
            aload 14 /* line */
            ldc "Performance counter stats"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 13
        12: .line 142
            iconst_1
            istore 13 /* printing */
        13: .line 145
      StackMap locals:
      StackMap stack:
            ldc "(.*)#(.*)"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            aload 14 /* line */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 15 /* m */
        start local 15 // java.util.regex.Matcher m
        14: .line 146
            aload 15 /* m */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 24
        15: .line 147
            aload 15 /* m */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 16 /* pair */
        start local 16 // java.lang.String pair
        16: .line 148
            aload 16 /* pair */
            ldc " cycles"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 20
        17: .line 150
            invokestatic java.text.NumberFormat.getInstance:()Ljava/text/NumberFormat;
            aload 16 /* pair */
            ldc "[ ]+"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            iconst_0
            aaload
            invokevirtual java.text.NumberFormat.parse:(Ljava/lang/String;)Ljava/lang/Number;
            invokevirtual java.lang.Number.longValue:()J
            lstore 9 /* cycles */
        18: .line 151
            goto 20
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfProfiler java.io.File java.io.File java.io.StringWriter java.io.PrintWriter java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader long long int java.lang.String java.util.regex.Matcher java.lang.String
      StackMap stack: java.text.ParseException
        19: pop
        20: .line 155
      StackMap locals:
      StackMap stack:
            aload 14 /* line */
            ldc " instructions"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 24
        21: .line 157
            invokestatic java.text.NumberFormat.getInstance:()Ljava/text/NumberFormat;
            aload 16 /* pair */
            ldc "[ ]+"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            iconst_0
            aaload
            invokevirtual java.text.NumberFormat.parse:(Ljava/lang/String;)Ljava/lang/Number;
            invokevirtual java.lang.Number.longValue:()J
            lstore 11 /* insns */
        22: .line 158
            goto 24
      StackMap locals:
      StackMap stack: java.text.ParseException
        23: pop
        end local 16 // java.lang.String pair
        end local 15 // java.util.regex.Matcher m
        end local 14 // java.lang.String line
        24: .line 137
      StackMap locals:
      StackMap stack:
            aload 8 /* reader */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 14 /* line */
        start local 14 // java.lang.String line
        25: ifnonnull 9
        26: .line 165
            aload 0 /* this */
            getfield org.openjdk.jmh.profile.LinuxPerfProfiler.isDelayed:Z
            ifne 29
        27: .line 166
            aload 4 /* pw */
            invokevirtual java.io.PrintWriter.println:()V
        28: .line 167
            aload 4 /* pw */
            ldc "WARNING: Your system uses old \"perf\", which can not delay data collection.\nTherefore, perf performance data includes benchmark warmup."
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        29: .line 171
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* pw */
            invokevirtual java.io.PrintWriter.flush:()V
        30: .line 172
            aload 4 /* pw */
            invokevirtual java.io.PrintWriter.close:()V
        31: .line 174
            new org.openjdk.jmh.profile.LinuxPerfProfiler$PerfResult
            dup
        32: .line 175
            aload 3 /* sw */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
        33: .line 176
            lload 9 /* cycles */
        34: .line 177
            lload 11 /* insns */
        35: .line 174
            invokespecial org.openjdk.jmh.profile.LinuxPerfProfiler$PerfResult.<init>:(Ljava/lang/String;JJ)V
        36: .line 179
            aload 8 /* reader */
            ifnull 37
            aload 8 /* reader */
            invokevirtual java.io.BufferedReader.close:()V
      StackMap locals:
      StackMap stack: org.openjdk.jmh.profile.LinuxPerfProfiler$PerfResult
        37: aload 7 /* fr */
            ifnull 38
            aload 7 /* fr */
            invokevirtual java.io.FileReader.close:()V
        38: .line 174
      StackMap locals:
      StackMap stack: org.openjdk.jmh.profile.LinuxPerfProfiler$PerfResult
            areturn
        end local 14 // java.lang.String line
        end local 13 // boolean printing
        end local 11 // long insns
        end local 9 // long cycles
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfProfiler java.io.File java.io.File java.io.StringWriter java.io.PrintWriter java.lang.Throwable java.lang.Throwable java.io.FileReader java.io.BufferedReader
      StackMap stack: java.lang.Throwable
        39: astore 5
        40: .line 179
            aload 8 /* reader */
            ifnull 41
            aload 8 /* reader */
            invokevirtual java.io.BufferedReader.close:()V
        end local 8 // java.io.BufferedReader reader
      StackMap locals:
      StackMap stack:
        41: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: astore 6
            aload 5
            ifnonnull 43
            aload 6
            astore 5
            goto 44
      StackMap locals:
      StackMap stack:
        43: aload 5
            aload 6
            if_acmpeq 44
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        44: aload 7 /* fr */
            ifnull 45
            aload 7 /* fr */
            invokevirtual java.io.FileReader.close:()V
        end local 7 // java.io.FileReader fr
      StackMap locals:
      StackMap stack:
        45: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        46: astore 6
            aload 5
            ifnonnull 47
            aload 6
            astore 5
            goto 48
      StackMap locals:
      StackMap stack:
        47: aload 5
            aload 6
            if_acmpeq 48
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        48: aload 5
            athrow
      StackMap locals: org.openjdk.jmh.profile.LinuxPerfProfiler java.io.File java.io.File java.io.StringWriter java.io.PrintWriter
      StackMap stack: java.io.IOException
        49: astore 5 /* e */
        start local 5 // java.io.IOException e
        50: .line 180
            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 // java.io.PrintWriter pw
        end local 3 // java.io.StringWriter sw
        end local 2 // java.io.File stdErr
        end local 1 // java.io.File stdOut
        end local 0 // org.openjdk.jmh.profile.LinuxPerfProfiler this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   51     0      this  Lorg/openjdk/jmh/profile/LinuxPerfProfiler;
            0   51     1    stdOut  Ljava/io/File;
            0   51     2    stdErr  Ljava/io/File;
            1   51     3        sw  Ljava/io/StringWriter;
            2   51     4        pw  Ljava/io/PrintWriter;
            4   45     7        fr  Ljava/io/FileReader;
            5   41     8    reader  Ljava/io/BufferedReader;
            6   39     9    cycles  J
            7   39    11     insns  J
            8   39    13  printing  Z
            9   24    14      line  Ljava/lang/String;
           25   39    14      line  Ljava/lang/String;
           14   24    15         m  Ljava/util/regex/Matcher;
           16   24    16      pair  Ljava/lang/String;
           50   51     5         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          17    18      19  Class java.text.ParseException
          21    22      23  Class java.text.ParseException
           5    36      39  any
           4    37      42  any
          39    42      42  any
           3    38      46  any
          39    46      46  any
           2    38      49  Class java.io.IOException
          39    49      49  Class java.io.IOException
    MethodParameters:
        Name  Flags
      stdOut  
      stdErr  
}
SourceFile: "LinuxPerfProfiler.java"
NestMembers:
  org.openjdk.jmh.profile.LinuxPerfProfiler$PerfResult  org.openjdk.jmh.profile.LinuxPerfProfiler$PerfResultAggregator
InnerClasses:
  PerfResult = org.openjdk.jmh.profile.LinuxPerfProfiler$PerfResult of org.openjdk.jmh.profile.LinuxPerfProfiler
  PerfResultAggregator = org.openjdk.jmh.profile.LinuxPerfProfiler$PerfResultAggregator of org.openjdk.jmh.profile.LinuxPerfProfiler