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

Unified Diff: base/metrics/histogram.cc

Issue 2811713003: Embed a single sample in histogram metadata. (Closed)
Patch Set: rebased Created 3 years, 8 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_samples.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 26437935e11d20a5e9c56c34b9ae500d24445111..c35f76ce5548d8f0264f26fbeefab9c5d62aea82 100644
--- a/base/metrics/histogram.cc
+++ b/base/metrics/histogram.cc
@@ -276,14 +276,12 @@ std::unique_ptr<HistogramBase> Histogram::PersistentCreate(
Sample minimum,
Sample maximum,
const BucketRanges* ranges,
- HistogramBase::AtomicCount* counts,
- HistogramBase::AtomicCount* logged_counts,
- uint32_t counts_size,
+ const DelayedPersistentAllocation& counts,
+ const DelayedPersistentAllocation& logged_counts,
HistogramSamples::Metadata* meta,
HistogramSamples::Metadata* logged_meta) {
return WrapUnique(new Histogram(name, minimum, maximum, ranges, counts,
- logged_counts, counts_size, meta,
- logged_meta));
+ logged_counts, meta, logged_meta));
}
// Calculate what range of values are held in each bucket.
@@ -531,20 +529,19 @@ Histogram::Histogram(const std::string& name,
Sample minimum,
Sample maximum,
const BucketRanges* ranges,
- HistogramBase::AtomicCount* counts,
- HistogramBase::AtomicCount* logged_counts,
- uint32_t counts_size,
+ const DelayedPersistentAllocation& counts,
+ const DelayedPersistentAllocation& logged_counts,
HistogramSamples::Metadata* meta,
HistogramSamples::Metadata* logged_meta)
- : HistogramBase(name),
- bucket_ranges_(ranges),
- declared_min_(minimum),
- declared_max_(maximum) {
+ : HistogramBase(name),
+ bucket_ranges_(ranges),
+ declared_min_(minimum),
+ declared_max_(maximum) {
if (ranges) {
- samples_.reset(new SampleVector(HashMetricName(name),
- counts, counts_size, meta, ranges));
- logged_samples_.reset(new SampleVector(samples_->id(), logged_counts,
- counts_size, logged_meta, ranges));
+ samples_.reset(
+ new PersistentSampleVector(HashMetricName(name), ranges, meta, counts));
+ logged_samples_.reset(new PersistentSampleVector(
+ samples_->id(), ranges, logged_meta, logged_counts));
}
}
@@ -675,7 +672,7 @@ void Histogram::WriteAsciiImpl(bool graph_it,
DCHECK_EQ(sample_count, past);
}
-double Histogram::GetPeakBucketSize(const SampleVector& samples) const {
+double Histogram::GetPeakBucketSize(const SampleVectorBase& samples) const {
double max = 0;
for (uint32_t i = 0; i < bucket_count() ; ++i) {
double current_size = GetBucketSize(samples.GetCountAtIndex(i), i);
@@ -685,7 +682,7 @@ double Histogram::GetPeakBucketSize(const SampleVector& samples) const {
return max;
}
-void Histogram::WriteAsciiHeader(const SampleVector& samples,
+void Histogram::WriteAsciiHeader(const SampleVectorBase& samples,
Count sample_count,
std::string* output) const {
StringAppendF(output,
@@ -834,14 +831,12 @@ std::unique_ptr<HistogramBase> LinearHistogram::PersistentCreate(
Sample minimum,
Sample maximum,
const BucketRanges* ranges,
- HistogramBase::AtomicCount* counts,
- HistogramBase::AtomicCount* logged_counts,
- uint32_t counts_size,
+ const DelayedPersistentAllocation& counts,
+ const DelayedPersistentAllocation& logged_counts,
HistogramSamples::Metadata* meta,
HistogramSamples::Metadata* logged_meta) {
- return WrapUnique(new LinearHistogram(name, minimum, maximum, ranges,
- counts, logged_counts,
- counts_size, meta, logged_meta));
+ return WrapUnique(new LinearHistogram(name, minimum, maximum, ranges, counts,
+ logged_counts, meta, logged_meta));
}
HistogramBase* LinearHistogram::FactoryGetWithRangeDescription(
@@ -870,17 +865,23 @@ LinearHistogram::LinearHistogram(const std::string& name,
: Histogram(name, minimum, maximum, ranges) {
}
-LinearHistogram::LinearHistogram(const std::string& name,
- Sample minimum,
- Sample maximum,
- const BucketRanges* ranges,
- HistogramBase::AtomicCount* counts,
- HistogramBase::AtomicCount* logged_counts,
- uint32_t counts_size,
- HistogramSamples::Metadata* meta,
- HistogramSamples::Metadata* logged_meta)
- : Histogram(name, minimum, maximum, ranges, counts, logged_counts,
- counts_size, meta, logged_meta) {}
+LinearHistogram::LinearHistogram(
+ const std::string& name,
+ Sample minimum,
+ Sample maximum,
+ const BucketRanges* ranges,
+ const DelayedPersistentAllocation& counts,
+ const DelayedPersistentAllocation& logged_counts,
+ HistogramSamples::Metadata* meta,
+ HistogramSamples::Metadata* logged_meta)
+ : Histogram(name,
+ minimum,
+ maximum,
+ ranges,
+ counts,
+ logged_counts,
+ meta,
+ logged_meta) {}
double LinearHistogram::GetBucketSize(Count current, uint32_t i) const {
DCHECK_GT(ranges(i + 1), ranges(i));
@@ -980,12 +981,12 @@ HistogramBase* BooleanHistogram::FactoryGet(const char* name, int32_t flags) {
std::unique_ptr<HistogramBase> BooleanHistogram::PersistentCreate(
const std::string& name,
const BucketRanges* ranges,
- HistogramBase::AtomicCount* counts,
- HistogramBase::AtomicCount* logged_counts,
+ const DelayedPersistentAllocation& counts,
+ const DelayedPersistentAllocation& logged_counts,
HistogramSamples::Metadata* meta,
HistogramSamples::Metadata* logged_meta) {
- return WrapUnique(new BooleanHistogram(
- name, ranges, counts, logged_counts, meta, logged_meta));
+ return WrapUnique(new BooleanHistogram(name, ranges, counts, logged_counts,
+ meta, logged_meta));
}
HistogramType BooleanHistogram::GetHistogramType() const {
@@ -996,13 +997,20 @@ BooleanHistogram::BooleanHistogram(const std::string& name,
const BucketRanges* ranges)
: LinearHistogram(name, 1, 2, ranges) {}
-BooleanHistogram::BooleanHistogram(const std::string& name,
- const BucketRanges* ranges,
- HistogramBase::AtomicCount* counts,
- HistogramBase::AtomicCount* logged_counts,
- HistogramSamples::Metadata* meta,
- HistogramSamples::Metadata* logged_meta)
- : LinearHistogram(name, 1, 2, ranges, counts, logged_counts, 2, meta,
+BooleanHistogram::BooleanHistogram(
+ const std::string& name,
+ const BucketRanges* ranges,
+ const DelayedPersistentAllocation& counts,
+ const DelayedPersistentAllocation& logged_counts,
+ HistogramSamples::Metadata* meta,
+ HistogramSamples::Metadata* logged_meta)
+ : LinearHistogram(name,
+ 1,
+ 2,
+ ranges,
+ counts,
+ logged_counts,
+ meta,
logged_meta) {}
HistogramBase* BooleanHistogram::DeserializeInfoImpl(PickleIterator* iter) {
@@ -1087,13 +1095,12 @@ HistogramBase* CustomHistogram::FactoryGet(
std::unique_ptr<HistogramBase> CustomHistogram::PersistentCreate(
const std::string& name,
const BucketRanges* ranges,
- HistogramBase::AtomicCount* counts,
- HistogramBase::AtomicCount* logged_counts,
- uint32_t counts_size,
+ const DelayedPersistentAllocation& counts,
+ const DelayedPersistentAllocation& logged_counts,
HistogramSamples::Metadata* meta,
HistogramSamples::Metadata* logged_meta) {
- return WrapUnique(new CustomHistogram(
- name, ranges, counts, logged_counts, counts_size, meta, logged_meta));
+ return WrapUnique(new CustomHistogram(name, ranges, counts, logged_counts,
+ meta, logged_meta));
}
HistogramType CustomHistogram::GetHistogramType() const {
@@ -1122,20 +1129,19 @@ CustomHistogram::CustomHistogram(const std::string& name,
ranges->range(ranges->bucket_count() - 1),
ranges) {}
-CustomHistogram::CustomHistogram(const std::string& name,
- const BucketRanges* ranges,
- HistogramBase::AtomicCount* counts,
- HistogramBase::AtomicCount* logged_counts,
- uint32_t counts_size,
- HistogramSamples::Metadata* meta,
- HistogramSamples::Metadata* logged_meta)
+CustomHistogram::CustomHistogram(
+ const std::string& name,
+ const BucketRanges* ranges,
+ const DelayedPersistentAllocation& counts,
+ const DelayedPersistentAllocation& logged_counts,
+ HistogramSamples::Metadata* meta,
+ HistogramSamples::Metadata* logged_meta)
: Histogram(name,
ranges->range(1),
ranges->range(ranges->bucket_count() - 1),
ranges,
counts,
logged_counts,
- counts_size,
meta,
logged_meta) {}
« no previous file with comments | « base/metrics/histogram.h ('k') | base/metrics/histogram_samples.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698