New issue
Advanced search Search tips

Issue 747504 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 729033

Blocking:
issue 625701



Sign in to add a comment

Enable splitting up Expected Queueing Time by Frame and Task Queue Type

Project Member Reported by tdres...@chromium.org, Jul 21 2017

Issue description

Currently, we compute expected queueing time across all renderer main threads, including all tasks.

We'd like to be able to split this up based on attributes of the task and frame.
 
Blockedon: 729033

Comment 2 by npm@chromium.org, Aug 16 2017

What is the exact definition for the split EQT? I understand we would split the busy time according to the frame/task, but what about the idle time? If we're busy on a task on frame A, does this time count as idle time for the EQT calculation of frame B, or do we disregard altogether this time?
Let's talk about task type first, as it's clearer.
For the task split, overall EQT should be the sum of all task type specific EQTs, so we do need to count time spent on a task of type A as idle time for the EQT computation for tasks of types B & C.

The frame split is a bit less clear, as some frames will be in the background, and shouldn't be included. If there are multiple foreground frames, the behavior among foreground frames should be the same as it is for tasks - the time spent in frame A should count as idle time for frames B & C.

Comment 4 by npm@chromium.org, Aug 16 2017

Ok, so for now I'll work under the assumption that Global_EQT = sum of EQT(task_type)s = sum of EQT(frame)s. We already discard the time spent while the renderer is backgrounded, and I don't know if we have a consensus on a way to determine if a specific frame is backgrounded or not.
Project Member

Comment 5 by bugdroid1@chromium.org, Aug 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b727bada8f2a3225e9e99cb72bbb6141f468c2af

commit b727bada8f2a3225e9e99cb72bbb6141f468c2af
Author: Nicolas Pena <npm@chromium.org>
Date: Tue Aug 29 18:23:18 2017

Frame/task specific metrics part 1

This CL implements most of the plumbing necessary to achieve frame and
task specific metrics in renderer scheduler by doing the following:
- Allow MainThreadTaskQueue to know its frame.
- Use OnTaskStarted and OnTaskCompleted in RendererSchedulerImpl
instead of the TaskTimeObserver observer methods, so that the
MainThreadTaskQueue can be included.
- Call the above methods from the MainThreadTaskQueue, but call the
OnBeginNestedRunLoop method from the SchedulerHelper.

Followup CLs will use the MainThreadTaskQueue parameter to split up the
ExpectedQueueingTime calculation by frame and task type.

Based on doc by altimin@:
https://docs.google.com/document/d/1BJ2F10RNYBBvsnT9sasfK2gCqQQ55FkxY9o3_w0hjMU

Bug:  chromium:747504 
Change-Id: I80233cbc6e1d49d0648c4a7e3a0644accf3488e6
Reviewed-on: https://chromium-review.googlesource.com/617068
Commit-Queue: Nicolás Peña <npm@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: Alexei Filippov <alph@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Cr-Commit-Position: refs/heads/master@{#498175}
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/core/frame/PerformanceMonitor.h
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/core/inspector/InspectorPerformanceAgent.h
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/LongTaskDetector.h
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.h
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.h
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/base/task_time_observer.h
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/base/test_task_time_observer.h
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/child/scheduler_helper.cc
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/child/scheduler_helper.h
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/child/scheduler_helper_unittest.cc
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.cc
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.h
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/renderer/main_thread_task_queue.cc
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/renderer/main_thread_task_queue.h
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.cc
[modify] https://crrev.com/b727bada8f2a3225e9e99cb72bbb6141f468c2af/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.h

Blocking: 625701
We'll want to consider visible and invisible subframes independently.
Project Member

Comment 8 by bugdroid1@chromium.org, Oct 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ba6e119574c92f610109727a2b7a344619c6d4a5

commit ba6e119574c92f610109727a2b7a344619c6d4a5
Author: Nicolas Pena <npm@chromium.org>
Date: Thu Oct 05 21:07:44 2017

Allow WebFrameScheduler to know if its frame is main

This CL adds methods to allow the MainThreadTaskQueue to determine
whether its associated frame is main or not. This will be used to split
EQT by frame type.

Bug:  chromium:747504 
Change-Id: I478f2c1f20ce93c6de0837fdde90a495bc4409d7
Reviewed-on: https://chromium-review.googlesource.com/656110
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: Nate Chapin <japhet@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506858}
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/core/DEPS
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/core/frame/LocalFrame.cpp
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/core/loader/EmptyClients.cpp
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/core/loader/EmptyClients.h
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/core/page/ChromeClient.h
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/core/page/ChromeClientImpl.cpp
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/core/page/ChromeClientImpl.h
[add] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/core/scheduler/FrameSchedulerTest.cpp
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/platform/WebFrameScheduler.h
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl_unittest.cc
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.cc
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.h
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl_unittest.cc
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler.h
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.h
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl_unittest.cc
[modify] https://crrev.com/ba6e119574c92f610109727a2b7a344619c6d4a5/third_party/WebKit/Source/platform/scheduler/test/fake_web_frame_scheduler.h

