class org.aspectj.weaver.World$TimeCollector
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.aspectj.weaver.World$TimeCollector
  super_class: java.lang.Object
{
  private org.aspectj.weaver.World world;
    descriptor: Lorg/aspectj/weaver/World;
    flags: (0x0002) ACC_PRIVATE

  long joinpointCount;
    descriptor: J
    flags: (0x0000) 

  long typeCount;
    descriptor: J
    flags: (0x0000) 

  long perJoinpointCount;
    descriptor: J
    flags: (0x0000) 

  long perTypes;
    descriptor: J
    flags: (0x0000) 

  java.util.Map<java.lang.String, java.lang.Long> joinpointsPerPointcut;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Long;>;

  java.util.Map<java.lang.String, java.lang.Long> timePerPointcut;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Long;>;

  java.util.Map<java.lang.String, java.lang.Long> fastMatchTimesPerPointcut;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Long;>;

  java.util.Map<java.lang.String, java.lang.Long> fastMatchTypesPerPointcut;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Long;>;

  void <init>(org.aspectj.weaver.World);
    descriptor: (Lorg/aspectj/weaver/World;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.World$TimeCollector this
        start local 1 // org.aspectj.weaver.World world
         0: .line 1881
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1876
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.aspectj.weaver.World$TimeCollector.joinpointsPerPointcut:Ljava/util/Map;
         2: .line 1877
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.aspectj.weaver.World$TimeCollector.timePerPointcut:Ljava/util/Map;
         3: .line 1878
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.aspectj.weaver.World$TimeCollector.fastMatchTimesPerPointcut:Ljava/util/Map;
         4: .line 1879
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.aspectj.weaver.World$TimeCollector.fastMatchTypesPerPointcut:Ljava/util/Map;
         5: .line 1882
            aload 0 /* this */
            aload 1 /* world */
            getfield org.aspectj.weaver.World.timersPerJoinpoint:J
            putfield org.aspectj.weaver.World$TimeCollector.perJoinpointCount:J
         6: .line 1883
            aload 0 /* this */
            aload 1 /* world */
            getfield org.aspectj.weaver.World.timersPerType:J
            putfield org.aspectj.weaver.World$TimeCollector.perTypes:J
         7: .line 1884
            aload 0 /* this */
            aload 1 /* world */
            putfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
         8: .line 1885
            aload 0 /* this */
            lconst_0
            putfield org.aspectj.weaver.World$TimeCollector.joinpointCount:J
         9: .line 1886
            aload 0 /* this */
            lconst_0
            putfield org.aspectj.weaver.World$TimeCollector.typeCount:J
        10: .line 1887
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.aspectj.weaver.World$TimeCollector.joinpointsPerPointcut:Ljava/util/Map;
        11: .line 1888
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.aspectj.weaver.World$TimeCollector.timePerPointcut:Ljava/util/Map;
        12: .line 1889
            return
        end local 1 // org.aspectj.weaver.World world
        end local 0 // org.aspectj.weaver.World$TimeCollector this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lorg/aspectj/weaver/World$TimeCollector;
            0   13     1  world  Lorg/aspectj/weaver/World;
    MethodParameters:
       Name  Flags
      world  

  public void report();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // org.aspectj.weaver.World$TimeCollector this
         0: .line 1892
            lconst_0
            lstore 1 /* totalTime */
        start local 1 // long totalTime
         1: .line 1893
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.joinpointsPerPointcut:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.aspectj.weaver.World$TimeCollector long top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* p */
        start local 3 // java.lang.String p
         3: .line 1894
            lload 1 /* totalTime */
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.timePerPointcut:Ljava/util/Map;
            aload 3 /* p */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            ladd
            lstore 1 /* totalTime */
        end local 3 // java.lang.String p
         4: .line 1893
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1896
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
         6: .line 1897
            new java.lang.StringBuilder
            dup
            ldc "Pointcut matching cost (total="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* totalTime */
            ldc 1000000
            ldiv
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.joinpointCount:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         7: .line 1898
            ldc " joinpoint match calls):"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 1897
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
         9: .line 1896
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        10: .line 1899
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.joinpointsPerPointcut:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 17
      StackMap locals:
      StackMap stack:
        11: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* p */
        start local 3 // java.lang.String p
        12: .line 1900
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 5 /* sb */
        start local 5 // java.lang.StringBuffer sb
        13: .line 1901
            aload 5 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "Time:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.timePerPointcut:Ljava/util/Map;
            aload 3 /* p */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            ldc 1000000
            ldiv
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms (jps:#"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.joinpointsPerPointcut:Ljava/util/Map;
            aload 3 /* p */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        14: .line 1902
            ldc ") matching against "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 1901
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        16: .line 1903
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
            aload 5 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        end local 5 // java.lang.StringBuffer sb
        end local 3 // java.lang.String p
        17: .line 1899
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        18: .line 1905
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
            ldc "---"
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        19: .line 1907
            lconst_0
            lstore 1 /* totalTime */
        20: .line 1908
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTimesPerPointcut:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 23
      StackMap locals:
      StackMap stack:
        21: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* p */
        start local 3 // java.lang.String p
        22: .line 1909
            lload 1 /* totalTime */
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTimesPerPointcut:Ljava/util/Map;
            aload 3 /* p */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            ladd
            lstore 1 /* totalTime */
        end local 3 // java.lang.String p
        23: .line 1908
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        24: .line 1911
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
        25: .line 1912
            new java.lang.StringBuilder
            dup
            ldc "Pointcut fast matching cost (total="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* totalTime */
            ldc 1000000
            ldiv
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.typeCount:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        26: .line 1913
            ldc " fast match calls):"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        27: .line 1912
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
        28: .line 1911
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        29: .line 1914
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTimesPerPointcut:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 36
      StackMap locals:
      StackMap stack:
        30: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* p */
        start local 3 // java.lang.String p
        31: .line 1915
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 5 /* sb */
        start local 5 // java.lang.StringBuffer sb
        32: .line 1916
            aload 5 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "Time:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTimesPerPointcut:Ljava/util/Map;
            aload 3 /* p */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            ldc 1000000
            ldiv
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms (types:#"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTypesPerPointcut:Ljava/util/Map;
            aload 3 /* p */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        33: .line 1917
            ldc ") fast matching against "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 1916
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        35: .line 1918
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
            aload 5 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        end local 5 // java.lang.StringBuffer sb
        end local 3 // java.lang.String p
        36: .line 1914
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        37: .line 1920
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
            ldc "---"
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        38: .line 1922
            return
        end local 1 // long totalTime
        end local 0 // org.aspectj.weaver.World$TimeCollector this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   39     0       this  Lorg/aspectj/weaver/World$TimeCollector;
            1   39     1  totalTime  J
            3    4     3          p  Ljava/lang/String;
           12   17     3          p  Ljava/lang/String;
           13   17     5         sb  Ljava/lang/StringBuffer;
           22   23     3          p  Ljava/lang/String;
           31   36     3          p  Ljava/lang/String;
           32   36     5         sb  Ljava/lang/StringBuffer;

  void record(org.aspectj.weaver.patterns.Pointcut, long);
    descriptor: (Lorg/aspectj/weaver/patterns/Pointcut;J)V
    flags: (0x0000) 
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // org.aspectj.weaver.World$TimeCollector this
        start local 1 // org.aspectj.weaver.patterns.Pointcut pointcut
        start local 2 // long timetakenInNs
         0: .line 1925
            aload 0 /* this */
            dup
            getfield org.aspectj.weaver.World$TimeCollector.joinpointCount:J
            lconst_1
            ladd
            putfield org.aspectj.weaver.World$TimeCollector.joinpointCount:J
         1: .line 1926
            aload 1 /* pointcut */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 4 /* pointcutText */
        start local 4 // java.lang.String pointcutText
         2: .line 1927
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.joinpointsPerPointcut:Ljava/util/Map;
            aload 4 /* pointcutText */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 5 /* jpcounter */
        start local 5 // java.lang.Long jpcounter
         3: .line 1928
            aload 5 /* jpcounter */
            ifnonnull 6
         4: .line 1929
            lconst_1
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 5 /* jpcounter */
         5: .line 1930
            goto 7
         6: .line 1931
      StackMap locals: java.lang.String java.lang.Long
      StackMap stack:
            aload 5 /* jpcounter */
            invokevirtual java.lang.Long.longValue:()J
            lconst_1
            ladd
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 5 /* jpcounter */
         7: .line 1933
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.joinpointsPerPointcut:Ljava/util/Map;
            aload 4 /* pointcutText */
            aload 5 /* jpcounter */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 1935
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.timePerPointcut:Ljava/util/Map;
            aload 4 /* pointcutText */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 6 /* time */
        start local 6 // java.lang.Long time
         9: .line 1936
            aload 6 /* time */
            ifnonnull 12
        10: .line 1937
            lload 2 /* timetakenInNs */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 6 /* time */
        11: .line 1938
            goto 13
        12: .line 1939
      StackMap locals: java.lang.Long
      StackMap stack:
            aload 6 /* time */
            invokevirtual java.lang.Long.longValue:()J
            lload 2 /* timetakenInNs */
            ladd
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 6 /* time */
        13: .line 1941
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.timePerPointcut:Ljava/util/Map;
            aload 4 /* pointcutText */
            aload 6 /* time */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 1942
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            getfield org.aspectj.weaver.World.timingPeriodically:Z
            ifeq 35
        15: .line 1943
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.joinpointCount:J
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.perJoinpointCount:J
            lrem
            lconst_0
            lcmp
            ifne 35
        16: .line 1944
            lconst_0
            lstore 7 /* totalTime */
        start local 7 // long totalTime
        17: .line 1945
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.joinpointsPerPointcut:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 20
      StackMap locals: org.aspectj.weaver.World$TimeCollector org.aspectj.weaver.patterns.Pointcut long java.lang.String java.lang.Long java.lang.Long long top java.util.Iterator
      StackMap stack:
        18: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* p */
        start local 9 // java.lang.String p
        19: .line 1946
            lload 7 /* totalTime */
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.timePerPointcut:Ljava/util/Map;
            aload 9 /* p */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            ladd
            lstore 7 /* totalTime */
        end local 9 // java.lang.String p
        20: .line 1945
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        21: .line 1948
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
        22: .line 1949
            new java.lang.StringBuilder
            dup
            ldc "Pointcut matching cost (total="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 7 /* totalTime */
            ldc 1000000
            ldiv
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.joinpointCount:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        23: .line 1950
            ldc " joinpoint match calls):"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 1949
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
        25: .line 1948
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        26: .line 1951
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.joinpointsPerPointcut:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 33
      StackMap locals:
      StackMap stack:
        27: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* p */
        start local 9 // java.lang.String p
        28: .line 1952
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 11 /* sb */
        start local 11 // java.lang.StringBuffer sb
        29: .line 1953
            aload 11 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "Time:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.timePerPointcut:Ljava/util/Map;
            aload 9 /* p */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            ldc 1000000
            ldiv
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms (jps:#"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.joinpointsPerPointcut:Ljava/util/Map;
            aload 9 /* p */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        30: .line 1954
            ldc ") matching against "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        31: .line 1953
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        32: .line 1955
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
            aload 11 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        end local 11 // java.lang.StringBuffer sb
        end local 9 // java.lang.String p
        33: .line 1951
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        34: .line 1957
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
            ldc "---"
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        end local 7 // long totalTime
        35: .line 1960
      StackMap locals: org.aspectj.weaver.World$TimeCollector org.aspectj.weaver.patterns.Pointcut long java.lang.String java.lang.Long java.lang.Long
      StackMap stack:
            return
        end local 6 // java.lang.Long time
        end local 5 // java.lang.Long jpcounter
        end local 4 // java.lang.String pointcutText
        end local 2 // long timetakenInNs
        end local 1 // org.aspectj.weaver.patterns.Pointcut pointcut
        end local 0 // org.aspectj.weaver.World$TimeCollector this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   36     0           this  Lorg/aspectj/weaver/World$TimeCollector;
            0   36     1       pointcut  Lorg/aspectj/weaver/patterns/Pointcut;
            0   36     2  timetakenInNs  J
            2   36     4   pointcutText  Ljava/lang/String;
            3   36     5      jpcounter  Ljava/lang/Long;
            9   36     6           time  Ljava/lang/Long;
           17   35     7      totalTime  J
           19   20     9              p  Ljava/lang/String;
           28   33     9              p  Ljava/lang/String;
           29   33    11             sb  Ljava/lang/StringBuffer;
    MethodParameters:
               Name  Flags
      pointcut       
      timetakenInNs  

  void recordFastMatch(org.aspectj.weaver.patterns.Pointcut, long);
    descriptor: (Lorg/aspectj/weaver/patterns/Pointcut;J)V
    flags: (0x0000) 
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // org.aspectj.weaver.World$TimeCollector this
        start local 1 // org.aspectj.weaver.patterns.Pointcut pointcut
        start local 2 // long timetakenInNs
         0: .line 1963
            aload 0 /* this */
            dup
            getfield org.aspectj.weaver.World$TimeCollector.typeCount:J
            lconst_1
            ladd
            putfield org.aspectj.weaver.World$TimeCollector.typeCount:J
         1: .line 1964
            aload 1 /* pointcut */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 4 /* pointcutText */
        start local 4 // java.lang.String pointcutText
         2: .line 1965
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTypesPerPointcut:Ljava/util/Map;
            aload 4 /* pointcutText */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 5 /* typecounter */
        start local 5 // java.lang.Long typecounter
         3: .line 1966
            aload 5 /* typecounter */
            ifnonnull 6
         4: .line 1967
            lconst_1
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 5 /* typecounter */
         5: .line 1968
            goto 7
         6: .line 1969
      StackMap locals: java.lang.String java.lang.Long
      StackMap stack:
            aload 5 /* typecounter */
            invokevirtual java.lang.Long.longValue:()J
            lconst_1
            ladd
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 5 /* typecounter */
         7: .line 1971
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTypesPerPointcut:Ljava/util/Map;
            aload 4 /* pointcutText */
            aload 5 /* typecounter */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 1973
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTimesPerPointcut:Ljava/util/Map;
            aload 4 /* pointcutText */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 6 /* time */
        start local 6 // java.lang.Long time
         9: .line 1974
            aload 6 /* time */
            ifnonnull 12
        10: .line 1975
            lload 2 /* timetakenInNs */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 6 /* time */
        11: .line 1976
            goto 13
        12: .line 1977
      StackMap locals: java.lang.Long
      StackMap stack:
            aload 6 /* time */
            invokevirtual java.lang.Long.longValue:()J
            lload 2 /* timetakenInNs */
            ladd
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 6 /* time */
        13: .line 1979
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTimesPerPointcut:Ljava/util/Map;
            aload 4 /* pointcutText */
            aload 6 /* time */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 1980
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            getfield org.aspectj.weaver.World.timingPeriodically:Z
            ifeq 35
        15: .line 1981
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.typeCount:J
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.perTypes:J
            lrem
            lconst_0
            lcmp
            ifne 35
        16: .line 1982
            lconst_0
            lstore 7 /* totalTime */
        start local 7 // long totalTime
        17: .line 1983
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTimesPerPointcut:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 20
      StackMap locals: org.aspectj.weaver.World$TimeCollector org.aspectj.weaver.patterns.Pointcut long java.lang.String java.lang.Long java.lang.Long long top java.util.Iterator
      StackMap stack:
        18: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* p */
        start local 9 // java.lang.String p
        19: .line 1984
            lload 7 /* totalTime */
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTimesPerPointcut:Ljava/util/Map;
            aload 9 /* p */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            ladd
            lstore 7 /* totalTime */
        end local 9 // java.lang.String p
        20: .line 1983
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        21: .line 1986
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
        22: .line 1987
            new java.lang.StringBuilder
            dup
            ldc "Pointcut fast matching cost (total="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 7 /* totalTime */
            ldc 1000000
            ldiv
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.typeCount:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        23: .line 1988
            ldc " fast match calls):"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 1987
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
        25: .line 1986
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        26: .line 1989
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTimesPerPointcut:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 33
      StackMap locals:
      StackMap stack:
        27: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* p */
        start local 9 // java.lang.String p
        28: .line 1990
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 11 /* sb */
        start local 11 // java.lang.StringBuffer sb
        29: .line 1991
            aload 11 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "Time:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTimesPerPointcut:Ljava/util/Map;
            aload 9 /* p */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            ldc 1000000
            ldiv
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms (types:#"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        30: .line 1992
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.fastMatchTypesPerPointcut:Ljava/util/Map;
            aload 9 /* p */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ") fast matching against "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        31: .line 1991
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        32: .line 1993
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
            aload 11 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        end local 11 // java.lang.StringBuffer sb
        end local 9 // java.lang.String p
        33: .line 1989
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        34: .line 1995
            aload 0 /* this */
            getfield org.aspectj.weaver.World$TimeCollector.world:Lorg/aspectj/weaver/World;
            invokevirtual org.aspectj.weaver.World.getMessageHandler:()Lorg/aspectj/bridge/IMessageHandler;
            ldc "---"
            invokestatic org.aspectj.bridge.MessageUtil.info:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
            invokeinterface org.aspectj.bridge.IMessageHandler.handleMessage:(Lorg/aspectj/bridge/IMessage;)Z
            pop
        end local 7 // long totalTime
        35: .line 1998
      StackMap locals: org.aspectj.weaver.World$TimeCollector org.aspectj.weaver.patterns.Pointcut long java.lang.String java.lang.Long java.lang.Long
      StackMap stack:
            return
        end local 6 // java.lang.Long time
        end local 5 // java.lang.Long typecounter
        end local 4 // java.lang.String pointcutText
        end local 2 // long timetakenInNs
        end local 1 // org.aspectj.weaver.patterns.Pointcut pointcut
        end local 0 // org.aspectj.weaver.World$TimeCollector this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   36     0           this  Lorg/aspectj/weaver/World$TimeCollector;
            0   36     1       pointcut  Lorg/aspectj/weaver/patterns/Pointcut;
            0   36     2  timetakenInNs  J
            2   36     4   pointcutText  Ljava/lang/String;
            3   36     5    typecounter  Ljava/lang/Long;
            9   36     6           time  Ljava/lang/Long;
           17   35     7      totalTime  J
           19   20     9              p  Ljava/lang/String;
           28   33     9              p  Ljava/lang/String;
           29   33    11             sb  Ljava/lang/StringBuffer;
    MethodParameters:
               Name  Flags
      pointcut       
      timetakenInNs  
}
SourceFile: "World.java"
NestHost: org.aspectj.weaver.World
InnerClasses:
  private TimeCollector = org.aspectj.weaver.World$TimeCollector of org.aspectj.weaver.World