Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(42)

Side by Side Diff: base/histogram.h

Issue 2423004: Refactored Histogram::FactoryGet() to be style-compliant... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | base/histogram.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Histogram is an object that aggregates statistics, and can summarize them in 5 // Histogram is an object that aggregates statistics, and can summarize them in
6 // various forms, including ASCII graphical, HTML, and numerically (as a 6 // various forms, including ASCII graphical, HTML, and numerically (as a
7 // vector of numbers corresponding to each of the aggregating buckets). 7 // vector of numbers corresponding to each of the aggregating buckets).
8 8
9 // It supports calls to accumulate either time intervals (which are processed 9 // It supports calls to accumulate either time intervals (which are processed
10 // as integral number of milliseconds), or arbitrary integral units. 10 // as integral number of milliseconds), or arbitrary integral units.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 DCHECK_EQ(name, counter->histogram_name()); \ 63 DCHECK_EQ(name, counter->histogram_name()); \
64 counter->Add(sample); \ 64 counter->Add(sample); \
65 } while (0) 65 } while (0)
66 66
67 #define HISTOGRAM_PERCENTAGE(name, under_one_hundred) \ 67 #define HISTOGRAM_PERCENTAGE(name, under_one_hundred) \
68 HISTOGRAM_ENUMERATION(name, under_one_hundred, 101) 68 HISTOGRAM_ENUMERATION(name, under_one_hundred, 101)
69 69
70 // For folks that need real specific times, use this to select a precise range 70 // For folks that need real specific times, use this to select a precise range
71 // of times you want plotted, and the number of buckets you want used. 71 // of times you want plotted, and the number of buckets you want used.
72 #define HISTOGRAM_CUSTOM_TIMES(name, sample, min, max, bucket_count) do { \ 72 #define HISTOGRAM_CUSTOM_TIMES(name, sample, min, max, bucket_count) do { \
73 static scoped_refptr<Histogram> counter = Histogram::FactoryGet( \ 73 static scoped_refptr<Histogram> counter = Histogram::FactoryTimeGet( \
74 name, min, max, bucket_count, Histogram::kNoFlags); \ 74 name, min, max, bucket_count, Histogram::kNoFlags); \
75 DCHECK_EQ(name, counter->histogram_name()); \ 75 DCHECK_EQ(name, counter->histogram_name()); \
76 counter->AddTime(sample); \ 76 counter->AddTime(sample); \
77 } while (0) 77 } while (0)
78 78
79 // DO NOT USE THIS. It is being phased out, in favor of HISTOGRAM_CUSTOM_TIMES. 79 // DO NOT USE THIS. It is being phased out, in favor of HISTOGRAM_CUSTOM_TIMES.
80 #define HISTOGRAM_CLIPPED_TIMES(name, sample, min, max, bucket_count) do { \ 80 #define HISTOGRAM_CLIPPED_TIMES(name, sample, min, max, bucket_count) do { \
81 static scoped_refptr<Histogram> counter = Histogram::FactoryGet( \ 81 static scoped_refptr<Histogram> counter = Histogram::FactoryTimeGet( \
82 name, min, max, bucket_count, Histogram::kNoFlags); \ 82 name, min, max, bucket_count, Histogram::kNoFlags); \
83 DCHECK_EQ(name, counter->histogram_name()); \ 83 DCHECK_EQ(name, counter->histogram_name()); \
84 if ((sample) < (max)) counter->AddTime(sample); \ 84 if ((sample) < (max)) counter->AddTime(sample); \
85 } while (0) 85 } while (0)
86 86
87 // Support histograming of an enumerated value. The samples should always be 87 // Support histograming of an enumerated value. The samples should always be
88 // less than boundary_value. 88 // less than boundary_value.
89 89
90 #define HISTOGRAM_ENUMERATION(name, sample, boundary_value) do { \ 90 #define HISTOGRAM_ENUMERATION(name, sample, boundary_value) do { \
91 static scoped_refptr<Histogram> counter = LinearHistogram::FactoryGet( \ 91 static scoped_refptr<Histogram> counter = LinearHistogram::FactoryGet( \
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 #define UMA_HISTOGRAM_MEDIUM_TIMES(name, sample) UMA_HISTOGRAM_CUSTOM_TIMES( \ 151 #define UMA_HISTOGRAM_MEDIUM_TIMES(name, sample) UMA_HISTOGRAM_CUSTOM_TIMES( \
152 name, sample, base::TimeDelta::FromMilliseconds(10), \ 152 name, sample, base::TimeDelta::FromMilliseconds(10), \
153 base::TimeDelta::FromMinutes(3), 50) 153 base::TimeDelta::FromMinutes(3), 50)
154 154
155 // Use this macro when times can routinely be much longer than 10 seconds. 155 // Use this macro when times can routinely be much longer than 10 seconds.
156 #define UMA_HISTOGRAM_LONG_TIMES(name, sample) UMA_HISTOGRAM_CUSTOM_TIMES( \ 156 #define UMA_HISTOGRAM_LONG_TIMES(name, sample) UMA_HISTOGRAM_CUSTOM_TIMES( \
157 name, sample, base::TimeDelta::FromMilliseconds(1), \ 157 name, sample, base::TimeDelta::FromMilliseconds(1), \
158 base::TimeDelta::FromHours(1), 50) 158 base::TimeDelta::FromHours(1), 50)
159 159
160 #define UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, min, max, bucket_count) do { \ 160 #define UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, min, max, bucket_count) do { \
161 static scoped_refptr<Histogram> counter = Histogram::FactoryGet( \ 161 static scoped_refptr<Histogram> counter = Histogram::FactoryTimeGet( \
162 name, min, max, bucket_count, Histogram::kUmaTargetedHistogramFlag); \ 162 name, min, max, bucket_count, Histogram::kUmaTargetedHistogramFlag); \
163 DCHECK_EQ(name, counter->histogram_name()); \ 163 DCHECK_EQ(name, counter->histogram_name()); \
164 counter->AddTime(sample); \ 164 counter->AddTime(sample); \
165 } while (0) 165 } while (0)
166 166
167 // DO NOT USE THIS. It is being phased out, in favor of HISTOGRAM_CUSTOM_TIMES. 167 // DO NOT USE THIS. It is being phased out, in favor of HISTOGRAM_CUSTOM_TIMES.
168 #define UMA_HISTOGRAM_CLIPPED_TIMES(name, sample, min, max, bucket_count) do { \ 168 #define UMA_HISTOGRAM_CLIPPED_TIMES(name, sample, min, max, bucket_count) do { \
169 static scoped_refptr<Histogram> counter = Histogram::FactoryGet( \ 169 static scoped_refptr<Histogram> counter = Histogram::FactoryTimeGet( \
170 name, min, max, bucket_count, Histogram::kUmaTargetedHistogramFlag); \ 170 name, min, max, bucket_count, Histogram::kUmaTargetedHistogramFlag); \
171 DCHECK_EQ(name, counter->histogram_name()); \ 171 DCHECK_EQ(name, counter->histogram_name()); \
172 if ((sample) < (max)) counter->AddTime(sample); \ 172 if ((sample) < (max)) counter->AddTime(sample); \
173 } while (0) 173 } while (0)
174 174
175 #define UMA_HISTOGRAM_COUNTS(name, sample) UMA_HISTOGRAM_CUSTOM_COUNTS( \ 175 #define UMA_HISTOGRAM_COUNTS(name, sample) UMA_HISTOGRAM_CUSTOM_COUNTS( \
176 name, sample, 1, 1000000, 50) 176 name, sample, 1, 1000000, 50)
177 177
178 #define UMA_HISTOGRAM_COUNTS_100(name, sample) UMA_HISTOGRAM_CUSTOM_COUNTS( \ 178 #define UMA_HISTOGRAM_COUNTS_100(name, sample) UMA_HISTOGRAM_CUSTOM_COUNTS( \
179 name, sample, 1, 100, 50) 179 name, sample, 1, 100, 50)
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 // Save simple stats locally. Note that this MIGHT get done in base class 303 // Save simple stats locally. Note that this MIGHT get done in base class
304 // without shared memory at some point. 304 // without shared memory at some point.
305 int64 sum_; // sum of samples. 305 int64 sum_; // sum of samples.
306 int64 square_sum_; // sum of squares of samples. 306 int64 square_sum_; // sum of squares of samples.
307 }; 307 };
308 //---------------------------------------------------------------------------- 308 //----------------------------------------------------------------------------
309 // minimum should start from 1. 0 is invalid as a minimum. 0 is an implicit 309 // minimum should start from 1. 0 is invalid as a minimum. 0 is an implicit
310 // default underflow bucket. 310 // default underflow bucket.
311 static scoped_refptr<Histogram> FactoryGet(const std::string& name, 311 static scoped_refptr<Histogram> FactoryGet(const std::string& name,
312 Sample minimum, Sample maximum, size_t bucket_count, Flags flags); 312 Sample minimum, Sample maximum, size_t bucket_count, Flags flags);
313 static scoped_refptr<Histogram> FactoryGet(const std::string& name, 313 static scoped_refptr<Histogram> FactoryTimeGet(const std::string& name,
314 base::TimeDelta minimum, base::TimeDelta maximum, size_t bucket_count, 314 base::TimeDelta minimum, base::TimeDelta maximum, size_t bucket_count,
315 Flags flags); 315 Flags flags);
316 316
317 void Add(int value); 317 void Add(int value);
318 318
319 // This method is an interface, used only by BooleanHistogram. 319 // This method is an interface, used only by BooleanHistogram.
320 virtual void AddBoolean(bool value) { DCHECK(false); } 320 virtual void AddBoolean(bool value) { DCHECK(false); }
321 321
322 // Accept a TimeDelta to increment. 322 // Accept a TimeDelta to increment.
323 void AddTime(base::TimeDelta time) { 323 void AddTime(base::TimeDelta time) {
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 // lock protects access to the above map. 627 // lock protects access to the above map.
628 static Lock* lock_; 628 static Lock* lock_;
629 629
630 // Dump all known histograms to log. 630 // Dump all known histograms to log.
631 static bool dump_on_exit_; 631 static bool dump_on_exit_;
632 632
633 DISALLOW_COPY_AND_ASSIGN(StatisticsRecorder); 633 DISALLOW_COPY_AND_ASSIGN(StatisticsRecorder);
634 }; 634 };
635 635
636 #endif // BASE_HISTOGRAM_H_ 636 #endif // BASE_HISTOGRAM_H_
OLDNEW
« no previous file with comments | « no previous file | base/histogram.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698