Project Member

Comment 9 by bugdroid1@chromium.org, Oct 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/780bc6854fad0ba7bbe912e22045cf6c02eb9410

commit 780bc6854fad0ba7bbe912e22045cf6c02eb9410
Author: Nicolas Pena <npm@chromium.org>
Date: Mon Oct 23 22:46:11 2017

Add UMA histograms for EQT by task queue type

This CL allows reporting metrics for ExpectedQueueingTime by task queue
type. A SplitCalculator class is added in the QueueingTimeEstimator.
This class is in charge of splitting up the queueing times of each task
into buckets and ask the client to report the split EQTs at the
appropriate times.

Since now the QueueingTimeEstimator knows about MainThreadTaskQueue and
because this class is only used by renderer_scheduler_impl, the files
were moved to scheduler/renderer.

The current buckets are calculated by looking at the metric
RendererScheduler.TaskDurationPerQueueType2.

Bug:  chromium:747504 
Change-Id: I8dc5fc980bb8a4095a51ba1d2c83edc34319c161
Reviewed-on: https://chromium-review.googlesource.com/719607
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510947}
[modify] https://crrev.com/780bc6854fad0ba7bbe912e22045cf6c02eb9410/third_party/WebKit/Source/platform/scheduler/BUILD.gn
[modify] https://crrev.com/780bc6854fad0ba7bbe912e22045cf6c02eb9410/third_party/WebKit/Source/platform/scheduler/DEPS
[delete] https://crrev.com/2c1897b1878afb629d3cc48e8010e6f14366ff61/third_party/WebKit/Source/platform/scheduler/base/queueing_time_estimator_unittest.cc
[modify] https://crrev.com/780bc6854fad0ba7bbe912e22045cf6c02eb9410/third_party/WebKit/Source/platform/scheduler/renderer/main_thread_task_queue.cc
[modify] https://crrev.com/780bc6854fad0ba7bbe912e22045cf6c02eb9410/third_party/WebKit/Source/platform/scheduler/renderer/main_thread_task_queue.h
[rename] https://crrev.com/780bc6854fad0ba7bbe912e22045cf6c02eb9410/third_party/WebKit/Source/platform/scheduler/renderer/queueing_time_estimator.cc
[rename] https://crrev.com/780bc6854fad0ba7bbe912e22045cf6c02eb9410/third_party/WebKit/Source/platform/scheduler/renderer/queueing_time_estimator.h
[add] https://crrev.com/780bc6854fad0ba7bbe912e22045cf6c02eb9410/third_party/WebKit/Source/platform/scheduler/renderer/queueing_time_estimator_unittest.cc
[modify] https://crrev.com/780bc6854fad0ba7bbe912e22045cf6c02eb9410/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
[modify] https://crrev.com/780bc6854fad0ba7bbe912e22045cf6c02eb9410/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h
[modify] https://crrev.com/780bc6854fad0ba7bbe912e22045cf6c02eb9410/tools/metrics/histograms/histograms.xml

