public class org.apache.cassandra.utils.HistogramBuilder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.utils.HistogramBuilder
super_class: java.lang.Object
{
public static final long[] EMPTY_LONG_ARRAY;
descriptor: [J
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final long[] ZERO;
descriptor: [J
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private long[] values;
descriptor: [J
flags: (0x0002) ACC_PRIVATE
int count;
descriptor: I
flags: (0x0000)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: .line 28
iconst_0
newarray 11
putstatic org.apache.cassandra.utils.HistogramBuilder.EMPTY_LONG_ARRAY:[J
1: .line 29
iconst_1
newarray 11
putstatic org.apache.cassandra.utils.HistogramBuilder.ZERO:[J
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // org.apache.cassandra.utils.HistogramBuilder this
0: .line 31
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 40
aload 0 /* this */
bipush 10
newarray 11
putfield org.apache.cassandra.utils.HistogramBuilder.values:[J
2: .line 41
aload 0 /* this */
iconst_0
putfield org.apache.cassandra.utils.HistogramBuilder.count:I
3: .line 31
return
end local 0 // org.apache.cassandra.utils.HistogramBuilder this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/utils/HistogramBuilder;
public void <init>(long[]);
descriptor: ([J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 // org.apache.cassandra.utils.HistogramBuilder this
start local 1 // long[] values
0: .line 32
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 40
aload 0 /* this */
bipush 10
newarray 11
putfield org.apache.cassandra.utils.HistogramBuilder.values:[J
2: .line 41
aload 0 /* this */
iconst_0
putfield org.apache.cassandra.utils.HistogramBuilder.count:I
3: .line 34
aload 1 /* values */
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 7
StackMap locals: org.apache.cassandra.utils.HistogramBuilder long[] top top int int long[]
StackMap stack:
4: aload 6
iload 4
laload
lstore 2 /* value */
start local 2 // long value
5: .line 36
aload 0 /* this */
lload 2 /* value */
invokevirtual org.apache.cassandra.utils.HistogramBuilder.add:(J)V
end local 2 // long value
6: .line 34
iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 5
if_icmplt 4
8: .line 38
return
end local 1 // long[] values
end local 0 // org.apache.cassandra.utils.HistogramBuilder this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/cassandra/utils/HistogramBuilder;
0 9 1 values [J
5 6 2 value J
MethodParameters:
Name Flags
values
public void add(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 // org.apache.cassandra.utils.HistogramBuilder this
start local 1 // long value
0: .line 45
aload 0 /* this */
getfield org.apache.cassandra.utils.HistogramBuilder.count:I
aload 0 /* this */
getfield org.apache.cassandra.utils.HistogramBuilder.values:[J
arraylength
if_icmpne 2
1: .line 46
aload 0 /* this */
aload 0 /* this */
getfield org.apache.cassandra.utils.HistogramBuilder.values:[J
aload 0 /* this */
getfield org.apache.cassandra.utils.HistogramBuilder.values:[J
arraylength
iconst_1
ishl
invokestatic java.util.Arrays.copyOf:([JI)[J
putfield org.apache.cassandra.utils.HistogramBuilder.values:[J
2: .line 47
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.utils.HistogramBuilder.values:[J
aload 0 /* this */
dup
getfield org.apache.cassandra.utils.HistogramBuilder.count:I
dup_x1
iconst_1
iadd
putfield org.apache.cassandra.utils.HistogramBuilder.count:I
lload 1 /* value */
lastore
3: .line 48
return
end local 1 // long value
end local 0 // org.apache.cassandra.utils.HistogramBuilder this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/utils/HistogramBuilder;
0 4 1 value J
MethodParameters:
Name Flags
value
public org.apache.cassandra.utils.EstimatedHistogram buildWithStdevRangesAroundMean();
descriptor: ()Lorg/apache/cassandra/utils/EstimatedHistogram;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // org.apache.cassandra.utils.HistogramBuilder this
0: .line 56
aload 0 /* this */
iconst_3
invokevirtual org.apache.cassandra.utils.HistogramBuilder.buildWithStdevRangesAroundMean:(I)Lorg/apache/cassandra/utils/EstimatedHistogram;
areturn
end local 0 // org.apache.cassandra.utils.HistogramBuilder this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/HistogramBuilder;
public org.apache.cassandra.utils.EstimatedHistogram buildWithStdevRangesAroundMean(int);
descriptor: (I)Lorg/apache/cassandra/utils/EstimatedHistogram;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=21, args_size=2
start local 0 // org.apache.cassandra.utils.HistogramBuilder this
start local 1 // int maxdevs
0: .line 72
iload 1 /* maxdevs */
ifge 2
1: .line 73
new java.lang.IllegalArgumentException
dup
ldc "maxdevs must be greater than or equal to zero"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: .line 75
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.utils.HistogramBuilder.count:I
istore 2 /* count */
start local 2 // int count
3: .line 76
aload 0 /* this */
getfield org.apache.cassandra.utils.HistogramBuilder.values:[J
astore 3 /* values */
start local 3 // long[] values
4: .line 78
iload 2 /* count */
ifne 6
5: .line 79
new org.apache.cassandra.utils.EstimatedHistogram
dup
getstatic org.apache.cassandra.utils.HistogramBuilder.EMPTY_LONG_ARRAY:[J
getstatic org.apache.cassandra.utils.HistogramBuilder.ZERO:[J
invokespecial org.apache.cassandra.utils.EstimatedHistogram.<init>:([J[J)V
areturn
6: .line 81
StackMap locals: int long[]
StackMap stack:
ldc 9223372036854775807
lstore 4 /* min */
start local 4 // long min
7: ldc -9223372036854775808
lstore 6 /* max */
start local 6 // long max
8: .line 82
dconst_0
dstore 8 /* sum */
start local 8 // double sum
9: dconst_0
dstore 10 /* sumsq */
start local 10 // double sumsq
10: .line 83
iconst_0
istore 12 /* i */
start local 12 // int i
11: goto 20
12: .line 85
StackMap locals: org.apache.cassandra.utils.HistogramBuilder int int long[] long long double double int
StackMap stack:
aload 3 /* values */
iload 12 /* i */
laload
lstore 13 /* value */
start local 13 // long value
13: .line 86
dload 8 /* sum */
lload 13 /* value */
l2d
dadd
dstore 8 /* sum */
14: .line 87
dload 10 /* sumsq */
lload 13 /* value */
lload 13 /* value */
lmul
l2d
dadd
dstore 10 /* sumsq */
15: .line 88
lload 13 /* value */
lload 4 /* min */
lcmp
ifge 17
16: .line 89
lload 13 /* value */
lstore 4 /* min */
17: .line 90
StackMap locals: long
StackMap stack:
lload 13 /* value */
lload 6 /* max */
lcmp
ifle 19
18: .line 91
lload 13 /* value */
lstore 6 /* max */
end local 13 // long value
19: .line 83
StackMap locals:
StackMap stack:
iinc 12 /* i */ 1
StackMap locals:
StackMap stack:
20: iload 12 /* i */
iload 2 /* count */
if_icmplt 12
end local 12 // int i
21: .line 94
dload 8 /* sum */
iload 2 /* count */
i2d
ddiv
invokestatic java.lang.Math.round:(D)J
lstore 12 /* mean */
start local 12 // long mean
22: .line 96
dload 10 /* sumsq */
iload 2 /* count */
i2d
ddiv
lload 12 /* mean */
l2d
lload 12 /* mean */
l2d
dmul
dsub
invokestatic java.lang.Math.sqrt:(D)D
23: .line 95
dstore 14 /* stdev */
start local 14 // double stdev
24: .line 99
lload 12 /* mean */
lload 4 /* min */
iconst_1
dload 14 /* stdev */
iload 1 /* maxdevs */
invokestatic org.apache.cassandra.utils.HistogramBuilder.buildRange:(JJZDI)[J
astore 16 /* lowhalf */
start local 16 // long[] lowhalf
25: .line 100
lload 12 /* mean */
lload 6 /* max */
iconst_0
dload 14 /* stdev */
iload 1 /* maxdevs */
invokestatic org.apache.cassandra.utils.HistogramBuilder.buildRange:(JJZDI)[J
astore 17 /* highhalf */
start local 17 // long[] highhalf
26: .line 103
aload 16 /* lowhalf */
arraylength
aload 17 /* highhalf */
arraylength
iadd
iconst_1
iadd
newarray 11
astore 18 /* ranges */
start local 18 // long[] ranges
27: .line 104
aload 16 /* lowhalf */
iconst_0
aload 18 /* ranges */
iconst_0
aload 16 /* lowhalf */
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
28: .line 105
aload 18 /* ranges */
aload 16 /* lowhalf */
arraylength
lload 12 /* mean */
lastore
29: .line 106
aload 17 /* highhalf */
iconst_0
aload 18 /* ranges */
aload 16 /* lowhalf */
arraylength
iconst_1
iadd
aload 17 /* highhalf */
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
30: .line 108
new org.apache.cassandra.utils.EstimatedHistogram
dup
aload 18 /* ranges */
aload 18 /* ranges */
arraylength
iconst_1
iadd
newarray 11
invokespecial org.apache.cassandra.utils.EstimatedHistogram.<init>:([J[J)V
astore 19 /* hist */
start local 19 // org.apache.cassandra.utils.EstimatedHistogram hist
31: .line 109
iconst_0
istore 20 /* i */
start local 20 // int i
32: goto 35
33: .line 110
StackMap locals: org.apache.cassandra.utils.HistogramBuilder int int long[] long long double double long double long[] long[] long[] org.apache.cassandra.utils.EstimatedHistogram int
StackMap stack:
aload 19 /* hist */
aload 3 /* values */
iload 20 /* i */
laload
invokevirtual org.apache.cassandra.utils.EstimatedHistogram.add:(J)V
34: .line 109
iinc 20 /* i */ 1
StackMap locals:
StackMap stack:
35: iload 20 /* i */
iload 2 /* count */
if_icmplt 33
end local 20 // int i
36: .line 111
aload 19 /* hist */
areturn
end local 19 // org.apache.cassandra.utils.EstimatedHistogram hist
end local 18 // long[] ranges
end local 17 // long[] highhalf
end local 16 // long[] lowhalf
end local 14 // double stdev
end local 12 // long mean
end local 10 // double sumsq
end local 8 // double sum
end local 6 // long max
end local 4 // long min
end local 3 // long[] values
end local 2 // int count
end local 1 // int maxdevs
end local 0 // org.apache.cassandra.utils.HistogramBuilder this
LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lorg/apache/cassandra/utils/HistogramBuilder;
0 37 1 maxdevs I
3 37 2 count I
4 37 3 values [J
7 37 4 min J
8 37 6 max J
9 37 8 sum D
10 37 10 sumsq D
11 21 12 i I
13 19 13 value J
22 37 12 mean J
24 37 14 stdev D
25 37 16 lowhalf [J
26 37 17 highhalf [J
27 37 18 ranges [J
31 37 19 hist Lorg/apache/cassandra/utils/EstimatedHistogram;
32 36 20 i I
MethodParameters:
Name Flags
maxdevs
private static long[] buildRange(long, long, boolean, double, int);
descriptor: (JJZDI)[J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=21, args_size=5
start local 0 // long mean
start local 2 // long minormax
start local 4 // boolean ismin
start local 5 // double stdev
start local 7 // int maxdevs
0: .line 116
lload 2 /* minormax */
lload 0 /* mean */
lcmp
ifne 4
1: .line 120
iload 4 /* ismin */
ifeq 2
iconst_1
newarray 11
dup
iconst_0
lload 0 /* mean */
lconst_1
lsub
lastore
goto 3
StackMap locals:
StackMap stack:
2: getstatic org.apache.cassandra.utils.HistogramBuilder.EMPTY_LONG_ARRAY:[J
StackMap locals:
StackMap stack: long[]
3: areturn
4: .line 122
StackMap locals:
StackMap stack:
dload 5 /* stdev */
dconst_1
dcmpg
ifge 8
5: .line 125
iload 4 /* ismin */
ifeq 6
iconst_2
newarray 11
dup
iconst_0
lload 2 /* minormax */
lconst_1
lsub
lastore
dup
iconst_1
lload 0 /* mean */
lconst_1
lsub
lastore
goto 7
6: .line 126
StackMap locals:
StackMap stack:
iconst_1
newarray 11
dup
iconst_0
lload 2 /* minormax */
lastore
7: .line 125
StackMap locals:
StackMap stack: long[]
areturn
8: .line 130
StackMap locals:
StackMap stack:
iload 4 /* ismin */
ifeq 11
lload 0 /* mean */
lstore 8 /* larger */
start local 8 // long larger
9: lload 2 /* minormax */
lstore 10 /* smaller */
start local 10 // long smaller
10: goto 13
end local 10 // long smaller
end local 8 // long larger
11: .line 131
StackMap locals:
StackMap stack:
lload 2 /* minormax */
lstore 8 /* larger */
start local 8 // long larger
12: lload 0 /* mean */
lstore 10 /* smaller */
start local 10 // long smaller
13: .line 133
StackMap locals: long long
StackMap stack:
lload 8 /* larger */
lload 10 /* smaller */
lsub
l2d
dload 5 /* stdev */
ddiv
dstore 12 /* stdevsTo */
start local 12 // double stdevsTo
14: .line 134
dload 12 /* stdevsTo */
dconst_0
dcmpl
ifle 16
dload 12 /* stdevsTo */
dconst_1
dcmpg
ifge 16
15: .line 136
dconst_1
dstore 12 /* stdevsTo */
goto 17
16: .line 139
StackMap locals: double
StackMap stack:
dload 12 /* stdevsTo */
invokestatic java.lang.Math.round:(D)J
l2d
dstore 12 /* stdevsTo */
17: .line 142
StackMap locals:
StackMap stack:
iload 7 /* maxdevs */
iconst_1
iadd
dload 12 /* stdevsTo */
d2i
invokestatic java.lang.Math.min:(II)I
istore 14 /* len */
start local 14 // int len
18: .line 143
iload 14 /* len */
newarray 11
astore 15 /* range */
start local 15 // long[] range
19: .line 144
iload 4 /* ismin */
ifeq 20
lload 2 /* minormax */
lconst_1
lsub
goto 21
StackMap locals: int long[]
StackMap stack:
20: lload 2 /* minormax */
StackMap locals:
StackMap stack: long
21: lstore 16 /* next */
start local 16 // long next
22: .line 145
iconst_0
istore 18 /* i */
start local 18 // int i
23: goto 32
24: .line 147
StackMap locals: long int
StackMap stack:
aload 15 /* range */
arraylength
iload 18 /* i */
iconst_1
iadd
isub
i2l
dload 5 /* stdev */
d2l
lmul
lstore 19 /* delta */
start local 19 // long delta
25: .line 148
iload 4 /* ismin */
ifeq 29
26: .line 150
aload 15 /* range */
iload 18 /* i */
lload 16 /* next */
lastore
27: .line 151
lload 0 /* mean */
lload 19 /* delta */
lsub
lstore 16 /* next */
28: .line 152
goto 31
29: .line 155
StackMap locals: long
StackMap stack:
aload 15 /* range */
iload 14 /* len */
iconst_1
isub
iload 18 /* i */
isub
lload 16 /* next */
lastore
30: .line 156
lload 0 /* mean */
lload 19 /* delta */
ladd
lstore 16 /* next */
end local 19 // long delta
31: .line 145
StackMap locals:
StackMap stack:
iinc 18 /* i */ 1
StackMap locals:
StackMap stack:
32: iload 18 /* i */
aload 15 /* range */
arraylength
if_icmplt 24
end local 18 // int i
33: .line 159
aload 15 /* range */
areturn
end local 16 // long next
end local 15 // long[] range
end local 14 // int len
end local 12 // double stdevsTo
end local 10 // long smaller
end local 8 // long larger
end local 7 // int maxdevs
end local 5 // double stdev
end local 4 // boolean ismin
end local 2 // long minormax
end local 0 // long mean
LocalVariableTable:
Start End Slot Name Signature
0 34 0 mean J
0 34 2 minormax J
0 34 4 ismin Z
0 34 5 stdev D
0 34 7 maxdevs I
9 11 8 larger J
12 34 8 larger J
10 11 10 smaller J
13 34 10 smaller J
14 34 12 stdevsTo D
18 34 14 len I
19 34 15 range [J
22 34 16 next J
23 33 18 i I
25 31 19 delta J
MethodParameters:
Name Flags
mean
minormax
ismin
stdev
maxdevs
}
SourceFile: "HistogramBuilder.java"