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

Unified Diff: chrome/browser/performance_monitor/performance_monitor.h

Issue 10656052: Performance monitor stats gathering. (Closed) Base URL: http://git.chromium.org/chromium/src.git@cpm_main
Patch Set: Sync with trunk Created 8 years, 5 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 side-by-side diff with in-line comments
Download patch
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 c74ee7ae6921319716efbbd2e195f44cbdfcee94..b0875669102ed7b08c4961d1deedbb4280649486 100644
--- a/chrome/browser/performance_monitor/performance_monitor.h
+++ b/chrome/browser/performance_monitor/performance_monitor.h
@@ -5,12 +5,16 @@
#ifndef CHROME_BROWSER_PERFORMANCE_MONITOR_PERFORMANCE_MONITOR_H_
#define CHROME_BROWSER_PERFORMANCE_MONITOR_PERFORMANCE_MONITOR_H_
+#include <map>
#include <string>
#include "base/callback.h"
#include "base/file_path.h"
+#include "base/memory/linked_ptr.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/singleton.h"
+#include "base/process.h"
+#include "base/process_util.h"
#include "base/timer.h"
#include "chrome/browser/performance_monitor/database.h"
#include "chrome/browser/performance_monitor/event.h"
@@ -26,6 +30,9 @@ class PerformanceMonitor : public content::NotificationObserver {
public:
typedef base::Callback<void(const std::string&)> StateValueCallback;
+ typedef std::map<base::ProcessHandle,
+ 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
@@ -41,6 +48,9 @@ class PerformanceMonitor : public content::NotificationObserver {
// start collecting data.
void Start();
+ // Gathers CPU usage and memory usage of all Chrome processes.
+ void GatherStatisticsOnBackgroundThread();
+
// content::NotificationObserver
// Wait for various notifications; insert events into the database upon
// occurance.
@@ -89,6 +99,16 @@ class PerformanceMonitor : public content::NotificationObserver {
void AddEventOnBackgroundThread(scoped_ptr<Event> event);
+ // Gathers the CPU usage of every Chrome process that has been running since
+ // the last call to GatherStatistics().
+ void GatherCPUUsageOnBackgroundThread();
+
+ // Gathers the memory usage of every process in the current list of processes.
+ void GatherMemoryUsageOnBackgroundThread();
+
+ // Updates the ProcessMetrics map with the current list of processes.
+ void UpdateMetricsMapOnBackgroundThread();
+
// Gets the corresponding value of |key| from the database, and then runs
// |callback| on the UI thread with that value as a parameter.
void GetStateValueOnBackgroundThread(
@@ -113,6 +133,9 @@ class PerformanceMonitor : public content::NotificationObserver {
scoped_ptr<Database> database_;
+ // A map of currently running ProcessHandles to ProcessMetrics.
+ MetricsMap metrics_map_;
+
// The timer to signal PerformanceMonitor to perform its timed collections.
base::RepeatingTimer<PerformanceMonitor> timer_;
« no previous file with comments | « chrome/browser/performance_monitor/metric_details.cc ('k') | chrome/browser/performance_monitor/performance_monitor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698