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

Unified Diff: base/metrics/histogram.cc

Issue 17451016: [UMA] Remove redundant bucket_count variable from base::Histogram. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rename variables to be clearer Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/metrics/histogram.h ('k') | base/metrics/histogram_base.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/metrics/histogram.cc
diff --git a/base/metrics/histogram.cc b/base/metrics/histogram.cc
index a3dd63a49c1f7cfbf2e8d77767215f0a9b609721..fbe66d05d29fd3c2896f8499dd1dc07d9793d095 100644
--- a/base/metrics/histogram.cc
+++ b/base/metrics/histogram.cc
@@ -97,12 +97,12 @@ HistogramBase* Histogram::FactoryGet(const string& name,
if (!histogram) {
// To avoid racy destruction at shutdown, the following will be leaked.
BucketRanges* ranges = new BucketRanges(bucket_count + 1);
- InitializeBucketRanges(minimum, maximum, bucket_count, ranges);
+ InitializeBucketRanges(minimum, maximum, ranges);
const BucketRanges* registered_ranges =
StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges);
Histogram* tentative_histogram =
- new Histogram(name, minimum, maximum, bucket_count, registered_ranges);
+ new Histogram(name, minimum, maximum, registered_ranges);
tentative_histogram->SetFlags(flags);
histogram =
@@ -143,15 +143,14 @@ TimeTicks Histogram::DebugNow() {
// static
void Histogram::InitializeBucketRanges(Sample minimum,
Sample maximum,
- size_t bucket_count,
BucketRanges* ranges) {
- DCHECK_EQ(ranges->size(), bucket_count + 1);
double log_max = log(static_cast<double>(maximum));
double log_ratio;
double log_next;
size_t bucket_index = 1;
Sample current = minimum;
ranges->set_range(bucket_index, current);
+ size_t bucket_count = ranges->bucket_count();
while (bucket_count > ++bucket_index) {
double log_current;
log_current = log(static_cast<double>(current));
@@ -167,7 +166,7 @@ void Histogram::InitializeBucketRanges(Sample minimum,
++current; // Just do a narrow bucket, and keep trying.
ranges->set_range(bucket_index, current);
}
- ranges->set_range(ranges->size() - 1, HistogramBase::kSampleType_MAX);
+ ranges->set_range(ranges->bucket_count(), HistogramBase::kSampleType_MAX);
ranges->ResetChecksum();
}
@@ -211,7 +210,7 @@ Sample Histogram::ranges(size_t i) const {
}
size_t Histogram::bucket_count() const {
- return bucket_count_;
+ return bucket_ranges_->bucket_count();
}
// static
@@ -247,16 +246,17 @@ HistogramType Histogram::GetHistogramType() const {
return HISTOGRAM;
}
-bool Histogram::HasConstructionArguments(Sample minimum,
- Sample maximum,
- size_t bucket_count) const {
- return ((minimum == declared_min_) && (maximum == declared_max_) &&
- (bucket_count == bucket_count_));
+bool Histogram::HasConstructionArguments(Sample expected_minimum,
+ Sample expected_maximum,
+ size_t expected_bucket_count) const {
+ return ((expected_minimum == declared_min_) &&
+ (expected_maximum == declared_max_) &&
+ (expected_bucket_count == bucket_count()));
}
void Histogram::Add(int value) {
DCHECK_EQ(0, ranges(0));
- DCHECK_EQ(kSampleType_MAX, ranges(bucket_count_));
+ DCHECK_EQ(kSampleType_MAX, ranges(bucket_count()));
if (value > kSampleType_MAX - 1)
value = kSampleType_MAX - 1;
@@ -302,13 +302,11 @@ bool Histogram::SerializeInfoImpl(Pickle* pickle) const {
Histogram::Histogram(const string& name,
Sample minimum,
Sample maximum,
- size_t bucket_count,
const BucketRanges* ranges)
: HistogramBase(name),
bucket_ranges_(ranges),
declared_min_(minimum),
- declared_max_(maximum),
- bucket_count_(bucket_count) {
+ declared_max_(maximum) {
if (ranges)
samples_.reset(new SampleVector(ranges));
}
@@ -548,13 +546,12 @@ HistogramBase* LinearHistogram::FactoryGetWithRangeDescription(
if (!histogram) {
// To avoid racy destruction at shutdown, the following will be leaked.
BucketRanges* ranges = new BucketRanges(bucket_count + 1);
- InitializeBucketRanges(minimum, maximum, bucket_count, ranges);
+ InitializeBucketRanges(minimum, maximum, ranges);
const BucketRanges* registered_ranges =
StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges);
LinearHistogram* tentative_histogram =
- new LinearHistogram(name, minimum, maximum, bucket_count,
- registered_ranges);
+ new LinearHistogram(name, minimum, maximum, registered_ranges);
// Set range descriptions.
if (descriptions) {
@@ -581,9 +578,8 @@ HistogramType LinearHistogram::GetHistogramType() const {
LinearHistogram::LinearHistogram(const string& name,
Sample minimum,
Sample maximum,
- size_t bucket_count,
const BucketRanges* ranges)
- : Histogram(name, minimum, maximum, bucket_count, ranges) {
+ : Histogram(name, minimum, maximum, ranges) {
}
double LinearHistogram::GetBucketSize(Count current, size_t i) const {
@@ -609,18 +605,16 @@ bool LinearHistogram::PrintEmptyBucket(size_t index) const {
// static
void LinearHistogram::InitializeBucketRanges(Sample minimum,
Sample maximum,
- size_t bucket_count,
BucketRanges* ranges) {
- DCHECK_EQ(ranges->size(), bucket_count + 1);
double min = minimum;
double max = maximum;
- size_t i;
- for (i = 1; i < bucket_count; ++i) {
+ size_t bucket_count = ranges->bucket_count();
+ for (size_t i = 1; i < bucket_count; ++i) {
double linear_range =
- (min * (bucket_count -1 - i) + max * (i - 1)) / (bucket_count - 2);
+ (min * (bucket_count - 1 - i) + max * (i - 1)) / (bucket_count - 2);
ranges->set_range(i, static_cast<Sample>(linear_range + 0.5));
}
- ranges->set_range(ranges->size() - 1, HistogramBase::kSampleType_MAX);
+ ranges->set_range(ranges->bucket_count(), HistogramBase::kSampleType_MAX);
ranges->ResetChecksum();
}
@@ -656,7 +650,7 @@ HistogramBase* BooleanHistogram::FactoryGet(const string& name, int32 flags) {
if (!histogram) {
// To avoid racy destruction at shutdown, the following will be leaked.
BucketRanges* ranges = new BucketRanges(4);
- LinearHistogram::InitializeBucketRanges(1, 2, 3, ranges);
+ LinearHistogram::InitializeBucketRanges(1, 2, ranges);
const BucketRanges* registered_ranges =
StatisticsRecorder::RegisterOrDeleteDuplicateRanges(ranges);
@@ -678,7 +672,7 @@ HistogramType BooleanHistogram::GetHistogramType() const {
BooleanHistogram::BooleanHistogram(const string& name,
const BucketRanges* ranges)
- : LinearHistogram(name, 1, 2, 3, ranges) {}
+ : LinearHistogram(name, 1, 2, ranges) {}
HistogramBase* BooleanHistogram::DeserializeInfoImpl(PickleIterator* iter) {
string histogram_name;
@@ -754,8 +748,7 @@ CustomHistogram::CustomHistogram(const string& name,
const BucketRanges* ranges)
: Histogram(name,
ranges->range(1),
- ranges->range(ranges->size() - 2),
- ranges->size() - 1,
+ ranges->range(ranges->bucket_count() - 1),
ranges) {}
bool CustomHistogram::SerializeInfoImpl(Pickle* pickle) const {
@@ -764,7 +757,7 @@ bool CustomHistogram::SerializeInfoImpl(Pickle* pickle) const {
// Serialize ranges. First and last ranges are alwasy 0 and INT_MAX, so don't
// write them.
- for (size_t i = 1; i < bucket_ranges()->size() - 1; ++i) {
+ for (size_t i = 1; i < bucket_ranges()->bucket_count(); ++i) {
if (!pickle->WriteInt(bucket_ranges()->range(i)))
return false;
}
« no previous file with comments | « base/metrics/histogram.h ('k') | base/metrics/histogram_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698