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

Side by Side Diff: base/histogram.cc

Issue 339059: Add compiler-specific "examine printf format" attributes to printfs. (Closed)
Patch Set: cleanups Created 11 years, 1 month 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
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 // See header file for details and examples. 8 // See header file for details and examples.
9 9
10 #include "base/histogram.h" 10 #include "base/histogram.h"
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 } 117 }
118 118
119 int64 remaining = sample_count; 119 int64 remaining = sample_count;
120 int64 past = 0; 120 int64 past = 0;
121 // Output the actual histogram graph. 121 // Output the actual histogram graph.
122 for (size_t i = 0; i < bucket_count(); ++i) { 122 for (size_t i = 0; i < bucket_count(); ++i) {
123 Count current = snapshot.counts(i); 123 Count current = snapshot.counts(i);
124 if (!current && !PrintEmptyBucket(i)) 124 if (!current && !PrintEmptyBucket(i))
125 continue; 125 continue;
126 remaining -= current; 126 remaining -= current;
127 StringAppendF(output, "%#*s ", print_width, GetAsciiBucketRange(i).c_str()); 127 std::string range = GetAsciiBucketRange(i);
128 output->append(range);
129 for (size_t j = 0; range.size() + j < print_width + 1; ++j)
130 output->push_back(' ');
128 if (0 == current && i < bucket_count() - 1 && 0 == snapshot.counts(i + 1)) { 131 if (0 == current && i < bucket_count() - 1 && 0 == snapshot.counts(i + 1)) {
129 while (i < bucket_count() - 1 && 0 == snapshot.counts(i + 1)) 132 while (i < bucket_count() - 1 && 0 == snapshot.counts(i + 1))
130 ++i; 133 ++i;
131 output->append("... "); 134 output->append("... ");
132 output->append(newline); 135 output->append(newline);
133 continue; // No reason to plot emptiness. 136 continue; // No reason to plot emptiness.
134 } 137 }
135 double current_size = GetBucketSize(current, i); 138 double current_size = GetBucketSize(current, i);
136 if (graph_it) 139 if (graph_it)
137 WriteAsciiBucketGraph(current_size, max_size, output); 140 WriteAsciiBucketGraph(current_size, max_size, output);
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 if (current_size > max) 283 if (current_size > max)
281 max = current_size; 284 max = current_size;
282 } 285 }
283 return max; 286 return max;
284 } 287 }
285 288
286 void Histogram::WriteAsciiHeader(const SampleSet& snapshot, 289 void Histogram::WriteAsciiHeader(const SampleSet& snapshot,
287 Count sample_count, 290 Count sample_count,
288 std::string* output) const { 291 std::string* output) const {
289 StringAppendF(output, 292 StringAppendF(output,
290 "Histogram: %s recorded %ld samples", 293 "Histogram: %s recorded %d samples",
291 histogram_name().c_str(), 294 histogram_name().c_str(),
292 sample_count); 295 sample_count);
293 if (0 == sample_count) { 296 if (0 == sample_count) {
294 DCHECK(0 == snapshot.sum()); 297 DCHECK(0 == snapshot.sum());
295 } else { 298 } else {
296 double average = static_cast<float>(snapshot.sum()) / sample_count; 299 double average = static_cast<float>(snapshot.sum()) / sample_count;
297 double variance = static_cast<float>(snapshot.square_sum())/sample_count 300 double variance = static_cast<float>(snapshot.square_sum())/sample_count
298 - average * average; 301 - average * average;
299 double standard_deviation = sqrt(variance); 302 double standard_deviation = sqrt(variance);
300 303
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 snapshot->push_back(it->second); 767 snapshot->push_back(it->second);
765 } 768 }
766 } 769 }
767 770
768 // static 771 // static
769 StatisticsRecorder::HistogramMap* StatisticsRecorder::histograms_ = NULL; 772 StatisticsRecorder::HistogramMap* StatisticsRecorder::histograms_ = NULL;
770 // static 773 // static
771 Lock* StatisticsRecorder::lock_ = NULL; 774 Lock* StatisticsRecorder::lock_ = NULL;
772 // static 775 // static
773 bool StatisticsRecorder::dump_on_exit_ = false; 776 bool StatisticsRecorder::dump_on_exit_ = false;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698