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 673cb89bd8948401327c75138ad2f14ed49f8f36..9ca1282e35f324f6da754741fd5e01c8d5eee716 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" |
@@ -23,6 +28,9 @@ class Database; |
class PerformanceMonitor : public content::NotificationObserver { |
public: |
+ 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 |
@@ -42,6 +50,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(). |
+ 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. |
@@ -76,9 +97,15 @@ class PerformanceMonitor : public content::NotificationObserver { |
// Wrapper function for inserting events into the database. |
void AddEvent(scoped_ptr<Event> event); |
- |
void AddEventOnBackgroundThread(scoped_ptr<Event> event); |
Yoyo Zhou
2012/07/09 21:33:36
nit: since AddEventOnBackgroundThread is not descr
mitchellwrosen
2012/07/09 22:45:23
Done.
|
+ // 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_; |