OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include "chrome/browser/task_management/sampling/task_group.h" | 5 #include "chrome/browser/task_management/sampling/task_group.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
10 #include "chrome/browser/task_management/task_manager_observer.h" | 10 #include "chrome/browser/task_management/task_manager_observer.h" |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 base::ProcessHandle proc_handle, | 56 base::ProcessHandle proc_handle, |
57 base::ProcessId proc_id, | 57 base::ProcessId proc_id, |
58 const scoped_refptr<base::SequencedTaskRunner>& blocking_pool_runner) | 58 const scoped_refptr<base::SequencedTaskRunner>& blocking_pool_runner) |
59 : process_handle_(proc_handle), | 59 : process_handle_(proc_handle), |
60 process_id_(proc_id), | 60 process_id_(proc_id), |
61 worker_thread_sampler_(nullptr), | 61 worker_thread_sampler_(nullptr), |
62 tasks_(), | 62 tasks_(), |
63 cpu_usage_(0.0), | 63 cpu_usage_(0.0), |
64 memory_usage_(), | 64 memory_usage_(), |
65 gpu_memory_(-1), | 65 gpu_memory_(-1), |
| 66 per_process_network_usage_(-1), |
66 #if defined(OS_WIN) | 67 #if defined(OS_WIN) |
67 gdi_current_handles_(-1), | 68 gdi_current_handles_(-1), |
68 gdi_peak_handles_(-1), | 69 gdi_peak_handles_(-1), |
69 user_current_handles_(-1), | 70 user_current_handles_(-1), |
70 user_peak_handles_(-1), | 71 user_peak_handles_(-1), |
71 #endif // defined(OS_WIN) | 72 #endif // defined(OS_WIN) |
72 #if !defined(DISABLE_NACL) | 73 #if !defined(DISABLE_NACL) |
73 nacl_debug_stub_port_(-1), | 74 nacl_debug_stub_port_(-1), |
74 #endif // !defined(DISABLE_NACL) | 75 #endif // !defined(DISABLE_NACL) |
75 idle_wakeups_per_second_(-1), | 76 idle_wakeups_per_second_(-1), |
(...skipping 29 matching lines...) Expand all Loading... |
105 tasks_.erase(task->task_id()); | 106 tasks_.erase(task->task_id()); |
106 } | 107 } |
107 | 108 |
108 void TaskGroup::Refresh( | 109 void TaskGroup::Refresh( |
109 const content::GPUVideoMemoryUsageStats& gpu_memory_stats, | 110 const content::GPUVideoMemoryUsageStats& gpu_memory_stats, |
110 base::TimeDelta update_interval, | 111 base::TimeDelta update_interval, |
111 int64 refresh_flags) { | 112 int64 refresh_flags) { |
112 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 113 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
113 | 114 |
114 // First refresh the enabled non-expensive resources usages on the UI thread. | 115 // First refresh the enabled non-expensive resources usages on the UI thread. |
115 // 1- Refresh all the tasks. | 116 // 1- Refresh all the tasks as well as the total network usage (if enabled). |
116 for (auto& task_pair : tasks_) | 117 const bool network_usage_refresh_enabled = |
117 task_pair.second->Refresh(update_interval, refresh_flags); | 118 IsResourceRefreshEnabled(REFRESH_TYPE_NETWORK_USAGE, refresh_flags); |
| 119 per_process_network_usage_ = network_usage_refresh_enabled ? 0 : -1; |
| 120 for (auto& task_pair : tasks_) { |
| 121 Task* task = task_pair.second; |
| 122 task->Refresh(update_interval, refresh_flags); |
| 123 |
| 124 if (network_usage_refresh_enabled && task->ReportsNetworkUsage()) { |
| 125 per_process_network_usage_ += task->network_usage(); |
| 126 } |
| 127 } |
118 | 128 |
119 // 2- Refresh GPU memory (if enabled). | 129 // 2- Refresh GPU memory (if enabled). |
120 if (IsResourceRefreshEnabled(REFRESH_TYPE_GPU_MEMORY, refresh_flags)) | 130 if (IsResourceRefreshEnabled(REFRESH_TYPE_GPU_MEMORY, refresh_flags)) |
121 RefreshGpuMemory(gpu_memory_stats); | 131 RefreshGpuMemory(gpu_memory_stats); |
122 | 132 |
123 // 3- Refresh Windows handles (if enabled). | 133 // 3- Refresh Windows handles (if enabled). |
124 #if defined(OS_WIN) | 134 #if defined(OS_WIN) |
125 if (IsResourceRefreshEnabled(REFRESH_TYPE_HANDLES, refresh_flags)) | 135 if (IsResourceRefreshEnabled(REFRESH_TYPE_HANDLES, refresh_flags)) |
126 RefreshWindowsHandles(); | 136 RefreshWindowsHandles(); |
127 #endif // defined(OS_WIN) | 137 #endif // defined(OS_WIN) |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 memory_usage_ = memory_usage; | 209 memory_usage_ = memory_usage; |
200 } | 210 } |
201 | 211 |
202 void TaskGroup::OnIdleWakeupsRefreshDone(int idle_wakeups_per_second) { | 212 void TaskGroup::OnIdleWakeupsRefreshDone(int idle_wakeups_per_second) { |
203 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 213 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
204 | 214 |
205 idle_wakeups_per_second_ = idle_wakeups_per_second; | 215 idle_wakeups_per_second_ = idle_wakeups_per_second; |
206 } | 216 } |
207 | 217 |
208 } // namespace task_management | 218 } // namespace task_management |
OLD | NEW |