| Index: base/metrics/histogram.h
|
| diff --git a/base/metrics/histogram.h b/base/metrics/histogram.h
|
| index b795a12dbd178287016a9e01a5a15de4775689c8..816458da9617d782b20490579f1b463862355dd8 100644
|
| --- a/base/metrics/histogram.h
|
| +++ b/base/metrics/histogram.h
|
| @@ -98,7 +98,7 @@ class Lock;
|
| // The following code is generally what a thread-safe static pointer
|
| // initialization looks like for a histogram (after a macro is expanded). This
|
| // sample is an expansion (with comments) of the code for
|
| -// HISTOGRAM_CUSTOM_COUNTS().
|
| +// LOCAL_HISTOGRAM_CUSTOM_COUNTS().
|
|
|
| /*
|
| do {
|
| @@ -165,27 +165,27 @@ class Lock;
|
| // Provide easy general purpose histogram in a macro, just like stats counters.
|
| // The first four macros use 50 buckets.
|
|
|
| -#define HISTOGRAM_TIMES(name, sample) HISTOGRAM_CUSTOM_TIMES( \
|
| +#define LOCAL_HISTOGRAM_TIMES(name, sample) LOCAL_HISTOGRAM_CUSTOM_TIMES( \
|
| name, sample, base::TimeDelta::FromMilliseconds(1), \
|
| base::TimeDelta::FromSeconds(10), 50)
|
|
|
| // For folks that need real specific times, use this to select a precise range
|
| // of times you want plotted, and the number of buckets you want used.
|
| -#define HISTOGRAM_CUSTOM_TIMES(name, sample, min, max, bucket_count) \
|
| +#define LOCAL_HISTOGRAM_CUSTOM_TIMES(name, sample, min, max, bucket_count) \
|
| STATIC_HISTOGRAM_POINTER_BLOCK(name, AddTime(sample), \
|
| base::Histogram::FactoryTimeGet(name, min, max, bucket_count, \
|
| base::HistogramBase::kNoFlags))
|
|
|
| -#define HISTOGRAM_COUNTS(name, sample) HISTOGRAM_CUSTOM_COUNTS( \
|
| +#define LOCAL_HISTOGRAM_COUNTS(name, sample) LOCAL_HISTOGRAM_CUSTOM_COUNTS( \
|
| name, sample, 1, 1000000, 50)
|
|
|
| -#define HISTOGRAM_COUNTS_100(name, sample) HISTOGRAM_CUSTOM_COUNTS( \
|
| - name, sample, 1, 100, 50)
|
| +#define LOCAL_HISTOGRAM_COUNTS_100(name, sample) \
|
| + LOCAL_HISTOGRAM_CUSTOM_COUNTS(name, sample, 1, 100, 50)
|
|
|
| -#define HISTOGRAM_COUNTS_10000(name, sample) HISTOGRAM_CUSTOM_COUNTS( \
|
| - name, sample, 1, 10000, 50)
|
| +#define LOCAL_HISTOGRAM_COUNTS_10000(name, sample) \
|
| + LOCAL_HISTOGRAM_CUSTOM_COUNTS(name, sample, 1, 10000, 50)
|
|
|
| -#define HISTOGRAM_CUSTOM_COUNTS(name, sample, min, max, bucket_count) \
|
| +#define LOCAL_HISTOGRAM_CUSTOM_COUNTS(name, sample, min, max, bucket_count) \
|
| STATIC_HISTOGRAM_POINTER_BLOCK(name, Add(sample), \
|
| base::Histogram::FactoryGet(name, min, max, bucket_count, \
|
| base::HistogramBase::kNoFlags))
|
| @@ -196,10 +196,10 @@ class Lock;
|
| base::LinearHistogram::FactoryGet(name, 1, boundary, boundary + 1, \
|
| flag))
|
|
|
| -#define HISTOGRAM_PERCENTAGE(name, under_one_hundred) \
|
| - HISTOGRAM_ENUMERATION(name, under_one_hundred, 101)
|
| +#define LOCAL_HISTOGRAM_PERCENTAGE(name, under_one_hundred) \
|
| + LOCAL_HISTOGRAM_ENUMERATION(name, under_one_hundred, 101)
|
|
|
| -#define HISTOGRAM_BOOLEAN(name, sample) \
|
| +#define LOCAL_HISTOGRAM_BOOLEAN(name, sample) \
|
| STATIC_HISTOGRAM_POINTER_BLOCK(name, AddBoolean(sample), \
|
| base::BooleanHistogram::FactoryGet(name, base::Histogram::kNoFlags))
|
|
|
| @@ -209,7 +209,7 @@ class Lock;
|
| // also that, despite explicitly setting the minimum bucket value to |1| below,
|
| // it is fine for enumerated histograms to be 0-indexed -- this is because
|
| // enumerated histograms should never have underflow.
|
| -#define HISTOGRAM_ENUMERATION(name, sample, boundary_value) \
|
| +#define LOCAL_HISTOGRAM_ENUMERATION(name, sample, boundary_value) \
|
| STATIC_HISTOGRAM_POINTER_BLOCK(name, Add(sample), \
|
| base::LinearHistogram::FactoryGet(name, 1, boundary_value, \
|
| boundary_value + 1, base::HistogramBase::kNoFlags))
|
| @@ -219,82 +219,15 @@ class Lock;
|
| // CustomRanges::FactoryGet about the requirement of |custom_ranges|.
|
| // You can use the helper function CustomHistogram::ArrayToCustomRanges to
|
| // transform a C-style array of valid sample values to a std::vector<int>.
|
| -#define HISTOGRAM_CUSTOM_ENUMERATION(name, sample, custom_ranges) \
|
| +#define LOCAL_HISTOGRAM_CUSTOM_ENUMERATION(name, sample, custom_ranges) \
|
| STATIC_HISTOGRAM_POINTER_BLOCK(name, Add(sample), \
|
| base::CustomHistogram::FactoryGet(name, custom_ranges, \
|
| base::HistogramBase::kNoFlags))
|
|
|
| -#define HISTOGRAM_MEMORY_KB(name, sample) HISTOGRAM_CUSTOM_COUNTS( \
|
| +#define LOCAL_HISTOGRAM_MEMORY_KB(name, sample) LOCAL_HISTOGRAM_CUSTOM_COUNTS( \
|
| name, sample, 1000, 500000, 50)
|
|
|
| //------------------------------------------------------------------------------
|
| -// Define Debug vs non-debug flavors of macros.
|
| -#ifndef NDEBUG
|
| -
|
| -#define DHISTOGRAM_TIMES(name, sample) HISTOGRAM_TIMES(name, sample)
|
| -#define DHISTOGRAM_COUNTS(name, sample) HISTOGRAM_COUNTS(name, sample)
|
| -#define DHISTOGRAM_PERCENTAGE(name, under_one_hundred) HISTOGRAM_PERCENTAGE(\
|
| - name, under_one_hundred)
|
| -#define DHISTOGRAM_CUSTOM_TIMES(name, sample, min, max, bucket_count) \
|
| - HISTOGRAM_CUSTOM_TIMES(name, sample, min, max, bucket_count)
|
| -#define DHISTOGRAM_CLIPPED_TIMES(name, sample, min, max, bucket_count) \
|
| - HISTOGRAM_CLIPPED_TIMES(name, sample, min, max, bucket_count)
|
| -#define DHISTOGRAM_CUSTOM_COUNTS(name, sample, min, max, bucket_count) \
|
| - HISTOGRAM_CUSTOM_COUNTS(name, sample, min, max, bucket_count)
|
| -#define DHISTOGRAM_ENUMERATION(name, sample, boundary_value) \
|
| - HISTOGRAM_ENUMERATION(name, sample, boundary_value)
|
| -#define DHISTOGRAM_CUSTOM_ENUMERATION(name, sample, custom_ranges) \
|
| - HISTOGRAM_CUSTOM_ENUMERATION(name, sample, custom_ranges)
|
| -
|
| -#else // NDEBUG
|
| -// Keep a mention of passed variables to avoid unused variable warnings in
|
| -// release build if these variables are only used in macros.
|
| -#define DISCARD_2_ARGUMENTS(a, b) \
|
| - while (0) { \
|
| - static_cast<void>(a); \
|
| - static_cast<void>(b); \
|
| - }
|
| -#define DISCARD_3_ARGUMENTS(a, b, c) \
|
| - while (0) { \
|
| - static_cast<void>(a); \
|
| - static_cast<void>(b); \
|
| - static_cast<void>(c); \
|
| - }
|
| -#define DISCARD_5_ARGUMENTS(a, b, c, d ,e) \
|
| - while (0) { \
|
| - static_cast<void>(a); \
|
| - static_cast<void>(b); \
|
| - static_cast<void>(c); \
|
| - static_cast<void>(d); \
|
| - static_cast<void>(e); \
|
| - }
|
| -#define DHISTOGRAM_TIMES(name, sample) \
|
| - DISCARD_2_ARGUMENTS(name, sample)
|
| -
|
| -#define DHISTOGRAM_COUNTS(name, sample) \
|
| - DISCARD_2_ARGUMENTS(name, sample)
|
| -
|
| -#define DHISTOGRAM_PERCENTAGE(name, under_one_hundred) \
|
| - DISCARD_2_ARGUMENTS(name, under_one_hundred)
|
| -
|
| -#define DHISTOGRAM_CUSTOM_TIMES(name, sample, min, max, bucket_count) \
|
| - DISCARD_5_ARGUMENTS(name, sample, min, max, bucket_count)
|
| -
|
| -#define DHISTOGRAM_CLIPPED_TIMES(name, sample, min, max, bucket_count) \
|
| - DISCARD_5_ARGUMENTS(name, sample, min, max, bucket_count)
|
| -
|
| -#define DHISTOGRAM_CUSTOM_COUNTS(name, sample, min, max, bucket_count) \
|
| - DISCARD_5_ARGUMENTS(name, sample, min, max, bucket_count)
|
| -
|
| -#define DHISTOGRAM_ENUMERATION(name, sample, boundary_value) \
|
| - DISCARD_3_ARGUMENTS(name, sample, boundary_value)
|
| -
|
| -#define DHISTOGRAM_CUSTOM_ENUMERATION(name, sample, custom_ranges) \
|
| - DISCARD_3_ARGUMENTS(name, sample, custom_ranges)
|
| -
|
| -#endif // NDEBUG
|
| -
|
| -//------------------------------------------------------------------------------
|
| // The following macros provide typical usage scenarios for callers that wish
|
| // to record histogram data, and have the data submitted/uploaded via UMA.
|
| // Not all systems support such UMA, but if they do, the following macros
|
| @@ -408,10 +341,6 @@ class BASE_EXPORT Histogram : public HistogramBase {
|
| size_t bucket_count,
|
| int32 flags);
|
|
|
| - // Time call for use with DHISTOGRAM*.
|
| - // Returns TimeTicks::Now() in debug and TimeTicks() in release build.
|
| - static TimeTicks DebugNow();
|
| -
|
| static void InitializeBucketRanges(Sample minimum,
|
| Sample maximum,
|
| BucketRanges* ranges);
|
| @@ -660,7 +589,7 @@ class BASE_EXPORT CustomHistogram : public Histogram {
|
| virtual HistogramType GetHistogramType() const OVERRIDE;
|
|
|
| // Helper method for transforming an array of valid enumeration values
|
| - // to the std::vector<int> expected by HISTOGRAM_CUSTOM_ENUMERATION.
|
| + // to the std::vector<int> expected by UMA_HISTOGRAM_CUSTOM_ENUMERATION.
|
| // This function ensures that a guard bucket exists right after any
|
| // valid sample value (unless the next higher sample is also a valid value),
|
| // so that invalid samples never fall into the same bucket as valid samples.
|
|
|