|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.HdrHistogram.EncodableHistogram org.HdrHistogram.AbstractHistogram org.HdrHistogram.Histogram org.HdrHistogram.SynchronizedHistogram
public class SynchronizedHistogram
SynchronizedHistogram
is a variant of Histogram
that is
synchronized as a whole, such that queries, copying, and addition operations are atomic with relation to
modification on the SynchronizedHistogram
, and such that external accessors (e.g. iterations on the
histogram data) that synchronize on the SynchronizedHistogram
instance can safely assume that no
modifications to the histogram data occur within their synchronized block.
It is important to note that synchrionization can result in blocking recoding calls. If non-blocking recoding
operations are required, consider using ConcurrentHistogram
, AtomicHistogram
, or (recommended)
Recorder
or SingleWriterRecorder
which were intended for concurrent operations.
org.HdrHistogram
and Histogram
for more details.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.HdrHistogram.AbstractHistogram |
---|
AbstractHistogram.AllValues, AbstractHistogram.LinearBucketValues, AbstractHistogram.LogarithmicBucketValues, AbstractHistogram.Percentiles, AbstractHistogram.RecordedValues |
Constructor Summary | |
---|---|
SynchronizedHistogram(AbstractHistogram source)
Construct a histogram with the same range settings as a given source histogram, duplicating the source's start/end timestamps (but NOT it's contents) |
|
SynchronizedHistogram(int numberOfSignificantValueDigits)
Construct an auto-resizing SynchronizedHistogram with a lowest discernible value of 1 and an auto-adjusting highestTrackableValue. |
|
SynchronizedHistogram(long highestTrackableValue,
int numberOfSignificantValueDigits)
Construct a SynchronizedHistogram given the Highest value to be tracked and a number of significant decimal digits. |
|
SynchronizedHistogram(long lowestDiscernibleValue,
long highestTrackableValue,
int numberOfSignificantValueDigits)
Construct a SynchronizedHistogram given the Lowest and Highest values to be tracked and a number of significant decimal digits. |
Method Summary | |
---|---|
void |
add(AbstractHistogram otherHistogram)
Add the contents of another histogram to this one. |
SynchronizedHistogram |
copy()
Create a copy of this histogram, complete with data and everything. |
SynchronizedHistogram |
copyCorrectedForCoordinatedOmission(long expectedIntervalBetweenValueSamples)
Get a copy of this histogram, corrected for coordinated omission. |
static SynchronizedHistogram |
decodeFromByteBuffer(ByteBuffer buffer,
long minBarForHighestTrackableValue)
Construct a new histogram by decoding it from a ByteBuffer. |
static SynchronizedHistogram |
decodeFromCompressedByteBuffer(ByteBuffer buffer,
long minBarForHighestTrackableValue)
Construct a new histogram by decoding it from a compressed form in a ByteBuffer. |
long |
getTotalCount()
Get the total count of all recorded values in the histogram |
void |
shiftValuesLeft(int numberOfBinaryOrdersOfMagnitude)
Shift recorded values to the left (the equivalent of a << shift operation on all recorded values). |
void |
shiftValuesRight(int numberOfBinaryOrdersOfMagnitude)
Shift recorded values to the right (the equivalent of a >> shift operation on all recorded values). |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SynchronizedHistogram(int numberOfSignificantValueDigits)
numberOfSignificantValueDigits
- Specifies the precision to use. This is the number of significant
decimal digits to which the histogram will maintain value resolution
and separation. Must be a non-negative integer between 0 and 5.public SynchronizedHistogram(long highestTrackableValue, int numberOfSignificantValueDigits)
highestTrackableValue
- The highest value to be tracked by the histogram. Must be a positive
integer that is >= 2.numberOfSignificantValueDigits
- Specifies the precision to use. This is the number of significant
decimal digits to which the histogram will maintain value resolution
and separation. Must be a non-negative integer between 0 and 5.public SynchronizedHistogram(long lowestDiscernibleValue, long highestTrackableValue, int numberOfSignificantValueDigits)
lowestDiscernibleValue
- The lowest value that can be tracked (distinguished from 0) by the histogram.
Must be a positive integer that is >= 1. May be internally rounded
down to nearest power of 2.highestTrackableValue
- The highest value to be tracked by the histogram. Must be a positive
integer that is >= (2 * lowestDiscernibleValue).numberOfSignificantValueDigits
- Specifies the precision to use. This is the number of significant
decimal digits to which the histogram will maintain value resolution
and separation. Must be a non-negative integer between 0 and 5.public SynchronizedHistogram(AbstractHistogram source)
source
- The source histogram to duplicateMethod Detail |
---|
public void add(AbstractHistogram otherHistogram)
AbstractHistogram
add
in class AbstractHistogram
otherHistogram
- The other histogram.public void shiftValuesLeft(int numberOfBinaryOrdersOfMagnitude)
AbstractHistogram
ArrayIndexOutOfBoundsException
will be thrown if any recorded values may be lost
as a result of the attempted operation, reflecting an "overflow" conditions. Expect such an overflow
exception if the operation would cause the current maxValue to be scaled to a value that is outside
of the covered value range.
shiftValuesLeft
in class AbstractHistogram
numberOfBinaryOrdersOfMagnitude
- The number of binary orders of magnitude to shift bypublic void shiftValuesRight(int numberOfBinaryOrdersOfMagnitude)
AbstractHistogram
Shift right operations that do not underflow are reversible with a shift left operation with no loss of
information. An ArrayIndexOutOfBoundsException
reflecting an "underflow" conditions will be thrown
if any recorded values may lose representation accuracy as a result of the attempted shift operation.
For a shift of a single order of magnitude, expect such an underflow exception if any recorded non-zero values up to [numberOfSignificantValueDigits (rounded up to nearest power of 2) multiplied by (2 ^ numberOfBinaryOrdersOfMagnitude) currently exist in the histogram.
shiftValuesRight
in class AbstractHistogram
numberOfBinaryOrdersOfMagnitude
- The number of binary orders of magnitude to shift bypublic SynchronizedHistogram copy()
AbstractHistogram
copy
in class Histogram
public SynchronizedHistogram copyCorrectedForCoordinatedOmission(long expectedIntervalBetweenValueSamples)
AbstractHistogram
To compensate for the loss of sampled values when a recorded value is larger than the expected
interval between value samples, the new histogram will include an auto-generated additional series of
decreasingly-smaller (down to the expectedIntervalBetweenValueSamples) value records for each count found
in the current histogram that is larger than the expectedIntervalBetweenValueSamples.
Note: This is a post-correction method, as opposed to the at-recording correction method provided
by recordValueWithExpectedInterval
. The two
methods are mutually exclusive, and only one of the two should be be used on a given data set to correct
for the same coordinated omission issue.
by
See notes in the description of the Histogram calls for an illustration of why this corrective behavior is important.
copyCorrectedForCoordinatedOmission
in class Histogram
expectedIntervalBetweenValueSamples
- If expectedIntervalBetweenValueSamples is larger than 0, add
auto-generated value records as appropriate if value is larger
than expectedIntervalBetweenValueSamples
public long getTotalCount()
AbstractHistogram
getTotalCount
in class Histogram
public static SynchronizedHistogram decodeFromByteBuffer(ByteBuffer buffer, long minBarForHighestTrackableValue)
buffer
- The buffer to decode fromminBarForHighestTrackableValue
- Force highestTrackableValue to be set at least this high
public static SynchronizedHistogram decodeFromCompressedByteBuffer(ByteBuffer buffer, long minBarForHighestTrackableValue) throws DataFormatException
buffer
- The buffer to decode fromminBarForHighestTrackableValue
- Force highestTrackableValue to be set at least this high
DataFormatException
- on error parsing/decompressing the buffer
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |