Chromium Code Reviews| Index: chrome/browser/performance_monitor/performance_monitor.h |
| diff --git a/chrome/browser/performance_monitor/performance_monitor.h b/chrome/browser/performance_monitor/performance_monitor.h |
| index 3a900813981989c2b9ab352d7c0db51ab2c35d96..227595d326838577ca313b6b8be0571c2174091e 100644 |
| --- a/chrome/browser/performance_monitor/performance_monitor.h |
| +++ b/chrome/browser/performance_monitor/performance_monitor.h |
| @@ -6,10 +6,15 @@ |
| #define CHROME_BROWSER_PERFORMANCE_MONITOR_PERFORMANCE_MONITOR_H_ |
| #pragma once |
| +#include <map> |
| +#include <string> |
| + |
| #include "base/callback.h" |
| #include "base/file_path.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "base/memory/singleton.h" |
| +#include "base/process.h" |
| +#include "base/process_util.h" |
| #include "chrome/browser/performance_monitor/database.h" |
| #include "chrome/browser/performance_monitor/event.h" |
| #include "content/public/browser/notification_details.h" |
| @@ -24,6 +29,9 @@ class PerformanceMonitor : public content::NotificationObserver { |
| public: |
| typedef base::Callback<void(const std::string&)> StateValueCallback; |
| + typedef std::map<base::ProcessId, |
| + linked_ptr<base::ProcessMetrics> > MetricsMap; |
| + |
| // Set the path which the PerformanceMonitor should use for the database files |
| // constructed. This must be done prior to the initialization of the |
| // PerformanceMonitor. Returns true on success, false on failure (failure |
| @@ -43,6 +51,19 @@ class PerformanceMonitor : public content::NotificationObserver { |
| // it has been updated. If it has, insert an event in the database. |
| void CheckForVersionUpdate(); |
| + // Gathers CPU usage and memory usage of all Chrome processes. |
| + void GatherStatistics(); |
| + |
| + // Gathers the CPU usage of every process that has been running since the |
| + // last call to GatherStatistics(). |
|
Devlin
2012/07/11 16:28:08
Make the helpers private?
mitchellwrosen
2012/07/11 18:30:18
Done.
|
| + void GatherCPUUsage(); |
| + |
| + // Gathers the memory usage of every process in the current list of processes. |
| + void GatherMemoryUsage(); |
| + |
| + // Updates the ProcessMetrics map with the current list of processes. |
| + void UpdateMetricsMap(); |
| + |
| // content::NotificationObserver |
| // Wait for various notifications; insert events into the database upon |
| // occurance. |
| @@ -81,6 +102,14 @@ class PerformanceMonitor : public content::NotificationObserver { |
| void AddEventOnBackgroundThread(scoped_ptr<Event> event); |
| + // Wrapper function for inserting metrics into the database. |
| + void AddMetric(const std::string& key, const std::string& value); |
| + |
| + void AddMetricOnBackgroundThread(const std::string& key, |
| + const std::string& value); |
| + |
| + MetricsMap metrics_map_; |
| + |
| // The location at which the database files are stored; if empty, the database |
| // will default to '<user_data_dir>/performance_monitor_dbs'. |
| FilePath database_path_; |