public abstract class org.joni.bench.AbstractBench
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.joni.bench.AbstractBench
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.joni.bench.AbstractBench this
         0: .line 8
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.joni.bench.AbstractBench this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joni/bench/AbstractBench;

  protected void bench(java.lang.String, java.lang.String, int, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=13, args_size=5
        start local 0 // org.joni.bench.AbstractBench this
        start local 1 // java.lang.String _reg
        start local 2 // java.lang.String _str
        start local 3 // int warmup
        start local 4 // int times
         0: .line 10
            aload 1 /* _reg */
            invokevirtual java.lang.String.getBytes:()[B
            astore 5 /* reg */
        start local 5 // byte[] reg
         1: .line 11
            aload 2 /* _str */
            invokevirtual java.lang.String.getBytes:()[B
            astore 6 /* str */
        start local 6 // byte[] str
         2: .line 13
            new org.joni.Regex
            dup
            aload 5 /* reg */
            iconst_0
            aload 5 /* reg */
            arraylength
            iconst_0
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            getstatic org.joni.Syntax.DEFAULT:Lorg/joni/Syntax;
            invokespecial org.joni.Regex.<init>:([BIIILorg/jcodings/Encoding;Lorg/joni/Syntax;)V
            astore 7 /* p */
        start local 7 // org.joni.Regex p
         3: .line 15
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "::: /"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* _reg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/ =~ \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* _str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* warmup */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " * "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* times */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " times"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 17
            iconst_0
            istore 8 /* j */
        start local 8 // int j
         5: goto 15
         6: .line 18
      StackMap locals: org.joni.bench.AbstractBench java.lang.String java.lang.String int int byte[] byte[] org.joni.Regex int
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 9 /* before */
        start local 9 // long before
         7: .line 19
            iconst_0
            istore 11 /* i */
        start local 11 // int i
         8: goto 11
         9: .line 20
      StackMap locals: long int
      StackMap stack:
            aload 7 /* p */
            aload 6 /* str */
            iconst_0
            aload 6 /* str */
            arraylength
            invokevirtual org.joni.Regex.matcher:([BII)Lorg/joni/Matcher;
            iconst_0
            aload 6 /* str */
            arraylength
            iconst_0
            invokevirtual org.joni.Matcher.search:(III)I
            pop
        10: .line 19
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 11 /* i */
            iload 4 /* times */
            if_icmplt 9
        end local 11 // int i
        12: .line 22
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 9 /* before */
            lsub
            lstore 11 /* time */
        start local 11 // long time
        13: .line 23
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ":  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 11 /* time */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 11 // long time
        end local 9 // long before
        14: .line 17
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        15: iload 8 /* j */
            iload 3 /* warmup */
            if_icmplt 6
        end local 8 // int j
        16: .line 25
            return
        end local 7 // org.joni.Regex p
        end local 6 // byte[] str
        end local 5 // byte[] reg
        end local 4 // int times
        end local 3 // int warmup
        end local 2 // java.lang.String _str
        end local 1 // java.lang.String _reg
        end local 0 // org.joni.bench.AbstractBench this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Lorg/joni/bench/AbstractBench;
            0   17     1    _reg  Ljava/lang/String;
            0   17     2    _str  Ljava/lang/String;
            0   17     3  warmup  I
            0   17     4   times  I
            1   17     5     reg  [B
            2   17     6     str  [B
            3   17     7       p  Lorg/joni/Regex;
            5   16     8       j  I
            7   14     9  before  J
            8   12    11       i  I
           13   14    11    time  J
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
        Name  Flags
      _reg    
      _str    
      warmup  
      times   

  protected void benchBestOf(java.lang.String, java.lang.String, int, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=15, args_size=5
        start local 0 // org.joni.bench.AbstractBench this
        start local 1 // java.lang.String _reg
        start local 2 // java.lang.String _str
        start local 3 // int warmup
        start local 4 // int times
         0: .line 28
            aload 1 /* _reg */
            invokevirtual java.lang.String.getBytes:()[B
            astore 5 /* reg */
        start local 5 // byte[] reg
         1: .line 29
            aload 2 /* _str */
            invokevirtual java.lang.String.getBytes:()[B
            astore 6 /* str */
        start local 6 // byte[] str
         2: .line 31
            new org.joni.Regex
            dup
            aload 5 /* reg */
            iconst_0
            aload 5 /* reg */
            arraylength
            iconst_0
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            getstatic org.joni.Syntax.DEFAULT:Lorg/joni/Syntax;
            invokespecial org.joni.Regex.<init>:([BIIILorg/jcodings/Encoding;Lorg/joni/Syntax;)V
            astore 7 /* p */
        start local 7 // org.joni.Regex p
         3: .line 33
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "::: /"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* _reg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/ =~ \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* _str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* warmup */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " * "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* times */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " times"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 35
            ldc 9223372036854775807
            lstore 8 /* best */
        start local 8 // long best
         5: .line 37
            iconst_0
            istore 10 /* j */
        start local 10 // int j
         6: goto 18
         7: .line 38
      StackMap locals: org.joni.bench.AbstractBench java.lang.String java.lang.String int int byte[] byte[] org.joni.Regex long int
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 11 /* before */
        start local 11 // long before
         8: .line 39
            iconst_0
            istore 13 /* i */
        start local 13 // int i
         9: goto 12
        10: .line 40
      StackMap locals: long int
      StackMap stack:
            aload 7 /* p */
            aload 6 /* str */
            iconst_0
            aload 6 /* str */
            arraylength
            invokevirtual org.joni.Regex.matcher:([BII)Lorg/joni/Matcher;
            iconst_0
            aload 6 /* str */
            arraylength
            iconst_0
            invokevirtual org.joni.Matcher.search:(III)I
            pop
        11: .line 39
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 13 /* i */
            iload 4 /* times */
            if_icmplt 10
        end local 13 // int i
        13: .line 42
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 11 /* before */
            lsub
            lstore 13 /* time */
        start local 13 // long time
        14: .line 43
            lload 13 /* time */
            lload 8 /* best */
            lcmp
            ifge 16
        15: .line 44
            lload 13 /* time */
            lstore 8 /* best */
        16: .line 46
      StackMap locals: org.joni.bench.AbstractBench java.lang.String java.lang.String int int byte[] byte[] org.joni.Regex long int long long
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "."
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        end local 13 // long time
        end local 11 // long before
        17: .line 37
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        18: iload 10 /* j */
            iload 3 /* warmup */
            if_icmplt 7
        end local 10 // int j
        19: .line 48
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc ":  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 8 /* best */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        20: .line 49
            return
        end local 8 // long best
        end local 7 // org.joni.Regex p
        end local 6 // byte[] str
        end local 5 // byte[] reg
        end local 4 // int times
        end local 3 // int warmup
        end local 2 // java.lang.String _str
        end local 1 // java.lang.String _reg
        end local 0 // org.joni.bench.AbstractBench this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   21     0    this  Lorg/joni/bench/AbstractBench;
            0   21     1    _reg  Ljava/lang/String;
            0   21     2    _str  Ljava/lang/String;
            0   21     3  warmup  I
            0   21     4   times  I
            1   21     5     reg  [B
            2   21     6     str  [B
            3   21     7       p  Lorg/joni/Regex;
            5   21     8    best  J
            6   19    10       j  I
            8   17    11  before  J
            9   13    13       i  I
           14   17    13    time  J
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
        Name  Flags
      _reg    
      _str    
      warmup  
      times   
}
SourceFile: "AbstractBench.java"