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

Side by Side Diff: third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc

Issue 2837323002: Merged all PointerToId functions into TraceHelper::PointerToString. (Closed)
Patch Set: Converted TraceHelper the class to trace_helper the namespace. Created 3 years, 7 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 "platform/scheduler/renderer/task_queue_throttler.h" 5 #include "platform/scheduler/renderer/task_queue_throttler.h"
6 6
7 #include <cstdint> 7 #include <cstdint>
8 8
9 #include "base/format_macros.h"
10 #include "base/logging.h" 9 #include "base/logging.h"
11 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
12 #include "base/optional.h" 11 #include "base/optional.h"
13 #include "base/strings/stringprintf.h"
14 #include "platform/WebFrameScheduler.h" 12 #include "platform/WebFrameScheduler.h"
15 #include "platform/scheduler/base/real_time_domain.h" 13 #include "platform/scheduler/base/real_time_domain.h"
14 #include "platform/scheduler/base/trace_helper.h"
16 #include "platform/scheduler/child/scheduler_tqm_delegate.h" 15 #include "platform/scheduler/child/scheduler_tqm_delegate.h"
17 #include "platform/scheduler/renderer/budget_pool.h" 16 #include "platform/scheduler/renderer/budget_pool.h"
18 #include "platform/scheduler/renderer/renderer_scheduler_impl.h" 17 #include "platform/scheduler/renderer/renderer_scheduler_impl.h"
19 #include "platform/scheduler/renderer/throttled_time_domain.h" 18 #include "platform/scheduler/renderer/throttled_time_domain.h"
20 #include "platform/scheduler/renderer/web_frame_scheduler_impl.h" 19 #include "platform/scheduler/renderer/web_frame_scheduler_impl.h"
21 20
22 namespace blink { 21 namespace blink {
23 namespace scheduler { 22 namespace scheduler {
24 23
25 namespace { 24 namespace {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 56
58 template <class T> 57 template <class T>
59 base::Optional<T> Max(const base::Optional<T>& a, const base::Optional<T>& b) { 58 base::Optional<T> Max(const base::Optional<T>& a, const base::Optional<T>& b) {
60 if (!b) 59 if (!b)
61 return a; 60 return a;
62 if (!a) 61 if (!a)
63 return b; 62 return b;
64 return std::max(a.value(), b.value()); 63 return std::max(a.value(), b.value());
65 } 64 }
66 65
67 std::string PointerToId(void* pointer) {
68 return base::StringPrintf(
69 "0x%" PRIx64,
70 static_cast<uint64_t>(reinterpret_cast<uintptr_t>(pointer)));
71 }
72
73 } // namespace 66 } // namespace
74 67
75 TaskQueueThrottler::TaskQueueThrottler( 68 TaskQueueThrottler::TaskQueueThrottler(
76 RendererSchedulerImpl* renderer_scheduler) 69 RendererSchedulerImpl* renderer_scheduler)
77 : control_task_queue_(renderer_scheduler->ControlTaskQueue()), 70 : control_task_queue_(renderer_scheduler->ControlTaskQueue()),
78 renderer_scheduler_(renderer_scheduler), 71 renderer_scheduler_(renderer_scheduler),
79 tick_clock_(renderer_scheduler->tick_clock()), 72 tick_clock_(renderer_scheduler->tick_clock()),
80 time_domain_(new ThrottledTimeDomain()), 73 time_domain_(new ThrottledTimeDomain()),
81 allow_throttling_(true), 74 allow_throttling_(true),
82 weak_factory_(this) { 75 weak_factory_(this) {
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 427
435 state->BeginDictionary("time_budget_pools"); 428 state->BeginDictionary("time_budget_pools");
436 for (const auto& map_entry : budget_pools_) { 429 for (const auto& map_entry : budget_pools_) {
437 BudgetPool* pool = map_entry.first; 430 BudgetPool* pool = map_entry.first;
438 pool->AsValueInto(state, now); 431 pool->AsValueInto(state, now);
439 } 432 }
440 state->EndDictionary(); 433 state->EndDictionary();
441 434
442 state->BeginDictionary("queue_details"); 435 state->BeginDictionary("queue_details");
443 for (const auto& map_entry : queue_details_) { 436 for (const auto& map_entry : queue_details_) {
444 state->BeginDictionaryWithCopiedName(PointerToId(map_entry.first)); 437 state->BeginDictionaryWithCopiedName(
438 trace_helper::PointerToString(map_entry.first));
445 439
446 state->SetInteger("throttling_ref_count", 440 state->SetInteger("throttling_ref_count",
447 map_entry.second.throttling_ref_count); 441 map_entry.second.throttling_ref_count);
448 442
449 state->EndDictionary(); 443 state->EndDictionary();
450 } 444 }
451 state->EndDictionary(); 445 state->EndDictionary();
452 } 446 }
453 447
454 void TaskQueueThrottler::AddQueueToBudgetPool(TaskQueue* queue, 448 void TaskQueueThrottler::AddQueueToBudgetPool(TaskQueue* queue,
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 queue->InsertFence(TaskQueue::InsertFencePosition::BEGINNING_OF_TIME); 553 queue->InsertFence(TaskQueue::InsertFencePosition::BEGINNING_OF_TIME);
560 queue->SetTimeDomain(time_domain_.get()); 554 queue->SetTimeDomain(time_domain_.get());
561 UpdateQueueThrottlingState(lazy_now.Now(), queue); 555 UpdateQueueThrottlingState(lazy_now.Now(), queue);
562 } 556 }
563 557
564 TRACE_EVENT0("renderer.scheduler", "TaskQueueThrottler_EnableThrottling"); 558 TRACE_EVENT0("renderer.scheduler", "TaskQueueThrottler_EnableThrottling");
565 } 559 }
566 560
567 } // namespace scheduler 561 } // namespace scheduler
568 } // namespace blink 562 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698