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

Side by Side Diff: base/histogram.h

Issue 28046: Use string for Histogram names since these are all ASCII anyway wide-characte... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | base/histogram.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 8
9 // It supports calls to accumulate either time intervals (which are processed 9 // It supports calls to accumulate either time intervals (which are processed
10 // as integral number of milliseconds), or arbitrary integral units. 10 // as integral number of milliseconds), or arbitrary integral units.
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 // that fit into each bucket. 211 // that fit into each bucket.
212 Counts counts_; 212 Counts counts_;
213 213
214 // Save simple stats locally. Note that this MIGHT get done in base class 214 // Save simple stats locally. Note that this MIGHT get done in base class
215 // without shared memory at some point. 215 // without shared memory at some point.
216 int64 sum_; // sum of samples. 216 int64 sum_; // sum of samples.
217 int64 square_sum_; // sum of squares of samples. 217 int64 square_sum_; // sum of squares of samples.
218 }; 218 };
219 //---------------------------------------------------------------------------- 219 //----------------------------------------------------------------------------
220 220
221 Histogram(const wchar_t* name, Sample minimum, 221 Histogram(const char* name, Sample minimum,
222 Sample maximum, size_t bucket_count); 222 Sample maximum, size_t bucket_count);
223 Histogram(const wchar_t* name, base::TimeDelta minimum, 223 Histogram(const char* name, base::TimeDelta minimum,
224 base::TimeDelta maximum, size_t bucket_count); 224 base::TimeDelta maximum, size_t bucket_count);
225 virtual ~Histogram(); 225 virtual ~Histogram();
226 226
227 // Hooks to override stats counter methods. This ensures that we gather all 227 // Hooks to override stats counter methods. This ensures that we gather all
228 // input the stats counter sees. 228 // input the stats counter sees.
229 virtual void Add(int value); 229 virtual void Add(int value);
230 230
231 // The following methods provide graphical histogram displays. 231 // The following methods provide graphical histogram displays.
232 void WriteHTMLGraph(std::string* output) const; 232 void WriteHTMLGraph(std::string* output) const;
233 void WriteAscii(bool graph_it, const std::string& newline, 233 void WriteAscii(bool graph_it, const std::string& newline,
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 //------------------------------------------------------------------------------ 350 //------------------------------------------------------------------------------
351 351
352 // LinearHistogram is a more traditional histogram, with evenly spaced 352 // LinearHistogram is a more traditional histogram, with evenly spaced
353 // buckets. 353 // buckets.
354 class LinearHistogram : public Histogram { 354 class LinearHistogram : public Histogram {
355 public: 355 public:
356 struct DescriptionPair { 356 struct DescriptionPair {
357 Sample sample; 357 Sample sample;
358 const char* description; // Null means end of a list of pairs. 358 const char* description; // Null means end of a list of pairs.
359 }; 359 };
360 LinearHistogram(const wchar_t* name, Sample minimum, 360 LinearHistogram(const char* name, Sample minimum,
361 Sample maximum, size_t bucket_count); 361 Sample maximum, size_t bucket_count);
362 LinearHistogram(const wchar_t* name, base::TimeDelta minimum, 362 LinearHistogram(const char* name, base::TimeDelta minimum,
363 base::TimeDelta maximum, size_t bucket_count); 363 base::TimeDelta maximum, size_t bucket_count);
364 ~LinearHistogram() {} 364 ~LinearHistogram() {}
365 365
366 // Store a list of number/text values for use in rendering the histogram. 366 // Store a list of number/text values for use in rendering the histogram.
367 // The last element in the array has a null in its "description" slot. 367 // The last element in the array has a null in its "description" slot.
368 void SetRangeDescriptions(const DescriptionPair descriptions[]); 368 void SetRangeDescriptions(const DescriptionPair descriptions[]);
369 369
370 protected: 370 protected:
371 // Initialize ranges_ mapping. 371 // Initialize ranges_ mapping.
372 virtual void InitializeBucketRange(); 372 virtual void InitializeBucketRange();
(...skipping 17 matching lines...) Expand all
390 BucketDescriptionMap bucket_description_; 390 BucketDescriptionMap bucket_description_;
391 391
392 DISALLOW_EVIL_CONSTRUCTORS(LinearHistogram); 392 DISALLOW_EVIL_CONSTRUCTORS(LinearHistogram);
393 }; 393 };
394 394
395 //------------------------------------------------------------------------------ 395 //------------------------------------------------------------------------------
396 396
397 // BooleanHistogram is a histogram for booleans. 397 // BooleanHistogram is a histogram for booleans.
398 class BooleanHistogram : public LinearHistogram { 398 class BooleanHistogram : public LinearHistogram {
399 public: 399 public:
400 explicit BooleanHistogram(const wchar_t* name) 400 explicit BooleanHistogram(const char* name)
401 : LinearHistogram(name, 0, 2, 3) { 401 : LinearHistogram(name, 0, 2, 3) {
402 } 402 }
403 403
404 virtual void AddBoolean(bool value) { Add(value ? 1 : 0); } 404 virtual void AddBoolean(bool value) { Add(value ? 1 : 0); }
405 405
406 private: 406 private:
407 DISALLOW_EVIL_CONSTRUCTORS(BooleanHistogram); 407 DISALLOW_EVIL_CONSTRUCTORS(BooleanHistogram);
408 }; 408 };
409 409
410 //------------------------------------------------------------------------------ 410 //------------------------------------------------------------------------------
411 // This section provides implementation for ThreadSafeHistogram. 411 // This section provides implementation for ThreadSafeHistogram.
412 //------------------------------------------------------------------------------ 412 //------------------------------------------------------------------------------
413 413
414 class ThreadSafeHistogram : public Histogram { 414 class ThreadSafeHistogram : public Histogram {
415 public: 415 public:
416 ThreadSafeHistogram(const wchar_t* name, Sample minimum, 416 ThreadSafeHistogram(const char* name, Sample minimum,
417 Sample maximum, size_t bucket_count); 417 Sample maximum, size_t bucket_count);
418 418
419 // Provide the analog to Add() 419 // Provide the analog to Add()
420 void Remove(int value); 420 void Remove(int value);
421 421
422 protected: 422 protected:
423 // Provide locked versions to get precise counts. 423 // Provide locked versions to get precise counts.
424 virtual void Accumulate(Sample value, Count count, size_t index); 424 virtual void Accumulate(Sample value, Count count, size_t index);
425 425
426 virtual void SnapshotSample(SampleSet* sample); 426 virtual void SnapshotSample(SampleSet* sample);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 // lock protects access to the above map. 478 // lock protects access to the above map.
479 static Lock* lock_; 479 static Lock* lock_;
480 480
481 // Dump all known histograms to log. 481 // Dump all known histograms to log.
482 static bool dump_on_exit_; 482 static bool dump_on_exit_;
483 483
484 DISALLOW_EVIL_CONSTRUCTORS(StatisticsRecorder); 484 DISALLOW_EVIL_CONSTRUCTORS(StatisticsRecorder);
485 }; 485 };
486 486
487 #endif // BASE_HISTOGRAM_H__ 487 #endif // BASE_HISTOGRAM_H__
488
OLDNEW
« no previous file with comments | « no previous file | base/histogram.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698