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

Side by Side Diff: chrome/browser/performance_monitor/performance_monitor.h

Issue 2181493002: Return unique_ptrs from base::ProcessMetrics. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove os_resource_win.* Created 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_PERFORMANCE_MONITOR_PERFORMANCE_MONITOR_H_ 5 #ifndef CHROME_BROWSER_PERFORMANCE_MONITOR_PERFORMANCE_MONITOR_H_
6 #define CHROME_BROWSER_PERFORMANCE_MONITOR_PERFORMANCE_MONITOR_H_ 6 #define CHROME_BROWSER_PERFORMANCE_MONITOR_PERFORMANCE_MONITOR_H_
7 7
8 #include <map> 8 #include <map>
9 #include <memory> 9 #include <memory>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/lazy_instance.h"
12 #include "base/macros.h" 13 #include "base/macros.h"
13 #include "base/process/process_handle.h" 14 #include "base/process/process_handle.h"
14 #include "base/timer/timer.h" 15 #include "base/timer/timer.h"
15 #include "chrome/browser/performance_monitor/process_metrics_history.h" 16 #include "chrome/browser/performance_monitor/process_metrics_history.h"
16 17
17 namespace base {
18 template <typename Type>
19 struct DefaultSingletonTraits;
20 } // namespace base
21
22 namespace content { 18 namespace content {
23 struct ChildProcessData; 19 struct ChildProcessData;
24 } 20 }
25 21
26 namespace performance_monitor { 22 namespace performance_monitor {
27 23
24 class ProcessMetricsHistory;
25
28 // PerformanceMonitor is a tool which periodically monitors performance metrics 26 // PerformanceMonitor is a tool which periodically monitors performance metrics
29 // for histogram logging and possibly taking action upon noticing serious 27 // for histogram logging and possibly taking action upon noticing serious
30 // performance degradation. 28 // performance degradation.
31 class PerformanceMonitor { 29 class PerformanceMonitor {
32 public: 30 public:
33 // Returns the current PerformanceMonitor instance if one exists; otherwise 31 // Returns the current PerformanceMonitor instance if one exists; otherwise
34 // constructs a new PerformanceMonitor. 32 // constructs a new PerformanceMonitor.
35 static PerformanceMonitor* GetInstance(); 33 static PerformanceMonitor* GetInstance();
36 34
37 // Start the cycle of metrics gathering. 35 // Start the cycle of metrics gathering.
38 void StartGatherCycle(); 36 void StartGatherCycle();
39 37
40 private: 38 private:
41 typedef std::map<base::ProcessHandle, ProcessMetricsHistory> MetricsMap; 39 friend struct base::DefaultLazyInstanceTraits<PerformanceMonitor>;
42 40
43 friend struct base::DefaultSingletonTraits<PerformanceMonitor>; 41 using MetricsMap =
42 std::map<base::ProcessHandle, std::unique_ptr<ProcessMetricsHistory>>;
44 43
45 PerformanceMonitor(); 44 PerformanceMonitor();
46 virtual ~PerformanceMonitor(); 45 ~PerformanceMonitor();
47 46
48 // Perform any collections that are done on a timed basis. 47 // Perform any collections that are done on a timed basis.
49 void DoTimedCollections(); 48 void DoTimedCollections();
50 49
51 // Mark the given process as alive in the current update iteration. 50 // Mark the given process as alive in the current update iteration.
52 // This means adding an entry to the map of watched processes if it's not 51 // This means adding an entry to the map of watched processes if it's not
53 // already present. 52 // already present.
54 void MarkProcessAsAlive(const ProcessMetricsMetadata& process_data, 53 void MarkProcessAsAlive(const ProcessMetricsMetadata& process_data,
55 int current_update_sequence); 54 int current_update_sequence);
56 void MarkProcessesAsAliveOnUIThread( 55 void MarkProcessesAsAliveOnUIThread(
(...skipping 13 matching lines...) Expand all
70 69
71 // The timer to signal PerformanceMonitor to perform its timed collections. 70 // The timer to signal PerformanceMonitor to perform its timed collections.
72 base::OneShotTimer repeating_timer_; 71 base::OneShotTimer repeating_timer_;
73 72
74 DISALLOW_COPY_AND_ASSIGN(PerformanceMonitor); 73 DISALLOW_COPY_AND_ASSIGN(PerformanceMonitor);
75 }; 74 };
76 75
77 } // namespace performance_monitor 76 } // namespace performance_monitor
78 77
79 #endif // CHROME_BROWSER_PERFORMANCE_MONITOR_PERFORMANCE_MONITOR_H_ 78 #endif // CHROME_BROWSER_PERFORMANCE_MONITOR_PERFORMANCE_MONITOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698