Project Member

Comment 10 by bugdroid1@chromium.org, Oct 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a6b909e78774f2fc928c50689623ec064a57caeb

commit a6b909e78774f2fc928c50689623ec064a57caeb
Author: Thomas Anderson <thomasanderson@chromium.org>
Date: Mon Oct 23 23:58:54 2017

Revert "Add UMA histograms for EQT by task queue type"

This reverts commit 780bc6854fad0ba7bbe912e22045cf6c02eb9410.

Reason for revert: Causing build failure on Win_x64_Builer__dbg_
https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.win%2FWin_x64_Builder__dbg_%2F59441%2F%2B%2Frecipes%2Fsteps%2Fcompile%2F0%2Fstdout

Original change's description:
> Add UMA histograms for EQT by task queue type
> 
> This CL allows reporting metrics for ExpectedQueueingTime by task queue
> type. A SplitCalculator class is added in the QueueingTimeEstimator.
> This class is in charge of splitting up the queueing times of each task
> into buckets and ask the client to report the split EQTs at the
> appropriate times.
> 
> Since now the QueueingTimeEstimator knows about MainThreadTaskQueue and
> because this class is only used by renderer_scheduler_impl, the files
> were moved to scheduler/renderer.
> 
> The current buckets are calculated by looking at the metric
> RendererScheduler.TaskDurationPerQueueType2.
> 
> Bug:  chromium:747504 
> Change-Id: I8dc5fc980bb8a4095a51ba1d2c83edc34319c161
> Reviewed-on: https://chromium-review.googlesource.com/719607
> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
> Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
> Reviewed-by: Timothy Dresser <tdresser@chromium.org>
> Reviewed-by: Ilya Sherman <isherman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#510947}

TBR=isherman@chromium.org,skyostil@chromium.org,tdresser@chromium.org,altimin@chromium.org,npm@chromium.org

Change-Id: I350422c9cf89a26ac34a0862d729cdeb1a19245d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  chromium:747504 
Reviewed-on: https://chromium-review.googlesource.com/734541
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510966}
[modify] https://crrev.com/a6b909e78774f2fc928c50689623ec064a57caeb/third_party/WebKit/Source/platform/scheduler/BUILD.gn
[modify] https://crrev.com/a6b909e78774f2fc928c50689623ec064a57caeb/third_party/WebKit/Source/platform/scheduler/DEPS
[rename] https://crrev.com/a6b909e78774f2fc928c50689623ec064a57caeb/third_party/WebKit/Source/platform/scheduler/base/queueing_time_estimator.cc
[rename] https://crrev.com/a6b909e78774f2fc928c50689623ec064a57caeb/third_party/WebKit/Source/platform/scheduler/base/queueing_time_estimator.h
[add] https://crrev.com/a6b909e78774f2fc928c50689623ec064a57caeb/third_party/WebKit/Source/platform/scheduler/base/queueing_time_estimator_unittest.cc
[modify] https://crrev.com/a6b909e78774f2fc928c50689623ec064a57caeb/third_party/WebKit/Source/platform/scheduler/renderer/main_thread_task_queue.cc
[modify] https://crrev.com/a6b909e78774f2fc928c50689623ec064a57caeb/third_party/WebKit/Source/platform/scheduler/renderer/main_thread_task_queue.h
[delete] https://crrev.com/9723f2a70e3b4e86b10917eded365c1f9465b807/third_party/WebKit/Source/platform/scheduler/renderer/queueing_time_estimator_unittest.cc
[modify] https://crrev.com/a6b909e78774f2fc928c50689623ec064a57caeb/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
[modify] https://crrev.com/a6b909e78774f2fc928c50689623ec064a57caeb/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h
[modify] https://crrev.com/a6b909e78774f2fc928c50689623ec064a57caeb/tools/metrics/histograms/histograms.xml

Project Member

