Chromium Code Reviews| Index: src/counters.h |
| diff --git a/src/counters.h b/src/counters.h |
| index 6498a0242f9246a1d638bcd55f620971bf135740..f31b12db4884d5cc53b1d7cc7333eee2fbfff29f 100644 |
| --- a/src/counters.h |
| +++ b/src/counters.h |
| @@ -199,25 +199,27 @@ struct StatsCounterTimer { |
| } |
| }; |
| -// A HistogramTimer allows distributions of results to be created |
| -// HistogramTimer t = { L"foo", NULL, false, 0, 0 }; |
| -struct HistogramTimer { |
| +// Similar to StatsCounter, the class Histogram represents a dynamically |
|
Michael Starzinger
2012/07/02 21:09:56
Can we remove the reference to StatsCounter here?
jochen (gone - plz use gerrit)
2012/07/13 09:48:08
Done.
|
| +// created histogram in the StatsTable. |
| +// |
| +// This class is designed to be POD initialized. It will be registered with |
| +// the histogram system on first use. For example: |
| +// Histogram h = { "myhist", 0, 10000, 50, NULL, false }; |
| +struct Histogram { |
| const char* name_; |
| + int min_; |
| + int max_; |
| + int num_buckets_; |
| void* histogram_; |
| bool lookup_done_; |
| - int64_t start_time_; |
| - int64_t stop_time_; |
| - |
| - // Start the timer. |
| - void Start(); |
| + // Add a single sample to this histogram. |
| + void AddSample(int sample); |
| - // Stop the timer and record the results. |
| - void Stop(); |
| - |
| - // Returns true if the timer is running. |
| - bool Running() { |
| - return (histogram_ != NULL) && (start_time_ != 0) && (stop_time_ == 0); |
| + // Is this histogram enabled? |
| + // Returns false if table is full. |
|
Michael Starzinger
2012/07/02 21:09:56
Let's turn that into just one line: "Returns true
jochen (gone - plz use gerrit)
2012/07/13 09:48:08
Done.
|
| + bool Enabled() { |
| + return GetHistogram() != NULL; |
| } |
| protected: |
| @@ -234,6 +236,26 @@ struct HistogramTimer { |
| void* CreateHistogram() const; |
| }; |
| +// A HistogramTimer allows distributions of results to be created |
| +// HistogramTimer t = { {L"foo", 0, 10000, 50, NULL, false}, 0, 0 }; |
| +struct HistogramTimer { |
| + Histogram histogram_; |
| + |
| + int64_t start_time_; |
| + int64_t stop_time_; |
| + |
| + // Start the timer. |
| + void Start(); |
| + |
| + // Stop the timer and record the results. |
| + void Stop(); |
| + |
| + // Returns true if the timer is running. |
| + bool Running() { |
| + return histogram_.Enabled() && (start_time_ != 0) && (stop_time_ == 0); |
| + } |
| +}; |
| + |
| // Helper class for scoping a HistogramTimer. |
| class HistogramTimerScope BASE_EMBEDDED { |
| public: |