public class org.h2.engine.QueryStatisticsData
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.engine.QueryStatisticsData
super_class: java.lang.Object
{
private static final java.util.Comparator<org.h2.engine.QueryStatisticsData$QueryEntry> QUERY_ENTRY_COMPARATOR;
descriptor: Ljava/util/Comparator;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Comparator<Lorg/h2/engine/QueryStatisticsData$QueryEntry;>;
private final java.util.HashMap<java.lang.String, org.h2.engine.QueryStatisticsData$QueryEntry> map;
descriptor: Ljava/util/HashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/h2/engine/QueryStatisticsData$QueryEntry;>;
private int maxQueryEntries;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.h2.engine.QueryStatisticsData$1
dup
invokespecial org.h2.engine.QueryStatisticsData$1.<init>:()V
1: putstatic org.h2.engine.QueryStatisticsData.QUERY_ENTRY_COMPARATOR:Ljava/util/Comparator;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.h2.engine.QueryStatisticsData.map:Ljava/util/HashMap;
3: aload 0
iload 1
putfield org.h2.engine.QueryStatisticsData.maxQueryEntries:I
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/engine/QueryStatisticsData;
0 5 1 maxQueryEntries I
MethodParameters:
Name Flags
maxQueryEntries
public synchronized void setMaxQueryEntries(int);
descriptor: (I)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.h2.engine.QueryStatisticsData.maxQueryEntries:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/engine/QueryStatisticsData;
0 2 1 maxQueryEntries I
MethodParameters:
Name Flags
maxQueryEntries
public synchronized java.util.List<org.h2.engine.QueryStatisticsData$QueryEntry> getQueries();
descriptor: ()Ljava/util/List;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=2, args_size=1
start local 0 0: new java.util.ArrayList
dup
aload 0
getfield org.h2.engine.QueryStatisticsData.map:Ljava/util/HashMap;
invokevirtual java.util.HashMap.values:()Ljava/util/Collection;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 1
start local 1 1: aload 1
getstatic org.h2.engine.QueryStatisticsData.QUERY_ENTRY_COMPARATOR:Ljava/util/Comparator;
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
2: aload 1
iconst_0
aload 1
invokevirtual java.util.ArrayList.size:()I
aload 0
getfield org.h2.engine.QueryStatisticsData.maxQueryEntries:I
invokestatic java.lang.Math.min:(II)I
invokevirtual java.util.ArrayList.subList:(II)Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/engine/QueryStatisticsData;
1 3 1 list Ljava/util/ArrayList<Lorg/h2/engine/QueryStatisticsData$QueryEntry;>;
Signature: ()Ljava/util/List<Lorg/h2/engine/QueryStatisticsData$QueryEntry;>;
public synchronized void update(java.lang.String, long, int);
descriptor: (Ljava/lang/String;JI)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
getfield org.h2.engine.QueryStatisticsData.map:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.engine.QueryStatisticsData$QueryEntry
astore 5
start local 5 1: aload 5
ifnonnull 4
2: new org.h2.engine.QueryStatisticsData$QueryEntry
dup
aload 1
invokespecial org.h2.engine.QueryStatisticsData$QueryEntry.<init>:(Ljava/lang/String;)V
astore 5
3: aload 0
getfield org.h2.engine.QueryStatisticsData.map:Ljava/util/HashMap;
aload 1
aload 5
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: org.h2.engine.QueryStatisticsData$QueryEntry
StackMap stack:
aload 5
lload 2
iload 4
invokevirtual org.h2.engine.QueryStatisticsData$QueryEntry.update:(JI)V
5: aload 0
getfield org.h2.engine.QueryStatisticsData.map:Ljava/util/HashMap;
invokevirtual java.util.HashMap.size:()I
i2f
aload 0
getfield org.h2.engine.QueryStatisticsData.maxQueryEntries:I
i2f
ldc 1.5
fmul
fcmpl
ifle 17
6: new java.util.ArrayList
dup
aload 0
getfield org.h2.engine.QueryStatisticsData.map:Ljava/util/HashMap;
invokevirtual java.util.HashMap.values:()Ljava/util/Collection;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 6
start local 6 7: aload 6
getstatic org.h2.engine.QueryStatisticsData.QUERY_ENTRY_COMPARATOR:Ljava/util/Comparator;
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
8: new java.util.HashSet
dup
aload 6
iconst_0
aload 6
invokevirtual java.util.ArrayList.size:()I
iconst_3
idiv
invokevirtual java.util.ArrayList.subList:(II)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
9: astore 7
start local 7 10: aload 0
getfield org.h2.engine.QueryStatisticsData.map:Ljava/util/HashMap;
invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
11: astore 8
start local 8 12: goto 16
13: StackMap locals: java.util.ArrayList java.util.HashSet java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 9
start local 9 14: aload 7
aload 9
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
ifeq 16
15: aload 8
invokeinterface java.util.Iterator.remove:()V
end local 9 16: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
end local 8 end local 7 end local 6 17: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/h2/engine/QueryStatisticsData;
0 18 1 sqlStatement Ljava/lang/String;
0 18 2 executionTimeNanos J
0 18 4 rowCount I
1 18 5 entry Lorg/h2/engine/QueryStatisticsData$QueryEntry;
7 17 6 list Ljava/util/ArrayList<Lorg/h2/engine/QueryStatisticsData$QueryEntry;>;
10 17 7 oldestSet Ljava/util/HashSet<Lorg/h2/engine/QueryStatisticsData$QueryEntry;>;
12 17 8 it Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Lorg/h2/engine/QueryStatisticsData$QueryEntry;>;>;
14 16 9 mapEntry Ljava/util/Map$Entry<Ljava/lang/String;Lorg/h2/engine/QueryStatisticsData$QueryEntry;>;
MethodParameters:
Name Flags
sqlStatement
executionTimeNanos
rowCount
}
SourceFile: "QueryStatisticsData.java"
NestMembers:
org.h2.engine.QueryStatisticsData$1 org.h2.engine.QueryStatisticsData$QueryEntry
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
org.h2.engine.QueryStatisticsData$1
public final QueryEntry = org.h2.engine.QueryStatisticsData$QueryEntry of org.h2.engine.QueryStatisticsData