Comment 11 by bugdroid1@chromium.org, Oct 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/37cf0cb3af472677441e6b41071686bb9f1fbe0d

commit 37cf0cb3af472677441e6b41071686bb9f1fbe0d
Author: Yutaka Hirano <yhirano@chromium.org>
Date: Tue Oct 24 00:37:12 2017

Revert "Add UMA histograms for EQT by task queue type"

This reverts commit 780bc6854fad0ba7bbe912e22045cf6c02eb9410.

Reason for revert: Broke windows build: https://build.chromium.org/p/chromium.win/builders/Win%20x64%20Builder%20%28dbg%29/builds/59441

Original change's description:
> Add UMA histograms for EQT by task queue type
> 
> This CL allows reporting metrics for ExpectedQueueingTime by task queue
> type. A SplitCalculator class is added in the QueueingTimeEstimator.
> This class is in charge of splitting up the queueing times of each task
> into buckets and ask the client to report the split EQTs at the
> appropriate times.
> 
> Since now the QueueingTimeEstimator knows about MainThreadTaskQueue and
> because this class is only used by renderer_scheduler_impl, the files
> were moved to scheduler/renderer.
> 
> The current buckets are calculated by looking at the metric
> RendererScheduler.TaskDurationPerQueueType2.
> 
> Bug:  chromium:747504 
> Change-Id: I8dc5fc980bb8a4095a51ba1d2c83edc34319c161
> Reviewed-on: https://chromium-review.googlesource.com/719607
> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
> Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
> Reviewed-by: Timothy Dresser <tdresser@chromium.org>
> Reviewed-by: Ilya Sherman <isherman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#510947}

TBR=isherman@chromium.org,skyostil@chromium.org,tdresser@chromium.org,altimin@chromium.org,npm@chromium.org

Change-Id: I60e72e92560d0f5e9d4faa3d260c6e8431b2792e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  chromium:747504 
Reviewed-on: https://chromium-review.googlesource.com/734600
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510968}

Project Member

Comment 12 by bugdroid1@chromium.org, Oct 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dc09ff8f270573e210f6d388f2de134cacc3ed17

commit dc09ff8f270573e210f6d388f2de134cacc3ed17
Author: Nicolas Pena <npm@chromium.org>
Date: Wed Oct 25 14:29:29 2017

Reland: Add UMA histograms for EQT by task queue type

This CL allows reporting metrics for ExpectedQueueingTime by task queue
type. A SplitCalculator class is added in the QueueingTimeEstimator.
This class is in charge of splitting up the queueing times of each task
into buckets and ask the client to report the split EQTs at the
appropriate times.

Since now the QueueingTimeEstimator knows about MainThreadTaskQueue and
because this class is only used by renderer_scheduler_impl, the files
were moved to scheduler/renderer.

The current buckets are calculated by looking at the metric
RendererScheduler.TaskDurationPerQueueType2.

An export was missing from the original CL which caused linking error
on Windows debug. Original CL:

https://chromium-review.googlesource.com/c/chromium/src/+/719607

