Home | History | Annotate | Download | only in metrics

Lines Matching defs:histogram

5 // Histogram is an object that aggregates statistics, and can summarize them in
10 #include "base/metrics/histogram.h"
48 DLOG(ERROR) << "Pickle error decoding Histogram: " << *histogram_name;
53 // checks above and beyond those in Histogram::Initialize()
59 DLOG(ERROR) << "Values error decoding Histogram: " << histogram_name;
63 // We use the arguments to find or create the local version of the histogram
71 bool ValidateRangeChecksum(const HistogramBase& histogram,
73 const Histogram& casted_histogram =
74 static_cast<const Histogram&>(histogram);
85 const size_t Histogram::kBucketCount_MAX = 16384u;
87 HistogramBase* Histogram::FactoryGet(const string& name,
96 HistogramBase* histogram = StatisticsRecorder::FindHistogram(name);
97 if (!histogram) {
104 Histogram* tentative_histogram =
105 new Histogram(name, minimum, maximum, registered_ranges);
108 histogram =
112 DCHECK_EQ(HISTOGRAM, histogram->GetHistogramType());
113 CHECK(histogram->HasConstructionArguments(minimum, maximum, bucket_count));
114 return histogram;
117 HistogramBase* Histogram::FactoryTimeGet(const string& name,
126 TimeTicks Histogram::DebugNow() {
144 void Histogram::InitializeBucketRanges(Sample minimum,
174 const int Histogram::kCommonRaceBasedCountMismatch = 5;
176 int Histogram::FindCorruption(const HistogramSamples& samples) const {
195 UMA_HISTOGRAM_COUNTS("Histogram.InconsistentCountHigh", delta);
200 UMA_HISTOGRAM_COUNTS("Histogram.InconsistentCountLow", -delta);
208 Sample Histogram::ranges(size_t i) const {
212 size_t Histogram::bucket_count() const {
217 bool Histogram::InspectConstructionArguments(const string& name,
223 DVLOG(1) << "Histogram: " << name << " has bad minimum: " << *minimum;
227 DVLOG(1) << "Histogram: " << name << " has bad maximum: " << *maximum;
231 DVLOG(1) << "Histogram: " << name << " has bad bucket_count: "
245 HistogramType Histogram::GetHistogramType() const {
246 return HISTOGRAM;
249 bool Histogram::HasConstructionArguments(Sample expected_minimum,
257 void Histogram::Add(int value) {
268 scoped_ptr<HistogramSamples> Histogram::SnapshotSamples() const {
272 void Histogram::AddSamples(const HistogramSamples& samples) {
276 bool Histogram::AddSamplesFromPickle(PickleIterator* iter) {
280 // The following methods provide a graphical histogram display.
281 void Histogram::WriteHTMLGraph(string* output) const {
288 void Histogram::WriteAscii(string* output) const {
292 bool Histogram::SerializeInfoImpl(Pickle* pickle) const {
302 Histogram::Histogram(const string& name,
314 Histogram::~Histogram() {
317 bool Histogram::PrintEmptyBucket(size_t index) const {
321 // Use the actual bucket widths (like a linear histogram) until the widths get
326 double Histogram::GetBucketSize(Count current, size_t i) const {
335 const string Histogram::GetAsciiBucketRange(size_t i) const {
343 HistogramBase* Histogram::DeserializeInfoImpl(PickleIterator* iter) {
356 // Find or create the local version of the histogram in this process.
357 HistogramBase* histogram = Histogram::FactoryGet(
360 if (!ValidateRangeChecksum(*histogram, range_checksum)) {
361 // The serialized histogram might be corrupted.
364 return histogram;
367 scoped_ptr<SampleVector> Histogram::SnapshotSampleVector() const {
373 void Histogram::WriteAsciiImpl(bool graph_it,
390 // nearly the largest bucket range without sliding over the histogram.
410 // Output the actual histogram graph.
440 double Histogram::GetPeakBucketSize(const SampleVector& samples) const {
450 void Histogram::WriteAsciiHeader(const SampleVector& samples,
454 "Histogram: %s recorded %d samples",
468 void Histogram::WriteAsciiBucketContext(const int64 past,
481 Histogram::GetParameters(DictionaryValue* params) const {
488 void Histogram::GetCountAndBucketData(Count* count,
510 // LinearHistogram: This histogram uses a traditional set of evenly spaced
541 bool valid_arguments = Histogram::InspectConstructionArguments(
545 HistogramBase* histogram = StatisticsRecorder::FindHistogram(name);
546 if (!histogram) {
565 histogram =
569 DCHECK_EQ(LINEAR_HISTOGRAM, histogram->GetHistogramType());
570 CHECK(histogram->HasConstructionArguments(minimum, maximum, bucket_count));
571 return histogram;
582 : Histogram(name, minimum, maximum, ranges) {
588 // samples in a histogram if we didn't normalize this way.
597 return Histogram::GetAsciiBucketRange(i);
635 HistogramBase* histogram = LinearHistogram::FactoryGet(
637 if (!ValidateRangeChecksum(*histogram, range_checksum)) {
638 // The serialized histogram might be corrupted.
641 return histogram;
649 HistogramBase* histogram = StatisticsRecorder::FindHistogram(name);
650 if (!histogram) {
661 histogram =
665 DCHECK_EQ(BOOLEAN_HISTOGRAM, histogram->GetHistogramType());
666 return histogram;
690 HistogramBase* histogram = BooleanHistogram::FactoryGet(
692 if (!ValidateRangeChecksum(*histogram, range_checksum)) {
693 // The serialized histogram might be corrupted.
696 return histogram;
708 HistogramBase* histogram = StatisticsRecorder::FindHistogram(name);
709 if (!histogram) {
720 histogram =
724 DCHECK_EQ(histogram->GetHistogramType(), CUSTOM_HISTOGRAM);
725 return histogram;
749 : Histogram(name,
755 if (!Histogram::SerializeInfoImpl(pickle))
793 HistogramBase* histogram = CustomHistogram::FactoryGet(
795 if (!ValidateRangeChecksum(*histogram, range_checksum)) {
796 // The serialized histogram might be corrupted.
799 return histogram;