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

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

Issue 2954473002: Record accuracy of expected queueing time metric. (Closed)
Patch Set: Set trace ID in test. Created 3 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/renderer_scheduler_impl.h" 5 #include "platform/scheduler/renderer/renderer_scheduler_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/debug/stack_trace.h" 8 #include "base/debug/stack_trace.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after
843 // detected. 843 // detected.
844 if (GetAnyThread().awaiting_touch_start_response && 844 if (GetAnyThread().awaiting_touch_start_response &&
845 result == WebInputEventResult::kHandledApplication) { 845 result == WebInputEventResult::kHandledApplication) {
846 GetAnyThread().awaiting_touch_start_response = false; 846 GetAnyThread().awaiting_touch_start_response = false;
847 GetAnyThread().default_gesture_prevented = true; 847 GetAnyThread().default_gesture_prevented = true;
848 UpdatePolicyLocked(UpdateType::MAY_EARLY_OUT_IF_POLICY_UNCHANGED); 848 UpdatePolicyLocked(UpdateType::MAY_EARLY_OUT_IF_POLICY_UNCHANGED);
849 } 849 }
850 } 850 }
851 } 851 }
852 852
853 base::TimeDelta RendererSchedulerImpl::MostRecentExpectedQueueingTime() {
854 return GetMainThreadOnly().most_recent_expected_queueing_time;
855 }
856
853 bool RendererSchedulerImpl::IsHighPriorityWorkAnticipated() { 857 bool RendererSchedulerImpl::IsHighPriorityWorkAnticipated() {
854 helper_.CheckOnValidThread(); 858 helper_.CheckOnValidThread();
855 if (helper_.IsShutdown()) 859 if (helper_.IsShutdown())
856 return false; 860 return false;
857 861
858 MaybeUpdatePolicy(); 862 MaybeUpdatePolicy();
859 // The touchstart, synchronized gesture and main-thread gesture use cases 863 // The touchstart, synchronized gesture and main-thread gesture use cases
860 // indicate a strong likelihood of high-priority work in the near future. 864 // indicate a strong likelihood of high-priority work in the near future.
861 UseCase use_case = GetMainThreadOnly().current_use_case; 865 UseCase use_case = GetMainThreadOnly().current_use_case;
862 return GetMainThreadOnly().touchstart_expected_soon || 866 return GetMainThreadOnly().touchstart_expected_soon ||
(...skipping 1159 matching lines...) Expand 10 before | Expand all | Expand 10 after
2022 } 2026 }
2023 2027
2024 void RendererSchedulerImpl::RemoveTaskTimeObserver( 2028 void RendererSchedulerImpl::RemoveTaskTimeObserver(
2025 TaskTimeObserver* task_time_observer) { 2029 TaskTimeObserver* task_time_observer) {
2026 helper_.RemoveTaskTimeObserver(task_time_observer); 2030 helper_.RemoveTaskTimeObserver(task_time_observer);
2027 } 2031 }
2028 2032
2029 void RendererSchedulerImpl::OnQueueingTimeForWindowEstimated( 2033 void RendererSchedulerImpl::OnQueueingTimeForWindowEstimated(
2030 base::TimeDelta queueing_time, 2034 base::TimeDelta queueing_time,
2031 base::TimeTicks window_start_time) { 2035 base::TimeTicks window_start_time) {
2036 GetMainThreadOnly().most_recent_expected_queueing_time = queueing_time;
2037
2032 if (GetMainThreadOnly().has_navigated) { 2038 if (GetMainThreadOnly().has_navigated) {
2033 if (GetMainThreadOnly().max_queueing_time < queueing_time) { 2039 if (GetMainThreadOnly().max_queueing_time < queueing_time) {
2034 if (!GetMainThreadOnly().max_queueing_time_metric) { 2040 if (!GetMainThreadOnly().max_queueing_time_metric) {
2035 GetMainThreadOnly().max_queueing_time_metric = 2041 GetMainThreadOnly().max_queueing_time_metric =
2036 CreateMaxQueueingTimeMetric(); 2042 CreateMaxQueueingTimeMetric();
2037 } 2043 }
2038 GetMainThreadOnly().max_queueing_time_metric->SetSample( 2044 GetMainThreadOnly().max_queueing_time_metric->SetSample(
2039 queueing_time.InMilliseconds()); 2045 queueing_time.InMilliseconds());
2040 GetMainThreadOnly().max_queueing_time = queueing_time; 2046 GetMainThreadOnly().max_queueing_time = queueing_time;
2041 } 2047 }
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
2191 case TimeDomainType::VIRTUAL: 2197 case TimeDomainType::VIRTUAL:
2192 return "virtual"; 2198 return "virtual";
2193 default: 2199 default:
2194 NOTREACHED(); 2200 NOTREACHED();
2195 return nullptr; 2201 return nullptr;
2196 } 2202 }
2197 } 2203 }
2198 2204
2199 } // namespace scheduler 2205 } // namespace scheduler
2200 } // namespace blink 2206 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698