|
||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Interface Summary | |
---|---|
PauseDetectorListener | Accepts pause notification events. |
Class Summary | |
---|---|
IntervalEstimator | IntervalEstimator is used to estimate intervals, potentially based on observed intervals recorded in it. |
LatencyStats | LatencyStats objects are used to track and report on the behavior of latencies across measurements. |
LatencyStats.Builder | A fluent API builder class for creating LatencyStats objects. |
MovingAverageIntervalEstimator | A moving average interval estimator. |
PauseDetector | A PauseDetector detects pauses and reports them to registered listeners |
SimplePauseDetector | A Simple PauseDetector that detects pauses using a consensus observation across a configurable number of detection thread. |
TimeCappedMovingAverageIntervalEstimator | A moving average interval estimator with a cap on the time window length that the moving window must completely fit in in order to provide estimated time intervals. |
TimeServices | Provide an API for time-related service, such as getting the current time and waiting for a given period of time. |
TimeServices.ScheduledExecutor |
The LatencyUtils package includes useful utilities for tracking latencies. Especially in common in-process
recording scenarios, which can exhibit significant coordinated omission sensitivity without proper handling.
LatencyStats
instances are used to track recorded latencies in the common
use case the often follow this pattern:
LatencyStats myOpStats = new LatencyStats();
...
// During normal operation, record all operation latencies into a LatencyStats instance:
long startTime = System.nanoTime();
// Perform operation:
doMyOperation(...);
// Record operation latency:
myOpStats(System.nanoTime() - startTime);
...
// Later, report on stats collected:
Histogram intervalHistogram = myOpStats.getIntervalHistogram();
intervalHistogram.getHistogramData().outputPercentileDistribution(System.out, 1000000.0);
The problem with this extremely common form of latency behavior tracking is that whenever pauses occur in the system, latency statistics become significantly skewed toward falsely-optimistic values. This occurs in two key ways:
LatencyStats
class is designed for simple, drop-in use as a latency behavior
recording object in common in-process latency recording and tracking situations. LatencyStats includes
under-the-hood tracking and correction of pause effects, compensating for coordinated omission. It does
so by using pluggable pause detectors and interval estimators that together with
LatencyStats
will transparently produce corrected histogram values for the
recorded latency behavior.
|
||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |