New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 607063 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jul 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment

Breaking down the Loading metrics per Load type

Project Member Reported by kenjibaheux@chromium.org, Apr 27 2016

Issue description

Similarly to how we've down a breakdown for background and foreground tabs, we should probably have a breakdown of Loading metrics on Load type.

This should give us more clarity for our 2 main projects:
 - NeverIdle (Network bottleneck => mostly about cold page loads)
 - Caminito (CPU/IO bottlenecks => mostly about warm page loads).
 
I think Page Loads can be characterized by the temperature of the renderer and the cache.

Here is an attempt at categorizing the different types of page loads:
 - History navigation: warm renderer, warm cache
 - Tab restore: cold renderer, warm cache
 - Reload: warm renderer, warm cache
 - same origin navigation: warm renderer, warm cache
 - cross origin navigation (revisit): cold renderer, lukewarm cache
 - cross origin navigation (first time visit): cold renderer, cold cache


I'm wondering what's a reasonable granularity though.

We could start with a basic breakdown and refine if we fail to observe the expected impact of our changes.

Strawman 1:
 2 temperatures: cold, warm
 2 dimensions: renderer, cache
 => 4 bins

Strawman 2:
 Breakdown on main bottleneck: network, (mix), cpuio

 - History navigation: cpuio
 - Tab restore: cpuio
 - Reload (reworked): cpuio
 - same origin navigation: cpuio
 - cross origin navigation (revisit): mix?
 - cross origin navigation (first time visit): network


Any thoughts on a reasonable breakdown: feasible and useful?

Comment 2 by nduca@chromium.org, May 2 2016

Cc: kouhei@chromium.org
Kouhei is this on your radar?
Cc: csharrison@chromium.org
Cc: shivanisha@chromium.org
Cc: toyoshim@chromium.org

Comment 6 by kinuko@chromium.org, May 20 2016

Owner: toyoshim@chromium.org
Let me tentatively assign this to toyoshim@ as he might be interested in working on differentiating Loading metrics for Reload.  Toyoshima-san, could you indicate your take on the issue if you think you could work on reloading-related bits of these or not?

As summarized in #1 there could be multiple different types of loads but trying to have break-downs for everything would be hard, in the code base now we have a mechanism to annotate each page load metrics (i.e. WebLoadingBehaviorFlag) and I hope we could possibly gradually add some of the low-handing ones?  (And ideally it'd be nice there's a place where we could easily review a list of breakdowns we currently have)

