// Computes units per second over a given interval by tracking the units over // each bucket of a given size and calculating the instantaneous rate assuming // that over each bucket the rate was constant. class RateTracker { public:
RateTracker(int64_t bucket_milliseconds, size_t bucket_count);
~RateTracker();
// Computes the average rate over the most recent interval_milliseconds, // or if the first sample was added within this period, computes the rate // since the first sample was added. double ComputeRateForInterval(Timestamp current_time,
TimeDelta interval) const;
// Computes the average rate over the rate tracker's recording interval // of bucket_milliseconds * bucket_count. double Rate(Timestamp current_time) const { return ComputeRateForInterval(
current_time, TimeDelta::Millis(bucket_milliseconds_) * bucket_count_);
}
// The total number of samples added.
int64_t TotalSampleCount() const;
// Increment count for bucket at `current_time`. void Update(int64_t sample_count, Timestamp now);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.