Class StatCalculator<T extends Number & Comparable<? super T>>

  • Type Parameters:
    T - type parameter for the calculator
    Direct Known Subclasses:
    StatCalculatorInteger, StatCalculatorLong

    public abstract class StatCalculator<T extends Number & Comparable<? super T>>
    extends Object
    This class serves as a way to calculate the median, max, min etc. of a list of values. It is not threadsafe.
    • Constructor Detail

      • StatCalculator

        public StatCalculator​(T zero,
                              T min,
                              T max)
        This constructor is used to set up particular values for the generic class instance.
        Parameters:
        zero - - value to return for Median and PercentPoint if there are no values
        min - - value to return for minimum if there are no values
        max - - value to return for maximum if there are no values
    • Method Detail

      • clear

        public void clear()
      • addBytes

        public void addBytes​(long newValue)
      • getMedian

        public T getMedian()
      • getTotalBytes

        public long getTotalBytes()
      • getPercentPoint

        public T getPercentPoint​(float percent)
        Get the value which %percent% of the values are less than. This works just like median (where median represents the 50% point). A typical desire is to see the 90% point - the value that 90% of the data points are below, the remaining 10% are above.
        Parameters:
        percent - number representing the wished percent (between 0 and 1.0)
        Returns:
        number of values less than the percentage
      • getPercentPoint

        public T getPercentPoint​(double percent)
        Get the value which %percent% of the values are less than. This works just like median (where median represents the 50% point). A typical desire is to see the 90% point - the value that 90% of the data points are below, the remaining 10% are above.
        Parameters:
        percent - number representing the wished percent (between 0 and 1.0)
        Returns:
        the value which %percent% of the values are less than
      • getDistribution

        public Map<Number,​Number[]> getDistribution()
        Returns the distribution of the values in the list.
        Returns:
        map containing either Integer or Long keys; entries are a Number array containing the key and the [Integer] count. TODO - why is the key value also stored in the entry array? See Bug 53825
      • getMean

        public double getMean()
      • getStandardDeviation

        public double getStandardDeviation()
      • getMin

        public T getMin()
      • getMax

        public T getMax()
      • getCount

        public long getCount()
      • getSum

        public double getSum()
      • divide

        protected abstract T divide​(T val,
                                    int n)
      • divide

        protected abstract T divide​(T val,
                                    long n)
      • addValue

        public void addValue​(T val,
                             long sampleCount)
        Update the calculator with the value for an aggregated sample.
        Parameters:
        val - the aggregate value, normally the elapsed time
        sampleCount - the number of samples contributing to the aggregate value
      • addValue

        public void addValue​(T val)
        Add a single value (normally elapsed time)
        Parameters:
        val - the value to add, which should correspond with a single sample
        See Also:
        addValue(Number, long)