Class Average

java.lang.Object
org.jgroups.util.Average
All Implemented Interfaces:
Streamable
Direct Known Subclasses:
AverageMinMax

public class Average extends Object implements Streamable
Maintains an approximation of an average of positive (>= 0) values in a window and adding new values at random indices.
This class is lock-less, at the expense of incorrect reads and writes (by multiple threads), but the noise of these errors should be negligible. Note that a bigger capacity (window size) reduces this noise.
Since:
3.4, 5.4
Author:
Bela Ban
  • Field Details

    • samples

      protected long[] samples
    • unit

      protected TimeUnit unit
    • all_filled

      protected volatile boolean all_filled
    • cap

      protected int cap
    • DEFAULT_CAPACITY

      protected static final int DEFAULT_CAPACITY
      See Also:
  • Constructor Details

    • Average

      public Average()
    • Average

      public Average(int capacity)
  • Method Details

    • capacity

      public int capacity()
    • unit

      public TimeUnit unit()
    • unit

      public <T extends Average> T unit(TimeUnit u)
    • getAverage

      public double getAverage()
    • add

      public <T extends Average> T add(long num)
    • merge

      public <T extends Average> T merge(T other)
      Merges this average with another one
    • total

      public long total()
      Returns the total of all valid (>= 0) values
    • count

      public int count()
      Returns the number of valid samples (>= 0)
    • isEmpty

      public boolean isEmpty()
      Returns true if there are no valid samples (>= 0), false otherwise
    • average

      public double average()
      Returns the average of all valid samples divided by the number of valid samples
    • clear

      public void clear()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toString

      public String toString(TimeUnit u)
    • writeTo

      public void writeTo(DataOutput out) throws IOException
      Description copied from interface: Streamable
      Write the entire state of the current object (including superclasses) to outstream. Note that the output stream must not be closed
      Specified by:
      writeTo in interface Streamable
      Throws:
      IOException
    • readFrom

      public void readFrom(DataInput in) throws IOException
      Description copied from interface: Streamable
      Read the state of the current object (including superclasses) from instream Note that the input stream must not be closed
      Specified by:
      readFrom in interface Streamable
      Throws:
      IOException