final class jdk.nashorn.internal.runtime.Timing$TimeSupplier implements java.util.function.Supplier<java.lang.String>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.nashorn.internal.runtime.Timing$TimeSupplier
super_class: java.lang.Object
{
private final java.util.Map<java.lang.String, java.util.concurrent.atomic.LongAdder> timings;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/concurrent/atomic/LongAdder;>;
private final java.util.concurrent.LinkedBlockingQueue<java.lang.String> orderedTimingNames;
descriptor: Ljava/util/concurrent/LinkedBlockingQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/LinkedBlockingQueue<Ljava/lang/String;>;
private final java.util.function.Function<java.lang.String, java.util.concurrent.atomic.LongAdder> newTimingCreator;
descriptor: Ljava/util/function/Function;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/Function<Ljava/lang/String;Ljava/util/concurrent/atomic/LongAdder;>;
final jdk.nashorn.internal.runtime.Timing this$0;
descriptor: Ljdk/nashorn/internal/runtime/Timing;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(jdk.nashorn.internal.runtime.Timing);
descriptor: (Ljdk/nashorn/internal/runtime/Timing;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield jdk.nashorn.internal.runtime.Timing$TimeSupplier.this$0:Ljdk/nashorn/internal/runtime/Timing;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield jdk.nashorn.internal.runtime.Timing$TimeSupplier.timings:Ljava/util/Map;
2: aload 0
new java.util.concurrent.LinkedBlockingQueue
dup
invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
putfield jdk.nashorn.internal.runtime.Timing$TimeSupplier.orderedTimingNames:Ljava/util/concurrent/LinkedBlockingQueue;
3: aload 0
aload 0
invokedynamic apply(Ljdk/nashorn/internal/runtime/Timing$TimeSupplier;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
jdk/nashorn/internal/runtime/Timing$TimeSupplier.lambda$0(Ljava/lang/String;)Ljava/util/concurrent/atomic/LongAdder; (7)
(Ljava/lang/String;)Ljava/util/concurrent/atomic/LongAdder;
putfield jdk.nashorn.internal.runtime.Timing$TimeSupplier.newTimingCreator:Ljava/util/function/Function;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/nashorn/internal/runtime/Timing$TimeSupplier;
MethodParameters:
Name Flags
this$0 final
java.lang.String[] getStrings();
descriptor: ()[Ljava/lang/String;
flags: (0x0000)
Code:
stack=5, locals=5, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: new java.io.BufferedReader
dup
new java.io.StringReader
dup
aload 0
invokevirtual jdk.nashorn.internal.runtime.Timing$TimeSupplier.get:()Ljava/lang/String;
invokespecial java.io.StringReader.<init>:(Ljava/lang/String;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 2
start local 2 2: goto 4
start local 3 3: StackMap locals: java.util.List java.io.BufferedReader java.lang.String
StackMap stack:
aload 1
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 4: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 3
start local 3 5: ifnonnull 3
6: goto 9
end local 3 StackMap locals:
StackMap stack: java.io.IOException
7: astore 4
start local 4 8: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 start local 3 9: StackMap locals: java.lang.String
StackMap stack:
aload 1
iconst_0
anewarray java.lang.String
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/nashorn/internal/runtime/Timing$TimeSupplier;
1 10 1 strs Ljava/util/List<Ljava/lang/String;>;
2 10 2 br Ljava/io/BufferedReader;
3 4 3 line Ljava/lang/String;
5 7 3 line Ljava/lang/String;
9 10 3 line Ljava/lang/String;
8 9 4 e Ljava/io/IOException;
Exception table:
from to target type
2 6 7 Class java.io.IOException
public java.lang.String get();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=15, args_size=1
start local 0 0: invokestatic java.lang.System.nanoTime:()J
lstore 1
start local 1 1: lconst_0
lstore 3
start local 3 2: iconst_0
istore 5
start local 5 3: iconst_0
istore 6
start local 6 4: aload 0
getfield jdk.nashorn.internal.runtime.Timing$TimeSupplier.timings:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 8
StackMap locals: jdk.nashorn.internal.runtime.Timing$TimeSupplier long long int int top java.util.Iterator
StackMap stack:
5: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 7
start local 7 6: iload 5
aload 7
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.length:()I
invokestatic java.lang.Math.max:(II)I
istore 5
7: iload 6
aload 7
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.concurrent.atomic.LongAdder
invokevirtual java.util.concurrent.atomic.LongAdder.longValue:()J
invokestatic jdk.nashorn.internal.runtime.Timing.toMillisPrint:(J)Ljava/lang/String;
invokevirtual java.lang.String.length:()I
invokestatic java.lang.Math.max:(II)I
istore 6
end local 7 8: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
9: iinc 5 1
10: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 7
start local 7 11: aload 7
ldc "Accumulated compilation phase timings:\n\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 0
getfield jdk.nashorn.internal.runtime.Timing$TimeSupplier.orderedTimingNames:Ljava/util/concurrent/LinkedBlockingQueue;
invokevirtual java.util.concurrent.LinkedBlockingQueue.iterator:()Ljava/util/Iterator;
astore 9
goto 31
StackMap locals: jdk.nashorn.internal.runtime.Timing$TimeSupplier long long int int java.lang.StringBuilder top java.util.Iterator
StackMap stack:
13: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 14: aload 7
invokevirtual java.lang.StringBuilder.length:()I
istore 10
start local 10 15: aload 7
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: aload 7
invokevirtual java.lang.StringBuilder.length:()I
iload 10
isub
istore 10
17: goto 19
18: StackMap locals: jdk.nashorn.internal.runtime.Timing$TimeSupplier long long int int java.lang.StringBuilder java.lang.String java.util.Iterator int
StackMap stack:
aload 7
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
19: StackMap locals:
StackMap stack:
iload 10
iinc 10 1
iload 5
if_icmplt 18
20: aload 0
getfield jdk.nashorn.internal.runtime.Timing$TimeSupplier.timings:Ljava/util/Map;
aload 8
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.concurrent.atomic.LongAdder
invokevirtual java.util.concurrent.atomic.LongAdder.longValue:()J
lstore 11
start local 11 21: lload 11
invokestatic jdk.nashorn.internal.runtime.Timing.toMillisPrint:(J)Ljava/lang/String;
astore 13
start local 13 22: aload 13
invokevirtual java.lang.String.length:()I
istore 10
23: iconst_0
istore 14
start local 14 24: goto 27
25: StackMap locals: long java.lang.String int
StackMap stack:
aload 7
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
26: iinc 14 1
StackMap locals:
StackMap stack:
27: iload 14
iload 6
iload 10
isub
if_icmplt 25
end local 14 28: aload 7
aload 13
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
29: ldc " ms\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
30: lload 3
lload 11
ladd
lstore 3
end local 13 end local 11 end local 10 end local 8 31: StackMap locals: jdk.nashorn.internal.runtime.Timing$TimeSupplier long long int int java.lang.StringBuilder top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
32: lload 1
aload 0
getfield jdk.nashorn.internal.runtime.Timing$TimeSupplier.this$0:Ljdk/nashorn/internal/runtime/Timing;
getfield jdk.nashorn.internal.runtime.Timing.startTime:J
lsub
lstore 8
start local 8 33: aload 7
ldc "\nTotal runtime: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
34: lload 8
invokestatic jdk.nashorn.internal.runtime.Timing.toMillisPrint:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
35: ldc " ms (Non-runtime: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
36: lload 3
invokestatic jdk.nashorn.internal.runtime.Timing.toMillisPrint:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
37: ldc " ms ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
38: lload 3
l2d
ldc 100.0
dmul
lload 8
l2d
ddiv
d2i
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
39: ldc "%])"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
40: ldc "\n\nEmitted compile units: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
41: invokestatic jdk.nashorn.internal.codegen.CompileUnit.getEmittedUnitCount:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
42: ldc "\nCompile units installed as named classes: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
43: invokestatic jdk.nashorn.internal.runtime.Context.getNamedInstalledScriptCount:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
44: ldc "\nCompile units installed as anonymous classes: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
45: invokestatic jdk.nashorn.internal.runtime.Context.getAnonymousInstalledScriptCount:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
46: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
47: areturn
end local 8 end local 7 end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 this Ljdk/nashorn/internal/runtime/Timing$TimeSupplier;
1 48 1 t J
2 48 3 knownTime J
3 48 5 maxKeyLength I
4 48 6 maxValueLength I
6 8 7 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/concurrent/atomic/LongAdder;>;
11 48 7 sb Ljava/lang/StringBuilder;
14 31 8 timingName Ljava/lang/String;
15 31 10 len I
21 31 11 duration J
22 31 13 strDuration Ljava/lang/String;
24 28 14 i I
33 48 8 total J
private void accumulateTime(java.lang.String, long);
descriptor: (Ljava/lang/String;J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.nashorn.internal.runtime.Timing$TimeSupplier.timings:Ljava/util/Map;
aload 1
aload 0
getfield jdk.nashorn.internal.runtime.Timing$TimeSupplier.newTimingCreator:Ljava/util/function/Function;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.util.concurrent.atomic.LongAdder
lload 2
invokevirtual java.util.concurrent.atomic.LongAdder.add:(J)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/Timing$TimeSupplier;
0 2 1 module Ljava/lang/String;
0 2 2 duration J
MethodParameters:
Name Flags
module final
duration final
public java.lang.Object get();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual jdk.nashorn.internal.runtime.Timing$TimeSupplier.get:()Ljava/lang/String;
areturn
LocalVariableTable:
Start End Slot Name Signature
private java.util.concurrent.atomic.LongAdder lambda$0(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/concurrent/atomic/LongAdder;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.nashorn.internal.runtime.Timing$TimeSupplier.orderedTimingNames:Ljava/util/concurrent/LinkedBlockingQueue;
aload 1
invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
pop
1: new java.util.concurrent.atomic.LongAdder
dup
invokespecial java.util.concurrent.atomic.LongAdder.<init>:()V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/Timing$TimeSupplier;
0 2 1 s Ljava/lang/String;
}
Signature: Ljava/lang/Object;Ljava/util/function/Supplier<Ljava/lang/String;>;
SourceFile: "Timing.java"
NestHost: jdk.nashorn.internal.runtime.Timing
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
final TimeSupplier = jdk.nashorn.internal.runtime.Timing$TimeSupplier of jdk.nashorn.internal.runtime.Timing