public class org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder
super_class: java.lang.Object
{
private final java.util.TreeMap<java.lang.Number, long[]> bin;
descriptor: Ljava/util/TreeMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/TreeMap<Ljava/lang/Number;[J>;
private final java.util.TreeMap<java.lang.Number, long[]> spool;
descriptor: Ljava/util/TreeMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/TreeMap<Ljava/lang/Number;[J>;
private final int maxBinSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxSpoolSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int roundSeconds;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(int, int, int);
descriptor: (III)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 1
putfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.maxBinSize:I
2: aload 0
iload 2
putfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.maxSpoolSize:I
3: aload 0
iload 3
putfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.roundSeconds:I
4: aload 0
new java.util.TreeMap
dup
invokedynamic compare()Ljava/util/Comparator;
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;)I
org/apache/cassandra/utils/StreamingHistogram$StreamingHistogramBuilder.lambda$0(Ljava/lang/Number;Ljava/lang/Number;)I (6)
(Ljava/lang/Number;Ljava/lang/Number;)I
invokespecial java.util.TreeMap.<init>:(Ljava/util/Comparator;)V
putfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.bin:Ljava/util/TreeMap;
5: aload 0
new java.util.TreeMap
dup
invokedynamic compare()Ljava/util/Comparator;
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;)I
org/apache/cassandra/utils/StreamingHistogram$StreamingHistogramBuilder.lambda$1(Ljava/lang/Number;Ljava/lang/Number;)I (6)
(Ljava/lang/Number;Ljava/lang/Number;)I
invokespecial java.util.TreeMap.<init>:(Ljava/util/Comparator;)V
putfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.spool:Ljava/util/TreeMap;
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/utils/StreamingHistogram$StreamingHistogramBuilder;
0 7 1 maxBinSize I
0 7 2 maxSpoolSize I
0 7 3 roundSeconds I
MethodParameters:
Name Flags
maxBinSize
maxSpoolSize
roundSeconds
public org.apache.cassandra.utils.StreamingHistogram build();
descriptor: ()Lorg/apache/cassandra/utils/StreamingHistogram;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.flushHistogram:()V
1: new org.apache.cassandra.utils.StreamingHistogram
dup
aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.maxBinSize:I
aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.bin:Ljava/util/TreeMap;
invokespecial org.apache.cassandra.utils.StreamingHistogram.<init>:(ILjava/util/Map;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/utils/StreamingHistogram$StreamingHistogramBuilder;
public void update(java.lang.Number);
descriptor: (Ljava/lang/Number;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
lconst_1
invokevirtual org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.update:(Ljava/lang/Number;J)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/utils/StreamingHistogram$StreamingHistogramBuilder;
0 2 1 p Ljava/lang/Number;
MethodParameters:
Name Flags
p
public void update(java.lang.Number, long);
descriptor: (Ljava/lang/Number;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.Number.longValue:()J
aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.roundSeconds:I
i2l
lrem
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
astore 4
start local 4 1: aload 4
invokevirtual java.lang.Number.longValue:()J
lconst_0
lcmp
ifle 3
2: aload 1
invokevirtual java.lang.Number.longValue:()J
aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.roundSeconds:I
i2l
aload 4
invokevirtual java.lang.Number.longValue:()J
lsub
ladd
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
astore 1
3: StackMap locals: java.lang.Number
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.spool:Ljava/util/TreeMap;
aload 1
invokevirtual java.util.TreeMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast long[]
astore 5
start local 5 4: aload 5
ifnull 7
5: aload 5
iconst_0
dup2
laload
lload 2
ladd
lastore
6: goto 9
7: StackMap locals: long[]
StackMap stack:
iconst_1
newarray 11
dup
iconst_0
lload 2
lastore
astore 5
8: aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.spool:Ljava/util/TreeMap;
aload 1
aload 5
invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.spool:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.size:()I
aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.maxSpoolSize:I
if_icmple 11
10: aload 0
invokevirtual org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.flushHistogram:()V
11: 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 12 0 this Lorg/apache/cassandra/utils/StreamingHistogram$StreamingHistogramBuilder;
0 12 1 p Ljava/lang/Number;
0 12 2 m J
1 12 4 d Ljava/lang/Number;
4 12 5 mi [J
MethodParameters:
Name Flags
p
m
public void flushHistogram();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=23, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.spool:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.size:()I
ifle 35
1: aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.spool:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 33
StackMap locals: org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder top top top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 3
start local 3 3: aload 3
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Number
astore 5
start local 5 4: aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast long[]
astore 1
start local 1 5: aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.bin:Ljava/util/TreeMap;
aload 5
invokevirtual java.util.TreeMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast long[]
astore 2
start local 2 6: aload 2
ifnull 10
7: aload 2
iconst_0
dup2
laload
aload 1
iconst_0
laload
ladd
lastore
8: aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.bin:Ljava/util/TreeMap;
aload 5
aload 2
invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: goto 11
10: StackMap locals: org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder long[] long[] java.util.Map$Entry java.util.Iterator java.lang.Number
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.bin:Ljava/util/TreeMap;
aload 5
iconst_1
newarray 11
dup
iconst_0
aload 1
iconst_0
laload
lastore
invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.bin:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.size:()I
aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.maxBinSize:I
if_icmple 33
12: aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.bin:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
start local 6 13: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Number
invokevirtual java.lang.Number.doubleValue:()D
dstore 7
start local 7 14: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Number
invokevirtual java.lang.Number.doubleValue:()D
dstore 9
start local 9 15: dload 9
dload 7
dsub
dstore 11
start local 11 16: dload 7
dstore 13
start local 13 17: dload 9
dstore 15
start local 15 18: goto 26
19: StackMap locals: org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder long[] long[] java.util.Map$Entry java.util.Iterator java.lang.Number java.util.Iterator double double double double double
StackMap stack:
dload 9
dstore 7
20: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Number
invokevirtual java.lang.Number.doubleValue:()D
dstore 9
21: dload 9
dload 7
dsub
dstore 17
start local 17 22: dload 17
dload 11
dcmpg
ifge 26
23: dload 17
dstore 11
24: dload 7
dstore 13
25: dload 9
dstore 15
end local 17 26: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
27: aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.bin:Ljava/util/TreeMap;
dload 13
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokevirtual java.util.TreeMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast long[]
astore 17
start local 17 28: aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.bin:Ljava/util/TreeMap;
dload 15
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokevirtual java.util.TreeMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast long[]
astore 18
start local 18 29: aload 17
iconst_0
laload
lstore 19
start local 19 30: aload 18
iconst_0
laload
lstore 21
start local 21 31: aload 17
iconst_0
dup2
laload
lload 21
ladd
lastore
32: aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.bin:Ljava/util/TreeMap;
dload 13
lload 19
l2d
dmul
dload 15
lload 21
l2d
dmul
dadd
lload 19
lload 21
ladd
l2d
ddiv
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aload 17
invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 21 end local 19 end local 18 end local 17 end local 15 end local 13 end local 11 end local 9 end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 33: StackMap locals: org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder top top top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
34: aload 0
getfield org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.spool:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.clear:()V
35: StackMap locals: org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/apache/cassandra/utils/StreamingHistogram$StreamingHistogramBuilder;
5 33 1 spoolValue [J
6 33 2 binValue [J
3 33 3 entry Ljava/util/Map$Entry<Ljava/lang/Number;[J>;
4 33 5 key Ljava/lang/Number;
13 33 6 keys Ljava/util/Iterator<Ljava/lang/Number;>;
14 33 7 p1 D
15 33 9 p2 D
16 33 11 smallestDiff D
17 33 13 q1 D
18 33 15 q2 D
22 26 17 diff D
28 33 17 a1 [J
29 33 18 a2 [J
30 33 19 k1 J
31 33 21 k2 J
public void merge(org.apache.cassandra.utils.StreamingHistogram);
descriptor: (Lorg/apache/cassandra/utils/StreamingHistogram;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.apache.cassandra.utils.StreamingHistogram.getAsMap:()Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder org.apache.cassandra.utils.StreamingHistogram top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 4: aload 0
aload 2
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Number
aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast long[]
iconst_0
laload
invokevirtual org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder.update:(Ljava/lang/Number;J)V
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/utils/StreamingHistogram$StreamingHistogramBuilder;
0 7 1 other Lorg/apache/cassandra/utils/StreamingHistogram;
4 5 2 entry Ljava/util/Map$Entry<Ljava/lang/Number;[J>;
MethodParameters:
Name Flags
other
private static int lambda$0(java.lang.Number, java.lang.Number);
descriptor: (Ljava/lang/Number;Ljava/lang/Number;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 2
1: aload 0
checkcast java.lang.Comparable
aload 1
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Number.doubleValue:()D
aload 1
invokevirtual java.lang.Number.doubleValue:()D
invokestatic java.lang.Double.compare:(DD)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 o1 Ljava/lang/Number;
0 3 1 o2 Ljava/lang/Number;
private static int lambda$1(java.lang.Number, java.lang.Number);
descriptor: (Ljava/lang/Number;Ljava/lang/Number;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 2
1: aload 0
checkcast java.lang.Comparable
aload 1
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Number.doubleValue:()D
aload 1
invokevirtual java.lang.Number.doubleValue:()D
invokestatic java.lang.Double.compare:(DD)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 o1 Ljava/lang/Number;
0 3 1 o2 Ljava/lang/Number;
}
SourceFile: "StreamingHistogram.java"
NestHost: org.apache.cassandra.utils.StreamingHistogram
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
public StreamingHistogramBuilder = org.apache.cassandra.utils.StreamingHistogram$StreamingHistogramBuilder of org.apache.cassandra.utils.StreamingHistogram