5 Histogram::Histogram() { hdr_init(1, 3L * 60 * 1000, 3, &histogram); }
7 Histogram::~Histogram() { free(histogram); }
8 void Histogram::print() { hdr_percentiles_print(histogram, stdout, 5, 1.0, CLASSIC); }
10 hdr_add(histogram, rhs.histogram);
13 int64_t Histogram::totalCount() {
return histogram->total_count; }
15 void Statistics::recordSuccess(
const std::chrono::milliseconds &duration) { successDurations.record(duration); }
17 void Statistics::recordFailure(
const std::chrono::milliseconds &duration) { errorDurations.record(duration); }
19 void Statistics::print() {
20 successDurations.print();
21 std::chrono::seconds elapsedTime = std::chrono::duration_cast<std::chrono::seconds>(finishedAt - startedAt);
22 std::cout <<
"Elapsed time: " << elapsedTime.count() <<
"s ";
23 std::cout <<
"Rate: " << successDurations.totalCount() / elapsedTime.count() <<
"op/s";
27 successDurations += rhs.successDurations;
31 void Statistics::start() { startedAt = clock::now(); }
32 void Statistics::stop() { finishedAt = clock::now(); }