Chromium Code Reviews| Index: chrome/browser/metrics/metrics_memory_details.h |
| diff --git a/chrome/browser/metrics/metrics_memory_details.h b/chrome/browser/metrics/metrics_memory_details.h |
| index f833afbc82abfd528572eab33b22fb2c3598dbef..9743db6f76e922973ff816bafa669337c35554bb 100644 |
| --- a/chrome/browser/metrics/metrics_memory_details.h |
| +++ b/chrome/browser/metrics/metrics_memory_details.h |
| @@ -38,13 +38,29 @@ class MemoryGrowthTracker { |
| DISALLOW_COPY_AND_ASSIGN(MemoryGrowthTracker); |
| }; |
| +// PeakMemoryUsageTracker tracks the peak memory usage. |
| +class PeakMemoryUsageTracker { |
| + public: |
| + PeakMemoryUsageTracker(); |
| + |
| + // Call with current memory usage. Returns true if the peak has been updated. |
| + bool Update(int memory_usage); |
|
haraken
2016/12/12 11:41:00
unsigned long long?
|
| + int peak() { return peak_; } |
| + |
| + private: |
| + int peak_; |
|
haraken
2016/12/12 11:41:00
unsigned long long?
|
| + |
| + DISALLOW_COPY_AND_ASSIGN(PeakMemoryUsageTracker); |
| +}; |
| + |
| // Handles asynchronous fetching of memory details and logging histograms about |
| // memory use of various processes. |
| // Will run the provided callback when finished. |
| class MetricsMemoryDetails : public MemoryDetails { |
| public: |
| MetricsMemoryDetails(const base::Closure& callback, |
| - MemoryGrowthTracker* memory_growth_tracker); |
| + MemoryGrowthTracker* memory_growth_tracker, |
| + PeakMemoryUsageTracker* peak_memory_usage_tracker); |
| void set_generate_histograms(bool generate_histograms) { |
| generate_histograms_ = generate_histograms; |
| @@ -75,6 +91,11 @@ class MetricsMemoryDetails : public MemoryDetails { |
| // If it is null, nothing is tracked. |
| MemoryGrowthTracker* memory_growth_tracker_; |
| + // A pointer to PeakMemoryUsageTracker which is contained in a longer-lived |
| + // owner of MetricsMemoryDetails, for example, ChromeMetricsServiceClient. |
| + // If it is null, nothing is tracked. |
| + PeakMemoryUsageTracker* peak_memory_usage_tracker_; |
| + |
| // A flag indicating if histogram data should be generated. True on default. |
| // If false, then only MemoryGrowthTracker gets notified about memory usage. |
| bool generate_histograms_; |