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_; |