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

Side by Side Diff: chrome/browser/task_manager/sampling/task_manager_impl.cc

Issue 2905403002: plumb network upload into the task manager (Closed)
Patch Set: fixed comments Created 3 years, 6 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_manager/sampling/task_manager_impl.h" 5 #include "chrome/browser/task_manager/sampling/task_manager_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <unordered_map> 9 #include <unordered_map>
10 #include <unordered_set> 10 #include <unordered_set>
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 return GetTaskByTaskId(task_id)->GetChildProcessUniqueID(); 226 return GetTaskByTaskId(task_id)->GetChildProcessUniqueID();
227 } 227 }
228 228
229 void TaskManagerImpl::GetTerminationStatus(TaskId task_id, 229 void TaskManagerImpl::GetTerminationStatus(TaskId task_id,
230 base::TerminationStatus* out_status, 230 base::TerminationStatus* out_status,
231 int* out_error_code) const { 231 int* out_error_code) const {
232 GetTaskByTaskId(task_id)->GetTerminationStatus(out_status, out_error_code); 232 GetTaskByTaskId(task_id)->GetTerminationStatus(out_status, out_error_code);
233 } 233 }
234 234
235 int64_t TaskManagerImpl::GetNetworkUsage(TaskId task_id) const { 235 int64_t TaskManagerImpl::GetNetworkUsage(TaskId task_id) const {
236 return GetTaskByTaskId(task_id)->network_usage(); 236 return GetTaskByTaskId(task_id)->network_usage_rate();
237 }
238
239 int64_t TaskManagerImpl::GetCumulativeNetworkUsage(TaskId task_id) const {
240 return GetTaskByTaskId(task_id)->cumulative_network_usage();
237 } 241 }
238 242
239 int64_t TaskManagerImpl::GetProcessTotalNetworkUsage(TaskId task_id) const { 243 int64_t TaskManagerImpl::GetProcessTotalNetworkUsage(TaskId task_id) const {
240 return GetTaskGroupByTaskId(task_id)->per_process_network_usage(); 244 return GetTaskGroupByTaskId(task_id)->per_process_network_usage_rate();
245 }
246
247 int64_t TaskManagerImpl::GetCumulativeProcessTotalNetworkUsage(
248 TaskId task_id) const {
249 return GetTaskGroupByTaskId(task_id)->cumulative_per_process_network_usage();
241 } 250 }
242 251
243 int64_t TaskManagerImpl::GetSqliteMemoryUsed(TaskId task_id) const { 252 int64_t TaskManagerImpl::GetSqliteMemoryUsed(TaskId task_id) const {
244 return GetTaskByTaskId(task_id)->GetSqliteMemoryUsed(); 253 return GetTaskByTaskId(task_id)->GetSqliteMemoryUsed();
245 } 254 }
246 255
247 bool TaskManagerImpl::GetV8Memory(TaskId task_id, 256 bool TaskManagerImpl::GetV8Memory(TaskId task_id,
248 int64_t* allocated, 257 int64_t* allocated,
249 int64_t* used) const { 258 int64_t* used) const {
250 const Task* task = GetTaskByTaskId(task_id); 259 const Task* task = GetTaskByTaskId(task_id);
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 // Invalidate the cached sorted IDs by clearing the list. 453 // Invalidate the cached sorted IDs by clearing the list.
445 sorted_task_ids_.clear(); 454 sorted_task_ids_.clear();
446 } 455 }
447 456
448 void TaskManagerImpl::TaskUnresponsive(Task* task) { 457 void TaskManagerImpl::TaskUnresponsive(Task* task) {
449 DCHECK(task); 458 DCHECK(task);
450 NotifyObserversOnTaskUnresponsive(task->task_id()); 459 NotifyObserversOnTaskUnresponsive(task->task_id());
451 } 460 }
452 461
453 // static 462 // static
454 void TaskManagerImpl::OnMultipleBytesReadUI( 463 void TaskManagerImpl::OnMultipleBytesTransferredUI(
455 std::vector<BytesReadParam>* params) { 464 std::vector<BytesTransferredParam>* params) {
456 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 465 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
457 DCHECK(params); 466 DCHECK(params);
458 467
459 for (BytesReadParam& param : *params) { 468 for (BytesTransferredParam& param : *params) {
460 if (!GetInstance()->UpdateTasksWithBytesRead(param)) { 469 if (!GetInstance()->UpdateTasksWithBytesTransferred(param)) {
461 // We can't match a task to the notification. That might mean the 470 // We can't match a task to the notification. That might mean the
462 // tab that started a download was closed, or the request may have had 471 // tab that started a download was closed, or the request may have had
463 // no originating task associated with it in the first place. 472 // no originating task associated with it in the first place.
464 // We attribute orphaned/unaccounted activity to the Browser process. 473 // We attribute orphaned/unaccounted activity to the Browser process.
465 DCHECK(param.origin_pid || (param.child_id != -1)); 474 DCHECK(param.origin_pid || (param.child_id != -1));
466 475
467 param.origin_pid = 0; 476 param.origin_pid = 0;
468 param.child_id = param.route_id = -1; 477 param.child_id = param.route_id = -1;
469 478 GetInstance()->UpdateTasksWithBytesTransferred(param);
470 GetInstance()->UpdateTasksWithBytesRead(param);
471 } 479 }
472 } 480 }
473 } 481 }
474 482
475 void TaskManagerImpl::OnVideoMemoryUsageStatsUpdate( 483 void TaskManagerImpl::OnVideoMemoryUsageStatsUpdate(
476 const gpu::VideoMemoryUsageStats& gpu_memory_stats) { 484 const gpu::VideoMemoryUsageStats& gpu_memory_stats) {
477 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 485 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
478 486
479 gpu_memory_stats_ = gpu_memory_stats; 487 gpu_memory_stats_ = gpu_memory_stats;
480 } 488 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 int route_id) const { 536 int route_id) const {
529 for (const auto& task_provider : task_providers_) { 537 for (const auto& task_provider : task_providers_) {
530 Task* task = 538 Task* task =
531 task_provider->GetTaskOfUrlRequest(origin_pid, child_id, route_id); 539 task_provider->GetTaskOfUrlRequest(origin_pid, child_id, route_id);
532 if (task) 540 if (task)
533 return task; 541 return task;
534 } 542 }
535 return nullptr; 543 return nullptr;
536 } 544 }
537 545
538 bool TaskManagerImpl::UpdateTasksWithBytesRead(const BytesReadParam& param) { 546 bool TaskManagerImpl::UpdateTasksWithBytesTransferred(
547 const BytesTransferredParam& param) {
539 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 548 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
540 549
541 Task* task = 550 Task* task =
542 GetTaskByPidOrRoute(param.origin_pid, param.child_id, param.route_id); 551 GetTaskByPidOrRoute(param.origin_pid, param.child_id, param.route_id);
543 if (task) { 552 if (task) {
544 task->OnNetworkBytesRead(param.byte_count); 553 task->OnNetworkBytesRead(param.byte_read_count);
554 task->OnNetworkBytesSent(param.byte_sent_count);
545 return true; 555 return true;
546 } 556 }
547 557
548 // Couldn't match the bytes to any existing task. 558 // Couldn't match the bytes to any existing task.
549 return false; 559 return false;
550 } 560 }
551 561
552 TaskGroup* TaskManagerImpl::GetTaskGroupByTaskId(TaskId task_id) const { 562 TaskGroup* TaskManagerImpl::GetTaskGroupByTaskId(TaskId task_id) const {
553 auto it = task_groups_by_task_id_.find(task_id); 563 auto it = task_groups_by_task_id_.find(task_id);
554 DCHECK(it != task_groups_by_task_id_.end()); 564 DCHECK(it != task_groups_by_task_id_.end());
(...skipping 12 matching lines...) Expand all
567 groups_itr.second->AreBackgroundCalculationsDone(); 577 groups_itr.second->AreBackgroundCalculationsDone();
568 } 578 }
569 if (are_all_processes_data_ready) { 579 if (are_all_processes_data_ready) {
570 NotifyObserversOnRefreshWithBackgroundCalculations(GetTaskIdsList()); 580 NotifyObserversOnRefreshWithBackgroundCalculations(GetTaskIdsList());
571 for (const auto& groups_itr : task_groups_by_proc_id_) 581 for (const auto& groups_itr : task_groups_by_proc_id_)
572 groups_itr.second->ClearCurrentBackgroundCalculationsFlags(); 582 groups_itr.second->ClearCurrentBackgroundCalculationsFlags();
573 } 583 }
574 } 584 }
575 585
576 } // namespace task_manager 586 } // namespace task_manager
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698