(Bryan, Charles- please comment on the issue if you have different ideas / plan, as you're the owners of the page load metrics infra)

Comment 7 by kinuko@chromium.org, May 20 2016

And for reference, as an example of other broken down loading metrics, we have one for SW using WebLoadingBehaviorServiceWorkerControlled.
Status: Started (was: Available)
Discussions are distributed here, docs, and mail thread.
But I'm happy to work on this.
As Bryan suggested, we may want to consider to use page transition type to filter. Let me check if the filter works correctly for pull-to-refresh.
I will use "ui::PageTransitionCoreTypeIs(navigation_handle->GetPageTransition(), ui::PAGE_TRANSITION_RELOAD)" to differentiate reload-related loads.

Actually this transition type contains all kinds of reloads including bypassing reload, and hitting enter in the omnibox at the same page. But, it's fine to evaluate my experiments.
Owner: ----
Status: Available (was: Started)
I'd release the ownership since my work for reload specific metrics was done.
Labels: Merge-Request-52
Owner: toyoshim@chromium.org
Status: Started (was: Available)
Let me ask merging following change to the beta.
commit d056525caaa71451d25f6113895b376e47177f6e

Comment 13 by tin...@google.com, Jun 1 2016

Labels: -Merge-Request-52 Merge-Approved-52 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M52 (branch: 2743)
Project Member

Comment 14 by bugdroid1@chromium.org, Jun 1 2016

Labels: -merge-approved-52 merge-merged-2743
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1b794b5c5a8f8df3e6085de6dcef01ff6cae0987

commit 1b794b5c5a8f8df3e6085de6dcef01ff6cae0987
Author: toyoshim <toyoshim@chromium.org>
Date: Wed Jun 01 07:27:24 2016

Add ReloadPageLoadMetricsObserver to have a metrics variant only reloads

To measure reload experiments impact, this change adds
ReloadPageLoadMetricsObserver to report TTFCP variants only for
reload-related page loadings.

BUG= 607063 
TBR=isherman@chromium.org, bmcquade@chromium.org
NOTRY=true
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/2008233002
Cr-Commit-Position: refs/heads/master@{#396395}
(cherry picked from commit d056525caaa71451d25f6113895b376e47177f6e)

Review-Url: https://codereview.chromium.org/2031443002
Cr-Commit-Position: refs/branch-heads/2743@{#159}
Cr-Branched-From: 2b3ae3b8090361f8af5a611712fc1a5ab2de53cb-refs/heads/master@{#394939}

[add] https://crrev.com/1b794b5c5a8f8df3e6085de6dcef01ff6cae0987/chrome/browser/page_load_metrics/observers/reload_page_load_metrics_observer.cc
[add] https://crrev.com/1b794b5c5a8f8df3e6085de6dcef01ff6cae0987/chrome/browser/page_load_metrics/observers/reload_page_load_metrics_observer.h
[modify] https://crrev.com/1b794b5c5a8f8df3e6085de6dcef01ff6cae0987/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
[modify] https://crrev.com/1b794b5c5a8f8df3e6085de6dcef01ff6cae0987/chrome/chrome_browser.gypi
[modify] https://crrev.com/1b794b5c5a8f8df3e6085de6dcef01ff6cae0987/tools/metrics/histograms/histograms.xml

Owner: ----
Status: Available (was: Started)
Done.
Owner: bmcquade@chromium.org
Status: Started (was: Available)
Given our recent interest in possibly improving forward/back navigation, I'll drive the next step of this bug and add page load metrics broken down by transition types other than just reload.
Project Member

Comment 17 by bugdroid1@chromium.org, Jun 28 2016

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

commit 861b3c8268b5aecbe17436c737f70be7e8b19832
Author: bmcquade <bmcquade@chromium.org>
Date: Tue Jun 28 22:43:31 2016

Generalize the reload PLMO to support other transition types.

This change moves tracking of reloads, forward/back navigations
and new navigations into the core PLMO.

It's not unlikely that other observers may want to track load
metrics broken down by load types, so we annotate load types using
suffixes, rather than PageLoad.Clients.LoadType-style naming, which
would not generalize to other observers.

BUG= 607063 

Review-Url: https://codereview.chromium.org/2091353002
Cr-Commit-Position: refs/heads/master@{#402579}

[modify] https://crrev.com/861b3c8268b5aecbe17436c737f70be7e8b19832/chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/861b3c8268b5aecbe17436c737f70be7e8b19832/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
[modify] https://crrev.com/861b3c8268b5aecbe17436c737f70be7e8b19832/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.h
[modify] https://crrev.com/861b3c8268b5aecbe17436c737f70be7e8b19832/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/861b3c8268b5aecbe17436c737f70be7e8b19832/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc
[modify] https://crrev.com/861b3c8268b5aecbe17436c737f70be7e8b19832/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h
[delete] https://crrev.com/ef53525821a41adb38fedd2e9b14deb12578da3d/chrome/browser/page_load_metrics/observers/reload_page_load_metrics_observer.cc
[delete] https://crrev.com/ef53525821a41adb38fedd2e9b14deb12578da3d/chrome/browser/page_load_metrics/observers/reload_page_load_metrics_observer.h
[modify] https://crrev.com/861b3c8268b5aecbe17436c737f70be7e8b19832/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
[modify] https://crrev.com/861b3c8268b5aecbe17436c737f70be7e8b19832/chrome/chrome_browser.gypi
[modify] https://crrev.com/861b3c8268b5aecbe17436c737f70be7e8b19832/tools/metrics/histograms/histograms.xml

Status: Fixed (was: Started)

Sign in to add a comment