Class Percentile
java.lang.Object
com.conversantmedia.util.estimation.Percentile
Implementation of "Simulatenous Estimation of Several Persentiles," by Kimmo E. E. Raatikainen
This is very useful for profiling the performance of timing characteristics
Created by jcairns on 5/28/14.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass
Indicates too few measurements have been added to compute the requested estimation -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final float[]
private static float[]
private final float[]
private final float[]
private boolean
private final int
private final int[]
private int
private final float[]
private final float[]
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
add
(float x) Add a measurement to estimateprivate void
addMeasurement
(float x) void
clear()
clear existing samplesfloat[]
get the estimates based on the last samplefloat
getMax()
float
getMin()
int
float[]
boolean
isReady()
static void
print
(PrintStream out, String name, Percentile p) print a nice histogram of percentiles
-
Field Details
-
DEFAULT_PERCENTILE
private static float[] DEFAULT_PERCENTILE -
quantiles
private final float[] quantiles -
m
private final int m -
q
private final float[] q -
n
private final int[] n -
f
private final float[] f -
d
private final float[] d -
e
private final float[] e -
isInitializing
private boolean isInitializing -
ni
private int ni
-
-
Constructor Details
-
Percentile
public Percentile() -
Percentile
public Percentile(float[] quantiles)
-
-
Method Details
-
clear
public void clear()clear existing samples -
add
public void add(float x) Add a measurement to estimate- Parameters:
x
- - the value of the measurement
-
getQuantiles
public float[] getQuantiles()- Returns:
- float[] - percentiles requested at initialization
-
isReady
public boolean isReady()- Returns:
- boolean - true if sufficient samples have been seen to form an estimate
-
getNSamples
public int getNSamples()- Returns:
- int - the number of samples in the estimate
-
getEstimates
get the estimates based on the last sample- Returns:
- float[]
- Throws:
Percentile.InsufficientSamplesException
- - if no estimate is currently available due to insufficient data
-
getMin
public float getMin()- Returns:
- float - the minimum sample seen in the distribution
-
getMax
public float getMax()- Returns:
- float - the maximum sample seen in the distribution
-
addMeasurement
private void addMeasurement(float x) -
print
print a nice histogram of percentiles- Parameters:
out
- - output streamname
- - data set namep
- - percentile
-