Bug:  chromium:747504 
Change-Id: Ia8df00914fcda55ec9a19030f490e38ac4efd501
Reviewed-on: https://chromium-review.googlesource.com/735821
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511447}
[modify] https://crrev.com/dc09ff8f270573e210f6d388f2de134cacc3ed17/third_party/WebKit/Source/platform/scheduler/BUILD.gn
[modify] https://crrev.com/dc09ff8f270573e210f6d388f2de134cacc3ed17/third_party/WebKit/Source/platform/scheduler/DEPS
[delete] https://crrev.com/65dc41bcb398ed95888fc414c7432257df10824b/third_party/WebKit/Source/platform/scheduler/base/queueing_time_estimator_unittest.cc
[modify] https://crrev.com/dc09ff8f270573e210f6d388f2de134cacc3ed17/third_party/WebKit/Source/platform/scheduler/renderer/main_thread_task_queue.cc
[modify] https://crrev.com/dc09ff8f270573e210f6d388f2de134cacc3ed17/third_party/WebKit/Source/platform/scheduler/renderer/main_thread_task_queue.h
[rename] https://crrev.com/dc09ff8f270573e210f6d388f2de134cacc3ed17/third_party/WebKit/Source/platform/scheduler/renderer/queueing_time_estimator.cc
[rename] https://crrev.com/dc09ff8f270573e210f6d388f2de134cacc3ed17/third_party/WebKit/Source/platform/scheduler/renderer/queueing_time_estimator.h
[add] https://crrev.com/dc09ff8f270573e210f6d388f2de134cacc3ed17/third_party/WebKit/Source/platform/scheduler/renderer/queueing_time_estimator_unittest.cc
[modify] https://crrev.com/dc09ff8f270573e210f6d388f2de134cacc3ed17/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
[modify] https://crrev.com/dc09ff8f270573e210f6d388f2de134cacc3ed17/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h
[modify] https://crrev.com/dc09ff8f270573e210f6d388f2de134cacc3ed17/tools/metrics/histograms/histograms.xml

Project Member

Comment 13 by bugdroid1@chromium.org, Nov 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d5cf29a85fff3fd471d9223fe05cd112c09debbb

commit d5cf29a85fff3fd471d9223fe05cd112c09debbb
Author: Nicolas Pena <npm@chromium.org>
Date: Tue Nov 07 23:46:36 2017

Add UMA histograms for EQT by frame type

This CL allows reporting split ExpectedQueueingTime by frame type. The
Calculator class in QueueingTimeEstimator is in charge of handling the
split. The enum class FrameType from renderer_metrics_helper is reused.

The Calculator computations are all delayed to EndStep. An array is used
where the index represents the type (task/frame) and the value is the
TimeDelta, and the reporting message is obtained when the results are
aggregated for UMA reporting.

Unittests are added for the newly introduced split. In addition, helper
methods are created to vastly reduce histogram name duplication
throughout.

Bug:  747504 
Change-Id: I07ca1d539b1d0f114f19dc2a4b5562dd1dff819c
Reviewed-on: https://chromium-review.googlesource.com/741844
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514655}
[modify] https://crrev.com/d5cf29a85fff3fd471d9223fe05cd112c09debbb/third_party/WebKit/Source/platform/scheduler/renderer/main_thread_task_queue.cc
[modify] https://crrev.com/d5cf29a85fff3fd471d9223fe05cd112c09debbb/third_party/WebKit/Source/platform/scheduler/renderer/main_thread_task_queue.h
[modify] https://crrev.com/d5cf29a85fff3fd471d9223fe05cd112c09debbb/third_party/WebKit/Source/platform/scheduler/renderer/queueing_time_estimator.cc
[modify] https://crrev.com/d5cf29a85fff3fd471d9223fe05cd112c09debbb/third_party/WebKit/Source/platform/scheduler/renderer/queueing_time_estimator.h
[modify] https://crrev.com/d5cf29a85fff3fd471d9223fe05cd112c09debbb/third_party/WebKit/Source/platform/scheduler/renderer/queueing_time_estimator_unittest.cc
[modify] https://crrev.com/d5cf29a85fff3fd471d9223fe05cd112c09debbb/third_party/WebKit/Source/platform/scheduler/renderer/renderer_metrics_helper_unittest.cc
[modify] https://crrev.com/d5cf29a85fff3fd471d9223fe05cd112c09debbb/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
[modify] https://crrev.com/d5cf29a85fff3fd471d9223fe05cd112c09debbb/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h
[modify] https://crrev.com/d5cf29a85fff3fd471d9223fe05cd112c09debbb/third_party/WebKit/Source/platform/scheduler/test/fake_web_frame_scheduler.h
[modify] https://crrev.com/d5cf29a85fff3fd471d9223fe05cd112c09debbb/tools/metrics/histograms/histograms.xml

Comment 14 by npm@chromium.org, Nov 10 2017

Status: Fixed (was: Assigned)

Sign in to add a comment