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

Side by Side Diff: chrome/browser/task_management/sampling/task_group_sampler.cc

Issue 1545223002: Switch to standard integer types in chrome/browser/, part 4 of 4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 4 years, 12 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 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_sampler.h" 5 #include "chrome/browser/task_management/sampling/task_group_sampler.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 "build/build_config.h"
9 #include "chrome/browser/task_management/task_manager_observer.h" 10 #include "chrome/browser/task_management/task_manager_observer.h"
10 #include "content/public/browser/browser_child_process_host.h" 11 #include "content/public/browser/browser_child_process_host.h"
11 #include "content/public/browser/browser_thread.h" 12 #include "content/public/browser/browser_thread.h"
12 13
13 namespace task_management { 14 namespace task_management {
14 15
15 namespace { 16 namespace {
16 17
17 base::ProcessMetrics* CreateProcessMetrics(base::ProcessHandle handle) { 18 base::ProcessMetrics* CreateProcessMetrics(base::ProcessHandle handle) {
18 #if !defined(OS_MACOSX) 19 #if !defined(OS_MACOSX)
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 on_process_priority_callback_(on_process_priority) { 53 on_process_priority_callback_(on_process_priority) {
53 DCHECK(blocking_pool_runner.get()); 54 DCHECK(blocking_pool_runner.get());
54 55
55 // This object will be created on the UI thread, however the sequenced checker 56 // This object will be created on the UI thread, however the sequenced checker
56 // will be used to assert we're running the expensive operations on one of the 57 // will be used to assert we're running the expensive operations on one of the
57 // blocking pool threads. 58 // blocking pool threads.
58 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 59 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
59 worker_pool_sequenced_checker_.DetachFromSequence(); 60 worker_pool_sequenced_checker_.DetachFromSequence();
60 } 61 }
61 62
62 void TaskGroupSampler::Refresh(int64 refresh_flags) { 63 void TaskGroupSampler::Refresh(int64_t refresh_flags) {
63 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 64 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
64 65
65 if (IsResourceRefreshEnabled(REFRESH_TYPE_CPU, refresh_flags)) { 66 if (IsResourceRefreshEnabled(REFRESH_TYPE_CPU, refresh_flags)) {
66 base::PostTaskAndReplyWithResult( 67 base::PostTaskAndReplyWithResult(
67 blocking_pool_runner_.get(), 68 blocking_pool_runner_.get(),
68 FROM_HERE, 69 FROM_HERE,
69 base::Bind(&TaskGroupSampler::RefreshCpuUsage, this), 70 base::Bind(&TaskGroupSampler::RefreshCpuUsage, this),
70 on_cpu_refresh_callback_); 71 on_cpu_refresh_callback_);
71 } 72 }
72 73
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 MemoryUsageStats TaskGroupSampler::RefreshMemoryUsage() { 120 MemoryUsageStats TaskGroupSampler::RefreshMemoryUsage() {
120 DCHECK(worker_pool_sequenced_checker_.CalledOnValidSequencedThread()); 121 DCHECK(worker_pool_sequenced_checker_.CalledOnValidSequencedThread());
121 122
122 // TODO(afakhry): Integrate Bruce's CL for faster retrieval of physical memory 123 // TODO(afakhry): Integrate Bruce's CL for faster retrieval of physical memory
123 // on Windows here. 124 // on Windows here.
124 125
125 MemoryUsageStats memory_usage; 126 MemoryUsageStats memory_usage;
126 // Refreshing the physical/private/shared memory at one shot. 127 // Refreshing the physical/private/shared memory at one shot.
127 base::WorkingSetKBytes ws_usage; 128 base::WorkingSetKBytes ws_usage;
128 if (process_metrics_->GetWorkingSetKBytes(&ws_usage)) { 129 if (process_metrics_->GetWorkingSetKBytes(&ws_usage)) {
129 memory_usage.private_bytes = static_cast<int64>(ws_usage.priv * 1024); 130 memory_usage.private_bytes = static_cast<int64_t>(ws_usage.priv * 1024);
130 memory_usage.shared_bytes = static_cast<int64>(ws_usage.shared * 1024); 131 memory_usage.shared_bytes = static_cast<int64_t>(ws_usage.shared * 1024);
131 #if defined(OS_LINUX) 132 #if defined(OS_LINUX)
132 // On Linux private memory is also resident. Just use it. 133 // On Linux private memory is also resident. Just use it.
133 memory_usage.physical_bytes = memory_usage.private_bytes; 134 memory_usage.physical_bytes = memory_usage.private_bytes;
134 #else 135 #else
135 // Memory = working_set.private which is working set minus shareable. This 136 // Memory = working_set.private which is working set minus shareable. This
136 // avoids the unpredictable counting that occurs when calculating memory as 137 // avoids the unpredictable counting that occurs when calculating memory as
137 // working set minus shared (renderer code counted when one tab is open and 138 // working set minus shared (renderer code counted when one tab is open and
138 // not counted when two or more are open) and it is much more efficient to 139 // not counted when two or more are open) and it is much more efficient to
139 // calculate on Windows. 140 // calculate on Windows.
140 memory_usage.physical_bytes = 141 memory_usage.physical_bytes =
141 static_cast<int64>(process_metrics_->GetWorkingSetSize()); 142 static_cast<int64_t>(process_metrics_->GetWorkingSetSize());
142 memory_usage.physical_bytes -= 143 memory_usage.physical_bytes -=
143 static_cast<int64>(ws_usage.shareable * 1024); 144 static_cast<int64_t>(ws_usage.shareable * 1024);
144 #endif 145 #endif
145 } 146 }
146 147
147 return memory_usage; 148 return memory_usage;
148 } 149 }
149 150
150 int TaskGroupSampler::RefreshIdleWakeupsPerSecond() { 151 int TaskGroupSampler::RefreshIdleWakeupsPerSecond() {
151 DCHECK(worker_pool_sequenced_checker_.CalledOnValidSequencedThread()); 152 DCHECK(worker_pool_sequenced_checker_.CalledOnValidSequencedThread());
152 153
153 return process_metrics_->GetIdleWakeupsPerSecond(); 154 return process_metrics_->GetIdleWakeupsPerSecond();
154 } 155 }
155 156
156 #if defined(OS_LINUX) 157 #if defined(OS_LINUX)
157 int TaskGroupSampler::RefreshOpenFdCount() { 158 int TaskGroupSampler::RefreshOpenFdCount() {
158 DCHECK(worker_pool_sequenced_checker_.CalledOnValidSequencedThread()); 159 DCHECK(worker_pool_sequenced_checker_.CalledOnValidSequencedThread());
159 160
160 return process_metrics_->GetOpenFdCount(); 161 return process_metrics_->GetOpenFdCount();
161 } 162 }
162 #endif // defined(OS_LINUX) 163 #endif // defined(OS_LINUX)
163 164
164 bool TaskGroupSampler::RefreshProcessPriority() { 165 bool TaskGroupSampler::RefreshProcessPriority() {
165 DCHECK(worker_pool_sequenced_checker_.CalledOnValidSequencedThread()); 166 DCHECK(worker_pool_sequenced_checker_.CalledOnValidSequencedThread());
166 167
167 return process_.IsProcessBackgrounded(); 168 return process_.IsProcessBackgrounded();
168 } 169 }
169 170
170 } // namespace task_management 171 } // namespace task_management
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698