You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
925 B
42 lines
925 B
// Copyright (c) 2011 The LevelDB Authors. All rights reserved. |
|
// Use of this source code is governed by a BSD-style license that can be |
|
// found in the LICENSE file. See the AUTHORS file for names of contributors. |
|
|
|
#ifndef STORAGE_LEVELDB_UTIL_HISTOGRAM_H_ |
|
#define STORAGE_LEVELDB_UTIL_HISTOGRAM_H_ |
|
|
|
#include <string> |
|
|
|
namespace leveldb { |
|
|
|
class Histogram { |
|
public: |
|
Histogram() { } |
|
~Histogram() { } |
|
|
|
void Clear(); |
|
void Add(double value); |
|
void Merge(const Histogram& other); |
|
|
|
std::string ToString() const; |
|
|
|
private: |
|
double min_; |
|
double max_; |
|
double num_; |
|
double sum_; |
|
double sum_squares_; |
|
|
|
enum { kNumBuckets = 154 }; |
|
static const double kBucketLimit[kNumBuckets]; |
|
double buckets_[kNumBuckets]; |
|
|
|
double Median() const; |
|
double Percentile(double p) const; |
|
double Average() const; |
|
double StandardDeviation() const; |
|
}; |
|
|
|
} // namespace leveldb |
|
|
|
#endif // STORAGE_LEVELDB_UTIL_HISTOGRAM_H_
|
|
|