class com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot
super_class: java.lang.Object
{
private final int[] data;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int length;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int mean;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/netflix/hystrix/util/HystrixRollingPercentile;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.netflix.hystrix.util.HystrixRollingPercentile$Bucket[]);
descriptor: ([Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;)V
flags: (0x0000)
Code:
stack=3, locals=13, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: iconst_0
istore 2
start local 2 2: aload 1
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot com.netflix.hystrix.util.HystrixRollingPercentile$Bucket[] int top int int com.netflix.hystrix.util.HystrixRollingPercentile$Bucket[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: iload 2
aload 3
getfield com.netflix.hystrix.util.HystrixRollingPercentile$Bucket.data:Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileBucketData;
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileBucketData.length:I
iadd
istore 2
end local 3 5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 3
7: aload 0
iload 2
newarray 10
putfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.data:[I
8: iconst_0
istore 3
start local 3 9: iconst_0
istore 4
start local 4 10: aload 1
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 22
StackMap locals: com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot com.netflix.hystrix.util.HystrixRollingPercentile$Bucket[] int int int top int int com.netflix.hystrix.util.HystrixRollingPercentile$Bucket[]
StackMap stack:
11: aload 8
iload 6
aaload
astore 5
start local 5 12: aload 5
getfield com.netflix.hystrix.util.HystrixRollingPercentile$Bucket.data:Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileBucketData;
astore 9
start local 9 13: aload 9
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$PercentileBucketData.length:()I
istore 10
start local 10 14: iconst_0
istore 11
start local 11 15: goto 20
16: StackMap locals: com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot com.netflix.hystrix.util.HystrixRollingPercentile$Bucket[] int int int com.netflix.hystrix.util.HystrixRollingPercentile$Bucket int int com.netflix.hystrix.util.HystrixRollingPercentile$Bucket[] com.netflix.hystrix.util.HystrixRollingPercentile$PercentileBucketData int int
StackMap stack:
aload 9
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileBucketData.list:Ljava/util/concurrent/atomic/AtomicIntegerArray;
iload 11
invokevirtual java.util.concurrent.atomic.AtomicIntegerArray.get:(I)I
istore 12
start local 12 17: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.data:[I
iload 3
iinc 3 1
iload 12
iastore
18: iload 4
iload 12
iadd
istore 4
end local 12 19: iinc 11 1
StackMap locals:
StackMap stack:
20: iload 11
iload 10
if_icmplt 16
end local 11 end local 10 end local 9 end local 5 21: iinc 6 1
StackMap locals: com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot com.netflix.hystrix.util.HystrixRollingPercentile$Bucket[] int int int top int int com.netflix.hystrix.util.HystrixRollingPercentile$Bucket[]
StackMap stack:
22: iload 6
iload 7
if_icmplt 11
23: aload 0
iload 3
putfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
24: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
ifne 27
25: aload 0
iconst_0
putfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.mean:I
26: goto 28
27: StackMap locals: com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot com.netflix.hystrix.util.HystrixRollingPercentile$Bucket[] int int int
StackMap stack:
aload 0
iload 4
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
idiv
putfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.mean:I
28: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.data:[I
iconst_0
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
invokestatic java.util.Arrays.sort:([III)V
29: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
0 30 1 buckets [Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
2 30 2 lengthFromBuckets I
4 5 3 bd Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
9 30 3 index I
10 30 4 sum I
12 21 5 bd Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
13 21 9 pbd Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileBucketData;
14 21 10 length I
15 21 11 i I
17 19 12 v I
MethodParameters:
Name Flags
buckets
void <init>(int[]);
descriptor: ([I)V
flags: (0x0080) ACC_VARARGS
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.data:[I
2: aload 0
aload 1
arraylength
putfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
3: iconst_0
istore 2
start local 2 4: aload 1
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 8
StackMap locals: com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot int[] int top int int int[]
StackMap stack:
5: aload 6
iload 4
iaload
istore 3
start local 3 6: iload 2
iload 3
iadd
istore 2
end local 3 7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
iload 5
if_icmplt 5
9: aload 0
iload 2
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
idiv
putfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.mean:I
10: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.data:[I
iconst_0
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
invokestatic java.util.Arrays.sort:([III)V
11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
0 12 1 data [I
4 12 2 sum I
6 7 3 v I
MethodParameters:
Name Flags
data
int getMean();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.mean:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
public int getPercentile(double);
descriptor: (D)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
dload 1
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.computePercentile:(D)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
0 3 1 percentile D
MethodParameters:
Name Flags
percentile
private int computePercentile(double);
descriptor: (D)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
ifgt 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
dload 1
dconst_0
dcmpg
ifgt 4
3: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.data:[I
iconst_0
iaload
ireturn
4: StackMap locals:
StackMap stack:
dload 1
ldc 100.0
dcmpl
iflt 6
5: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.data:[I
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
iconst_1
isub
iaload
ireturn
6: StackMap locals:
StackMap stack:
dload 1
ldc 100.0
ddiv
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
i2d
dmul
dstore 3
start local 3 7: dload 3
invokestatic java.lang.Math.floor:(D)D
d2i
istore 5
start local 5 8: dload 3
invokestatic java.lang.Math.ceil:(D)D
d2i
istore 6
start local 6 9: getstatic com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.$assertionsDisabled:Z
ifne 11
iload 5
iflt 10
iload 5
i2d
dload 3
dcmpg
ifgt 10
dload 3
iload 6
i2d
dcmpg
ifgt 10
iload 6
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
if_icmple 11
StackMap locals: double int int
StackMap stack:
10: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
getstatic com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.$assertionsDisabled:Z
ifne 12
iload 6
iload 5
isub
iconst_1
if_icmple 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
iload 6
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
if_icmplt 14
13: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.data:[I
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.length:I
iconst_1
isub
iaload
ireturn
14: StackMap locals:
StackMap stack:
iload 5
iload 6
if_icmpne 16
15: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.data:[I
iload 5
iaload
ireturn
16: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.data:[I
iload 5
iaload
i2d
dload 3
iload 5
i2d
dsub
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.data:[I
iload 6
iaload
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.data:[I
iload 5
iaload
isub
i2d
dmul
dadd
d2i
ireturn
end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
0 17 1 percent D
7 17 3 rank D
8 17 5 iLow I
9 17 6 iHigh I
MethodParameters:
Name Flags
percent
}
SourceFile: "HystrixRollingPercentile.java"
NestHost: com.netflix.hystrix.util.HystrixRollingPercentile
InnerClasses:
Bucket = com.netflix.hystrix.util.HystrixRollingPercentile$Bucket of com.netflix.hystrix.util.HystrixRollingPercentile
PercentileBucketData = com.netflix.hystrix.util.HystrixRollingPercentile$PercentileBucketData of com.netflix.hystrix.util.HystrixRollingPercentile
PercentileSnapshot = com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot of com.netflix.hystrix.util.HystrixRollingPercentile