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

Issue 697665 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug-Regression

Blocked on:
issue 698757
issue 699168



Sign in to add a comment

46.2% regression in system_health.common_desktop load:energy_sum at 453302:453462

Project Member Reported by charliea@chromium.org, Mar 1 2017

Issue description

See the link to graphs below.
 
All graphs for this bug:
  https://chromeperf.appspot.com/group_report?bug_id=697665

Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?keys=agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgIDgpKfG4wkM


Bot(s) for this bug's original alert(s):

win-high-dpi
Cc: charliea@google.com
Cc: -charliea@google.com
Summary: 46.2% regression in system_health.common_desktop load:energy_sum at 453302:453462 (was: 46.2% regression in system_health.common_desktop at 453302:453462)
Cc: rogerm@chromium.org
Owner: rogerm@chromium.org

=== Auto-CCing suspected CL author rogerm@chromium.org ===

Hi rogerm@chromium.org, the bisect results pointed to your CL, please take a look at the
results.


=== BISECT JOB RESULTS ===
Perf regression found with culprit

Suspected Commit
  Author : rogerm
  Commit : 2233a4a7cb12ac4acdebd33491b528f8fb670f02
  Date   : Mon Feb 27 23:11:16 2017
  Subject: [translate] Add translate ranker model loader.

Bisect Details
  Configuration: winx64_high_dpi_perf_bisect
  Benchmark    : system_health.common_desktop
  Metric       : load:energy_sum/load_games/load_games_alphabetty
  Change       : 29.88% | 12.6947926833 -> 16.4879936732

Revision             Result                   N
chromium@453301      12.6948 +- 5.88553       9      good
chromium@453342      11.8021 +- 2.63423       6      good
chromium@453362      11.9451 +- 2.79266       6      good
chromium@453372      12.0077 +- 2.64958       6      good
chromium@453377      11.8436 +- 2.02372       6      good
chromium@453378      17.7408 +- 4.55889       6      bad       <--
chromium@453379      15.56 +- 4.40185         6      bad
chromium@453380      17.2375 +- 0.913405      6      bad
chromium@453382      17.2664 +- 0.868382      6      bad
chromium@453462      16.488 +- 4.12111        9      bad

To Run This Test
  src/tools/perf/run_benchmark -v --browser=release_x64 --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests --story-filter=load.games.alphabetty system_health.common_desktop

Debug Info
  https://chromeperf.appspot.com/buildbucket_job_status/8986279781382214048

Is this bisect wrong?
  https://chromeperf.appspot.com/bad_bisect?try_job_id=5570720567918592


| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Speed>Bisection.  Thank you!
Hi Roger,

The above CL caused a significant regression in the time to first meaningful paint for many websites in Chrome. The regression looks like it's isolated to Windows.

Here's a graph showing the impact of the change: https://chromeperf.appspot.com/report?sid=9dfccfc684a9de8ceb59be20acb2765753b265833e9f967221406929db7a06cc

Here's a trace from before your change: https://console.developers.google.com/m/cloudstorage/b/chrome-telemetry-output/o/trace-file-id_24-2017-02-27_16-39-58-71749.html

Here's a trace from after your change: https://console.developers.google.com/m/cloudstorage/b/chrome-telemetry-output/o/trace-file-id_24-2017-02-28_00-32-25-5968.html

I'm going to start the revert now.

Sorry: a 50% regression in time to first *contentful* paint, not meaningful.
Trying to convince myself that this is a real regression and not just an instance of the first contentful paint metric acting funny before I go and ruin someone's day tomorrow.

I took and attached screenshots with the load sections of the trace highlighted before and after the regression. The start of the load is when Telemetry tells the page to navigate and the end of the load is the first contentful paint.

In both cases, there's a burst of activity on the renderer thread after the load finishes. This is a signal to me that the first contentful paint successfully points out when there's content available to paint. In before_regression.png, that load duration 0.85 seconds. In after_regression.png, that load duration is 1.57 seconds. That's a pretty serious difference.
before_regression.png
213 KB View Download
after_regression.png
198 KB View Download
We observe a huge regression to TTFCP in the same period here:
https://chromeperf.appspot.com/report?sid=5edd4f7522ec5d866902b26164af7dda04ddca75f62c01671360dd89a2e0ac65
Looks like the revert CL (https://codereview.chromium.org/2726043003/) failed due to an infra flake on linux_android_rel_ng. Trying again.
Cc: benhenry@chromium.org tdres...@chromium.org
+Ben, Tim: I think this should be a release blocking bug due to the impact that it has on power & TTFCP
I agree this should be release blocking.
This might be a beta blocker if it's real. Charlie - lmk if the revert works, we could just go with that.
Ping hamelphi@ and look at reverting the Finch config enabling this feature
(it's only on Canary and Dev).
I had a quick chat with Annie.

Philippe, plz revert the Finch config that turns this on. We can look at
changing the post task to a post delayed task to better ensure that the
model load occurs outside the ttfcp.
We have a variety of loading metrics, and pushing out work so that it happens after FCP is just going to push back later loading metrics.

Is there a design doc for this change? When is the model actually needed?

Owner: hamelphi@chromium.org
Project Member

Comment 19 by bugdroid1@chromium.org, Mar 2 2017

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

commit 9ea997e1d7bbd4350d8793e1629f33c98d00ce2b
Author: charliea <charliea@chromium.org>
Date: Thu Mar 02 15:25:38 2017

Revert "[translate] Add translate ranker model loader."

This reverts commit 2233a4a7cb12ac4acdebd33491b528f8fb670f02.

This CL was responsible for a 50% regression in time to first
contenful paint on Windows.

TBR=asanka@chromium.org,rkaplow@chromium.org,rsleevi@chromium.org,groby@chromium.org,fdoray@chromium.org,eugenebut@chromium.org,davidben@chromium.org,sdefresne@chromium.org,hamelphi@chromium.org
BUG= 697665 ,646711

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

[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/chrome/browser/BUILD.gn
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/chrome/browser/metrics/chrome_metrics_service_client.cc
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/chrome/browser/translate/chrome_translate_client.cc
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/chrome/browser/translate/translate_ranker_factory.cc
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/chrome/browser/translate/translate_ranker_factory.h
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/chrome/browser/translate/translate_ranker_metrics_provider.cc
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/chrome/browser/translate/translate_ranker_metrics_provider.h
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/BUILD.gn
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/components/translate/core/browser/mock_translate_ranker.cc
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/components/translate/core/browser/mock_translate_ranker.h
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/proto/BUILD.gn
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/components/translate/core/browser/proto/ranker_model.proto
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/proto/translate_ranker_model.proto
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/components/translate/core/browser/ranker_model.cc
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/components/translate/core/browser/ranker_model.h
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/components/translate/core/browser/ranker_model_loader.cc
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/components/translate/core/browser/ranker_model_loader.h
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/components/translate/core/browser/ranker_model_loader_unittest.cc
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/translate_manager.cc
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/translate_manager.h
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/translate_manager_unittest.cc
[add] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/translate_ranker.cc
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/translate_ranker.h
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/components/translate/core/browser/translate_ranker_impl.cc
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/components/translate/core/browser/translate_ranker_impl.h
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/components/translate/core/browser/translate_ranker_impl_unittest.cc
[add] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/translate_ranker_metrics_provider.cc
[rename] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/translate_ranker_metrics_provider.h
[add] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/translate_ranker_unittest.cc
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/translate_ui_delegate_unittest.cc
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/components/translate/core/browser/translate_url_fetcher.cc
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/ios/chrome/browser/metrics/BUILD.gn
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/ios/chrome/browser/translate/BUILD.gn
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/ios/chrome/browser/translate/chrome_ios_translate_client.mm
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/ios/chrome/browser/translate/translate_ranker_factory.cc
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/ios/chrome/browser/translate/translate_ranker_factory.h
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/ios/chrome/browser/translate/translate_ranker_metrics_provider.cc
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/ios/web_view/internal/translate/BUILD.gn
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/ios/web_view/internal/translate/web_view_translate_client.mm
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/ios/web_view/internal/translate/web_view_translate_ranker_factory.cc
[delete] https://crrev.com/117fb7823a566d83abc3db2d6f1cd06825e67d03/ios/web_view/internal/translate/web_view_translate_ranker_factory.h
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/net/url_request/test_url_fetcher_factory.cc
[modify] https://crrev.com/9ea997e1d7bbd4350d8793e1629f33c98d00ce2b/tools/metrics/histograms/histograms.xml

The model is needed to decide whether or not to trigger the translate UI.
go/translate-ranker
The magnitude of the regression is much bigger than I would have anticipated given what this is doing.

Given that there's a power regression here as well as a page load time regression, it seems likely that rescheduling this work won't be enough to make this tradeoff worthwhile - we may need to do less work.

Have you done any profiling of this feature to figure out where the time is going?
Cc: -charliea@chromium.org fdoray@chromium.org
Cc: -tdres...@chromium.org charliea@chromium.org
Cc: tdres...@chromium.org
Rogerm@ who knows more about this is OOO for a couple weeks. I'll try to investigate what could cause this regression. In the meantime, I am preparing a revert of the revert, with a gate that controls the ModelLoader with Finch. This Finch experiment is not active by default (and is not active in Beta or Stable), so it should cause any regression.
Project Member

Comment 26 by bugdroid1@chromium.org, Mar 2 2017

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

commit d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120
Author: hamelphi <hamelphi@chromium.org>
Date: Thu Mar 02 23:38:24 2017

[Translate] Add translate ranker model loader.

This is a revert of a revert. It was originally https://codereview.chromium.org/2565873002 which was reverted in https://codereview.chromium.org/2726043003.

Load the TranslateRanker model only if Query is enabled.

This should fix the negative speed regression when Query is not enabled. This condition is controlled through Finch, and is currently only enabled in Canary and Dev. This will allow us to better investigate the speed regression using experimental/control groups.

Also fix the Query/Enforcement logic so that enabling Enforcement automatically enforce Query.

Revert "Revert "[translate] Add translate ranker model loader.""

This reverts commit 9ea997e1d7bbd4350d8793e1629f33c98d00ce2b.

BUG= 697665 , 646711

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

[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/chrome/browser/BUILD.gn
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/chrome/browser/metrics/chrome_metrics_service_client.cc
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/chrome/browser/translate/chrome_translate_client.cc
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/chrome/browser/translate/translate_ranker_factory.cc
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/chrome/browser/translate/translate_ranker_factory.h
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/chrome/browser/translate/translate_ranker_metrics_provider.cc
[copy] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/chrome/browser/translate/translate_ranker_metrics_provider.h
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/BUILD.gn
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/mock_translate_ranker.cc
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/mock_translate_ranker.h
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/proto/BUILD.gn
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/proto/ranker_model.proto
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/proto/translate_ranker_model.proto
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/ranker_model.cc
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/ranker_model.h
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/ranker_model_loader.cc
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/ranker_model_loader.h
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/ranker_model_loader_unittest.cc
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/translate_manager.cc
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/translate_manager.h
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/translate_manager_unittest.cc
[delete] https://crrev.com/2df232659f116970f80a6d492ec5945173690e2c/components/translate/core/browser/translate_ranker.cc
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/translate_ranker.h
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/translate_ranker_impl.cc
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/translate_ranker_impl.h
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/translate_ranker_impl_unittest.cc
[delete] https://crrev.com/2df232659f116970f80a6d492ec5945173690e2c/components/translate/core/browser/translate_ranker_metrics_provider.cc
[delete] https://crrev.com/2df232659f116970f80a6d492ec5945173690e2c/components/translate/core/browser/translate_ranker_unittest.cc
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/translate_ui_delegate_unittest.cc
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/components/translate/core/browser/translate_url_fetcher.cc
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/ios/chrome/browser/metrics/BUILD.gn
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/ios/chrome/browser/translate/BUILD.gn
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/ios/chrome/browser/translate/chrome_ios_translate_client.mm
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/ios/chrome/browser/translate/translate_ranker_factory.cc
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/ios/chrome/browser/translate/translate_ranker_factory.h
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/ios/chrome/browser/translate/translate_ranker_metrics_provider.cc
[rename] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/ios/chrome/browser/translate/translate_ranker_metrics_provider.h
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/ios/web_view/internal/translate/BUILD.gn
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/ios/web_view/internal/translate/web_view_translate_client.mm
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/ios/web_view/internal/translate/web_view_translate_ranker_factory.cc
[add] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/ios/web_view/internal/translate/web_view_translate_ranker_factory.h
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/net/url_request/test_url_fetcher_factory.cc
[modify] https://crrev.com/d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120/tools/metrics/histograms/histograms.xml

Labels: Performance-Sheriff
Labels: -Pri-2 Pri-1
The graphs are jumping back up after your CL landed.

Is this experiment enabled in https://cs.chromium.org/chromium/src/testing/variations/fieldtrial_testing_config.json ?

That is the file the perfbots use for testing. The intent is to test the experiments we plan to launch. If we don't plan to launch this soon, it should be removed from the file. If it's not in the file, there is a problem with the way you've put the code behind an experiment.
Understood. I will remove the experiment from the file. I just sent the CL for review.
Status: Assigned (was: Untriaged)
Project Member

Comment 31 by bugdroid1@chromium.org, Mar 3 2017

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

commit 7a9fa89774a486bb9661acbb1d6c124e312a6b9e
Author: hamelphi <hamelphi@chromium.org>
Date: Fri Mar 03 16:33:31 2017

Remove TranslateRankerEnforcement from fieldtrials.

BUG= 697665 

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

[modify] https://crrev.com/7a9fa89774a486bb9661acbb1d6c124e312a6b9e/testing/variations/fieldtrial_testing_config.json

Could someone confirm that the metrics go back down with the latest CL?
It looks like we don't have results, yet.

https://chromeperf.appspot.com/group_report?bug_id=697665

But it should be in the next run.
I don't find how to get an updated graph of TTFCP. Could someone point me to it? Has the regression been resolved?
Cc: simonhatch@chromium.org
+simonhatch, bot health sheriff:

Normally you would just click on the link in the first comment, check some boxes for graphs, and see them recovered:
https://chromeperf.appspot.com/group_report?bug_id=697665

But it looks like none of the Windows bots are sending new data over the weekend. And also the buildbot master is down, although you can see builds on luci-milo:
https://luci-milo.appspot.com/buildbot/chromium.perf/Win%2010%20High-DPI%20Perf/

Looking at luci-milo, we're not seeing new builds since Friday:  https://luci-milo.appspot.com/buildbot/chromium.perf/Win%2010%20High-DPI%20Perf/

Simon, is there an infra-side bug this should be blocked on?
Blockedon: 698757
It looks like the regression is still there. My guess is that the problem happens when building the TranslateRanker. This is not an easy fix. I will revert the CL again. Sorry about that.
Blockedon: 699168
Project Member

Comment 39 by bugdroid1@chromium.org, Mar 7 2017

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

commit 34f5f9f1efc1283d1bb7c284ab0798ac842265fd
Author: hamelphi <hamelphi@chromium.org>
Date: Tue Mar 07 23:18:36 2017

Revert "[Translate] Add translate ranker model loader."

This reverts commit d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120.

This CL causes regression in "Time To First Contentful Pane" for Windows and crashes for ChromeOS

BUG= 697665 , 646711, 698057,  699168 

TBR=asanka@chromium.org, groby@chromium.org, fdoray@chromium.org, rkaplow@chromium.org, sdefresne@chromium.org

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

[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/chrome/browser/BUILD.gn
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/chrome/browser/metrics/chrome_metrics_service_client.cc
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/chrome/browser/translate/chrome_translate_client.cc
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/chrome/browser/translate/translate_ranker_factory.cc
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/chrome/browser/translate/translate_ranker_factory.h
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/chrome/browser/translate/translate_ranker_metrics_provider.cc
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/chrome/browser/translate/translate_ranker_metrics_provider.h
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/BUILD.gn
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/components/translate/core/browser/mock_translate_ranker.cc
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/components/translate/core/browser/mock_translate_ranker.h
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/proto/BUILD.gn
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/components/translate/core/browser/proto/ranker_model.proto
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/proto/translate_ranker_model.proto
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/components/translate/core/browser/ranker_model.cc
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/components/translate/core/browser/ranker_model.h
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/components/translate/core/browser/ranker_model_loader.cc
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/components/translate/core/browser/ranker_model_loader.h
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/components/translate/core/browser/ranker_model_loader_unittest.cc
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/translate_manager.cc
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/translate_manager.h
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/translate_manager_unittest.cc
[add] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/translate_ranker.cc
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/translate_ranker.h
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/components/translate/core/browser/translate_ranker_impl.cc
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/components/translate/core/browser/translate_ranker_impl.h
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/components/translate/core/browser/translate_ranker_impl_unittest.cc
[add] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/translate_ranker_metrics_provider.cc
[rename] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/translate_ranker_metrics_provider.h
[add] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/translate_ranker_unittest.cc
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/translate_ui_delegate_unittest.cc
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/components/translate/core/browser/translate_url_fetcher.cc
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/ios/chrome/browser/metrics/BUILD.gn
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/ios/chrome/browser/translate/BUILD.gn
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/ios/chrome/browser/translate/chrome_ios_translate_client.mm
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/ios/chrome/browser/translate/translate_ranker_factory.cc
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/ios/chrome/browser/translate/translate_ranker_factory.h
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/ios/chrome/browser/translate/translate_ranker_metrics_provider.cc
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/ios/web_view/internal/translate/BUILD.gn
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/ios/web_view/internal/translate/web_view_translate_client.mm
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/ios/web_view/internal/translate/web_view_translate_ranker_factory.cc
[delete] https://crrev.com/91fd02a5a3da3376ae161b8358d3a4e8e78d693e/ios/web_view/internal/translate/web_view_translate_ranker_factory.h
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/net/url_request/test_url_fetcher_factory.cc
[modify] https://crrev.com/34f5f9f1efc1283d1bb7c284ab0798ac842265fd/tools/metrics/histograms/histograms.xml

Do we also need to merge this to M58 - given it branched end of last week?
Yes, I created https://bugs.chromium.org/p/chromium/issues/detail?id=699168 to track the merge.
Project Member

Comment 42 by bugdroid1@chromium.org, Mar 9 2017

Labels: merge-merged-3029
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f21042f6367e2c6a1b8a4207322071eeb3bec660

commit f21042f6367e2c6a1b8a4207322071eeb3bec660
Author: hamelphi <hamelphi@chromium.org>
Date: Thu Mar 09 19:16:40 2017

Revert "[Translate] Add translate ranker model loader."

This reverts commit d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120.

This CL causes regression in "Time To First Contentful Pane" for Windows and crashes for ChromeOS

BUG= 697665 , 646711, 698057,  699168 
NOPRESUBMIT=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2736853004
Cr-Commit-Position: refs/heads/master@{#455280}
(cherry picked from commit 34f5f9f1efc1283d1bb7c284ab0798ac842265fd)

Review-Url: https://codereview.chromium.org/2738263002
Cr-Commit-Position: refs/branch-heads/3029@{#91}
Cr-Branched-From: 939b32ee5ba05c396eef3fd992822fcca9a2e262-refs/heads/master@{#454471}

[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/chrome/browser/BUILD.gn
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/chrome/browser/metrics/chrome_metrics_service_client.cc
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/chrome/browser/translate/chrome_translate_client.cc
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/chrome/browser/translate/translate_ranker_factory.cc
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/chrome/browser/translate/translate_ranker_factory.h
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/chrome/browser/translate/translate_ranker_metrics_provider.cc
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/chrome/browser/translate/translate_ranker_metrics_provider.h
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/BUILD.gn
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/components/translate/core/browser/mock_translate_ranker.cc
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/components/translate/core/browser/mock_translate_ranker.h
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/proto/BUILD.gn
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/components/translate/core/browser/proto/ranker_model.proto
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/proto/translate_ranker_model.proto
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/components/translate/core/browser/ranker_model.cc
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/components/translate/core/browser/ranker_model.h
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/components/translate/core/browser/ranker_model_loader.cc
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/components/translate/core/browser/ranker_model_loader.h
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/components/translate/core/browser/ranker_model_loader_unittest.cc
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/translate_manager.cc
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/translate_manager.h
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/translate_manager_unittest.cc
[add] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/translate_ranker.cc
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/translate_ranker.h
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/components/translate/core/browser/translate_ranker_impl.cc
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/components/translate/core/browser/translate_ranker_impl.h
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/components/translate/core/browser/translate_ranker_impl_unittest.cc
[add] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/translate_ranker_metrics_provider.cc
[rename] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/translate_ranker_metrics_provider.h
[add] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/translate_ranker_unittest.cc
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/translate_ui_delegate_unittest.cc
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/components/translate/core/browser/translate_url_fetcher.cc
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/ios/chrome/browser/metrics/BUILD.gn
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/ios/chrome/browser/translate/BUILD.gn
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/ios/chrome/browser/translate/chrome_ios_translate_client.mm
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/ios/chrome/browser/translate/translate_ranker_factory.cc
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/ios/chrome/browser/translate/translate_ranker_factory.h
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/ios/chrome/browser/translate/translate_ranker_metrics_provider.cc
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/ios/web_view/internal/translate/BUILD.gn
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/ios/web_view/internal/translate/web_view_translate_client.mm
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/ios/web_view/internal/translate/web_view_translate_ranker_factory.cc
[delete] https://crrev.com/3d2264d80c9c0b146a6ace8046ed79cc6620d5c6/ios/web_view/internal/translate/web_view_translate_ranker_factory.h
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/net/url_request/test_url_fetcher_factory.cc
[modify] https://crrev.com/f21042f6367e2c6a1b8a4207322071eeb3bec660/tools/metrics/histograms/histograms.xml

After the second revert, the graphs are still indicating an increase in TTFCP. If the CL was really the culprit, we should see the graph go back down.
Which branch are these test ran on? If so, can we merge 34f5f9f1efc1283d1bb7c284ab0798ac842265fd with this version and confirm that the regression has been fixed?

In general, I'd like to understand better how these test are run. Is there documentation you could point me to? Can we run these locally? It would be useful to run these locally to test a fix before commit.
This is really, really strange:

https://chromeperf.appspot.com/group_report?bug_id=697665

There is a clear jump at the original CL, r453378
There is a clear dip at the revert, r454263
There is a clear jump at the reland, r454433

There is no dip at r454595, which removes the experiment from the testing configs.
There is no dip at r455280, which reverts entirely.

I'm going to try and kick off another bisect in the reland range, but I can't understand how the tests don't go back down.

We are running tests on ToT, not on a release branch.

You can use the command in the bisect to run the tests from chromium src dir:
src/tools/perf/run_benchmark -v --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests --story-filter=load.games.alphabetty system_health.common_desktop
Project Member

Comment 47 by 42576172...@developer.gserviceaccount.com, Mar 11 2017

Cc: hamelphi@chromium.org

=== Auto-CCing suspected CL author hamelphi@chromium.org ===

Hi hamelphi@chromium.org, the bisect results pointed to your CL, please take a look at the
results.


=== BISECT JOB RESULTS ===
Perf regression found with culprit

Suspected Commit
  Author : hamelphi
  Commit : d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120
  Date   : Thu Mar 02 23:38:24 2017
  Subject: [Translate] Add translate ranker model loader.

Bisect Details
  Configuration: winx64_10_perf_bisect
  Benchmark    : page_cycler_v2.intl_hi_ru
  Metric       : timeToFirstContentfulPaint_avg/pcv1-cold/http___ru.wikipedia.org_
  Change       : 137.83% | 255.971666664 -> 608.765833338

Revision             Result                  N
chromium@454356      255.972 +- 13.8194      6      good
chromium@454413      243.983 +- 34.8348      6      good
chromium@454427      251.271 +- 12.9978      6      good
chromium@454431      286.335 +- 185.577      6      good
chromium@454432      251.532 +- 7.89917      6      good
chromium@454433      605.756 +- 6.571        6      bad       <--
chromium@454434      608.404 +- 6.69118      6      bad
chromium@454441      609.951 +- 19.8206      6      bad
chromium@454469      608.766 +- 10.4639      6      bad

To Run This Test
  src/tools/perf/run_benchmark -v --browser=release_x64 --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests --story-filter=http...ru.wikipedia.org. page_cycler_v2.intl_hi_ru

Debug Info
  https://chromeperf.appspot.com/buildbucket_job_status/8985468822100023264

Is this bisect wrong?
  https://chromeperf.appspot.com/bad_bisect?try_job_id=5189764988272640


| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Speed>Bisection.  Thank you!
Project Member

Comment 48 by 42576172...@developer.gserviceaccount.com, Mar 11 2017


=== BISECT JOB RESULTS ===
Perf regression found with culprit

Suspected Commit
  Author : hamelphi
  Commit : d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120
  Date   : Thu Mar 02 23:38:24 2017
  Subject: [Translate] Add translate ranker model loader.

Bisect Details
  Configuration: winx64_10_perf_bisect
  Benchmark    : page_cycler_v2.intl_hi_ru
  Metric       : timeToFirstContentfulPaint_avg/pcv1-cold/http___ru.wikipedia.org_
  Change       : 130.80% | 259.846500009 -> 599.71966667

Revision             Result                  N
chromium@454356      259.847 +- 15.6452      6      good
chromium@454413      252.567 +- 10.3668      6      good
chromium@454427      251.525 +- 5.20526      6      good
chromium@454431      263.62 +- 58.1582       6      good
chromium@454432      250.682 +- 3.7059       6      good
chromium@454433      607.104 +- 19.9101      6      bad       <--
chromium@454434      606.65 +- 10.5471       6      bad
chromium@454441      605.064 +- 14.4439      6      bad
chromium@454469      599.72 +- 42.4354       6      bad

To Run This Test
  src/tools/perf/run_benchmark -v --browser=release_x64 --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests --story-filter=http...ru.wikipedia.org. page_cycler_v2.intl_hi_ru

Debug Info
  https://chromeperf.appspot.com/buildbucket_job_status/8985467431747597600

Is this bisect wrong?
  https://chromeperf.appspot.com/bad_bisect?try_job_id=5607496057618432


| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Speed>Bisection.  Thank you!
Labels: Performance-Power
In case it's unclear, these last two bisects in #47 and #48 confirm that relanding was indeed what caused the graph to jump after the revert.
This is really bizarre. Here's an annotated version of the perf graph of the power graph for load_yahoo vs. load_yahoo_ref: https://chromeperf.appspot.com/report?sid=a9ede378b715e9a6c0b091bddd446b613b250c15af6f5e76c943ee28a89cff46

This CL is clearly responsible: there's a clear regression when it lands, a improvement when it's removed, and another regression when it relands. However, as we're seeing elsewhere, there's no improvement when it gets reverted the second time. I checked the revision log for that second revert and confirmed that the CL is in the revision log as we'd expect it to be.

A couple of hypotheses that might explain what we're seeing:

1) The second revert is somehow asymmetrical to the second landing. hamelphi@, were there any merge conflicts that you needed to resolve manually?
2) The CL triggers some pathological case in the load pipeline. While this CL was landed the second time, another CL triggered that same pathological case in the load pipeline so, when this CL was reverted, Chrome continued to demonstrate that pathological behavior.

I'm going to check #1 first, as it seems easier to verify. If that doesn't show anything, I'll move on to #2.

land_revert.png
488 KB View Download
The CL includes a big file (histograms.xml) which prevented me from just hitting the "Revert patchset" button. I had to do a manual revert, but I do not recall having to resolve any merge conflicts, but I did apply a few auto merges as I was trying to land the CL.
I tried locally applying d005809c83c0ad0b9cbbda6b10b7ed2c3dcd5120 (my re-commit) and then  
34f5f9f1efc1283d1bb7c284ab0798ac842265fd (my revert of the re-commit) on a branch just before the re-commit. This result in no diff from my end, so I guess the commit and revert should be symmetric, unless I am missing something?
One other change that got in the mix is 7a9fa89774a486bb9661acbb1d6c124e312a6b9e which removed TranslateRanker Finch experiments from field trials. This was submitted between the re-commit and the 2nd revert.

We could revert this CL too and see if it changes anything. I'd like to test it locally but I can't seem to be able to run the benchmark job locally, I get the following error:
CloudStorageError: ServiceException: 401 Anonymous users does not have storage.objects.get access to object chrome-partner-telemetry/d402a17e3c6de27aacc43997b935b4cff1452fcd.

Any clues?
Can you try these instructions to set up cloud storage? https://www.chromium.org/developers/telemetry/upload_to_cloud_storage

Also you can try running on a perf trybot: https://www.chromium.org/developers/telemetry/performance-try-bots
I also wonder if there could have been a second unrelated regression of a similar magnitude that's confusing this result?

For example in the screenshot in comment 51, the recent graph levels are higher than they were with the original regression.

(One way to confirm this would be to revert the revert and see if it goes even higher - which would be the case if the two regressions are independent and cumulative. If not, then there's something else at play.)
I tried revertting the Finch CL (putting TranslateRanker experiments back in field trials) and had surprising results. It looks like it would resorb the regression.
Here are the results from the trybot :
https://goo.gl/RU89hV

Just to be sure, I ran the same thing on a trivial change on TOT (adding a comment line on ToT):
https://goo.gl/5Hb8mb

In short here are sample TTFCP for both runs:
ToT (finch_revert): ~300ms
Patch(finch_revert): ~140ms 
ToT (trivial_change): ~150ms
Patch (trivial_change): ~140ms

I don't know if timings are supposed to be consistent for ToT between runs, but they are way off in this case. I am not sure what to make out of this, but if we don't care about consistencies between runs, it looks as though adding back the experiment drives TTFCP down considerably.

This is a bit surprising, since enabling the experiments should strictly add more work. I don't see how enabling it could impact this metric positively.

Maybe I am misinterpreting the results? Or maybe I am misunderstanding what having the experiment in fieldtrials means?
 
On the other hand, it explains the regression we have seen. The CL changes behavior associated with the experiment, and it can be seen as the same effect as disabling the experiment in some way.

So, it looks as though adding back the experiment will fix the graph, but it also means that the high TTCFP is what users are getting on stable.

Can someone with a better understanding of fieldtrials and benchmarks explain what we are seing here?
Cc: -fdoray@chromium.org
Would it be possible to go back and see the impact CL 9b3a19f7382b2b6db1f9bf1db63ceeee115bade4 had on the metrics? This is the Cl when we originally added the TranslateRanker experiments to fieldtrials.
And now that I think about it, it may make sense that TranslateRankerEnforcement reduces TTCFP. If the bot is actually fetching a valid TranslateRanker model and the model decides not to show the TranslateUI, we are skipping a bunch of work in this case.

So, if this is true, we are not actually seeing a regression, we are seeing the loss of an improvement that would be brought by TranslateRanker in this case if we would turn it on. Does that make sense?
Re #59: Looks like these metrics only go back to Dec 1 2016, a few months after the experiment was turned on on the bots.

Re #60: Can anyone run locally on Mac or Windows to see if there are differences with the translate UI on/off?
Cc: groby@chromium.org
+groby@

Rachel, the TLDR is that we are seeing a big discrepancy for "Time to first contenful pane" for Windows with and without the ranker. It looks as though having the Ranker enabled makes it faster. My hypothesis is that it points to some problem in the infobar UI, and having the ranker enabled skips the problematic part wwhen running the benchmark. Do you have any insights on what could cause such an issue?


I cannot run locally on Mac or Windows, but I ran a trybot on Mac: https://goo.gl/yc6z7H

It doesn't seem to be affecting mac users. My guess is there is some bug with the translate UI on Windows (the infobar UI).

I launched another trybot on Windows that turns off ShowTranslateUI, but still goes through the Ranker Logic to see if we still see the same behavior. Will update when I get the results.

Here is the link to the trybot that disables ShowTranslateUI (see https://codereview.chromium.org/2743373003/):
https://goo.gl/7XhchI

There is still a difference between ToT and Patch, so there may be more to the problem, but it is not as bad as before:
ToT: ~190 ms
Patch (enable Ranker, disable ShowtranslateUI): ~ 140 ms
So, from what I understand, it does not look like the Original CL is really causing a regression. Turning down the TranslateRankerEnforcement does, but this already turned off on beta and stable. 

There is still an underlying issue with translateUI and Windows that we need to figure out, and I think we should continue investigating., but it looks to me like it is decoupled from the Model Loader implementation the original Cl is implementing.

So, I believe it would be safe to resubmit the CL. Would you agree? It would allow us to move forward with the Ranker project, and potentially improve the metrics on Beta/Stable once we re-enable the experiment.

Sorry I'm a little slow on understanding how things are gated, when you say you want to resubmit the CL, you're pretty sure it will be off on the perfbots and off by default for end users? It is okay to resubmit in my opinion.

Are you the right owner for investigating the translateUI+windows issues?
Yes, we will make sure everything is gated by experiments. Until we add back the TranslateRanker experiments in field trials, it should not impact perfbots. And until we get the green light to turn on experiments in beta/stable, it won't affect users.

I am not the right owner for translateUI+windows issues. I believe groby@ would know who should own this.
Owner: groby@chromium.org
groby: Can you help find someone to investigate the translateUI+windows issues?

Comment 68 by groby@chromium.org, Mar 23 2017

Re c#66 - why do we think there's a translateUI+windows regression NOT based on TranslateRanker if that's the only work being done in TranslateUI right now?


Re c#67: I'm OOO until 4/2, so haven't read the full thread - but if we suspect it's really an underlying issue with Views, maybe pkasting@ would know somebody?

Comment 69 by groby@chromium.org, Mar 23 2017

Re c#62: Windows doesn't use Infobars, it uses bubbles. So looking at infobars is the wrong path.

If you have a Linux build, it should show the *exact* same behavior, since that path is shared on both platforms - @hamelphi: Can you try investigating there?
Should I expect [ git cl try -b winx64_high_dpi_perf_bisect ] to work, or
is there another prescribed way to repro/test this?

I'm seeing  Recipe failed. Reason: Could not load config file. Double check
your changes to config files for syntax errors. for this with no config
file changes.
I think tools/perf/run_benchmark trybot winx64_high_dpi_perf_bisect benchmark + params should work
Are you sure you want the perf_bisect? I suppose bisect is the binary search to find a culprit CL. If you just want to benchmark your CL, you probably want to run one of the benchmarks listed by
'tools/perf/run_benchmark try --help'

I guess the one are looking for is winx64-high-dpi.
Project Member

Comment 73 by bugdroid1@chromium.org, Apr 5 2017

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

commit 95c5541219a088802bf259cc36ab7fd4a7ae98e7
Author: rogerm <rogerm@chromium.org>
Date: Wed Apr 05 12:11:52 2017

Integrate RankerModelLoader with TranslateRanker.

This CL replaces the model loading code in the TranslateRanker with
the use of the RankerModelLoader.

* the TranslateRanker transitions to a KeyedService
* the TranslateRanker is split into interface and implementation,
  facilitationt mocking the TranslateRanker in tests.
* Browser-level TransalteRankerFactories are added in order to
  pass the appropriate model cache path and model url to the ranker
  and, in turn, the model loader.
* Metrics providers have been promoted to browser level to allow for
  accessing it as a keyed servie across all loaded profiles.

BUG=646711,  697665 , 698057

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

[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/chrome/browser/BUILD.gn
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/chrome/browser/metrics/chrome_metrics_service_client.cc
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/chrome/browser/translate/chrome_translate_client.cc
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/chrome/browser/translate/translate_ranker_factory.cc
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/chrome/browser/translate/translate_ranker_factory.h
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/chrome/browser/translate/translate_ranker_metrics_provider.cc
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/chrome/browser/translate/translate_ranker_metrics_provider.h
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/BUILD.gn
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/mock_translate_ranker.cc
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/mock_translate_ranker.h
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/ranker_model_loader.cc
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/translate_manager.cc
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/translate_manager.h
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/translate_manager_unittest.cc
[delete] https://crrev.com/27711f411908663e20ac16bc6c3826e09e8b6d0b/components/translate/core/browser/translate_ranker.cc
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/translate_ranker.h
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/translate_ranker_impl.cc
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/translate_ranker_impl.h
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/translate_ranker_impl_unittest.cc
[delete] https://crrev.com/27711f411908663e20ac16bc6c3826e09e8b6d0b/components/translate/core/browser/translate_ranker_metrics_provider.cc
[delete] https://crrev.com/27711f411908663e20ac16bc6c3826e09e8b6d0b/components/translate/core/browser/translate_ranker_metrics_provider.h
[delete] https://crrev.com/27711f411908663e20ac16bc6c3826e09e8b6d0b/components/translate/core/browser/translate_ranker_unittest.cc
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/translate_ui_delegate_unittest.cc
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/components/translate/core/browser/translate_url_fetcher.cc
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/ios/chrome/browser/metrics/BUILD.gn
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/ios/chrome/browser/metrics/ios_chrome_metrics_service_client.mm
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/ios/chrome/browser/translate/BUILD.gn
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/ios/chrome/browser/translate/chrome_ios_translate_client.mm
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/ios/chrome/browser/translate/translate_ranker_factory.cc
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/ios/chrome/browser/translate/translate_ranker_factory.h
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/ios/chrome/browser/translate/translate_ranker_metrics_provider.cc
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/ios/chrome/browser/translate/translate_ranker_metrics_provider.h
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/ios/web_view/BUILD.gn
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/ios/web_view/internal/translate/web_view_translate_client.mm
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/ios/web_view/internal/translate/web_view_translate_ranker_factory.cc
[add] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/ios/web_view/internal/translate/web_view_translate_ranker_factory.h
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/testing/variations/fieldtrial_testing_config.json
[modify] https://crrev.com/95c5541219a088802bf259cc36ab7fd4a7ae98e7/tools/metrics/histograms/histograms.xml

Labels: OS-Windows
Owner: rogerm@chromium.org
What's left to do on this?
There's a follow-up CL that's related to this change at issue here (to fix a race condition on shutdown).

Otherwise, there's nothing left to do on this. 
The CL I was referring to is https://codereview.chromium.org/2839433002/ 
Project Member

Comment 77 by bugdroid1@chromium.org, May 11 2017

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

commit d2876f4ee1c1a01ee262ca55752503ba3a30a6d5
Author: rogerm <rogerm@chromium.org>
Date: Thu May 11 22:16:40 2017

[translate] Defer start of translate ranker model load to first use.

This CL is in response to perf regression (see referenced bugs).

BUG= 697947 ,  697665 

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

[modify] https://crrev.com/d2876f4ee1c1a01ee262ca55752503ba3a30a6d5/components/translate/core/browser/translate_ranker_impl.cc

Components: UI>Browser>Language>Translate
Status: Fixed (was: Assigned)
Project Member

Comment 80 by bugdroid1@chromium.org, Jun 9 2017

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

commit cd4a0934f93239d0791e80d7a5da5b81eea368d9
Author: hamelphi <hamelphi@chromium.org>
Date: Fri Jun 09 19:45:22 2017

Revert of [translate] Defer start of translate ranker model load to first use. (patchset #2 id:40001 of https://codereview.chromium.org/2871843003/ )

Reason for revert:
The perf regression was not caused by this piece of code. Reverting to the original behavior.

See https://docs.google.com/document/d/1eeTSJg18rJ4v_oxxSJU8MK20UywnEhocWk_WrWv8kQE/edit for details of the regression investigation.

Original issue's description:
> [translate] Defer start of translate ranker model load to first use.
>
> This CL is in response to perf regression (see referenced bugs).
>
> BUG= 697947 ,  697665 
>
> Review-Url: https://codereview.chromium.org/2871843003
> Cr-Commit-Position: refs/heads/master@{#471086}
> Committed: https://chromium.googlesource.com/chromium/src/+/d2876f4ee1c1a01ee262ca55752503ba3a30a6d5

TBR=benhenry@chromium.org,vmiura@chromium.org,sullivan@chromium.org,tdresser@chromium.org,groby@chromium.org,rogerm@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 697947 ,  697665 

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

[modify] https://crrev.com/cd4a0934f93239d0791e80d7a5da5b81eea368d9/components/translate/core/browser/translate_ranker_impl.cc

 Issue 703137  has been merged into this issue.
Cc: yyushkina@chromium.org benhenry@google.com
 Issue 700084  has been merged into this issue.
Project Member

Comment 83 by bugdroid1@chromium.org, Jun 27 2017

Labels: merge-merged-3112
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ac979d32d6ce857f746f44bb009b180676b3114a

commit ac979d32d6ce857f746f44bb009b180676b3114a
Author: Roger McFarlane <rogerm@chromium.org>
Date: Tue Jun 27 17:40:21 2017

Revert of [translate] Defer start of translate ranker model load to first use. (patchset #2 id:40001 of https://codereview.chromium.org/2871843003/ )

Reason for revert:
The perf regression was not caused by this piece of code. Reverting to the original behavior.

See https://docs.google.com/document/d/1eeTSJg18rJ4v_oxxSJU8MK20UywnEhocWk_WrWv8kQE/edit for details of the regression investigation.

Original issue's description:
> [translate] Defer start of translate ranker model load to first use.
>
> This CL is in response to perf regression (see referenced bugs).
>
> BUG= 697947 ,  697665 
>
> Review-Url: https://codereview.chromium.org/2871843003
> Cr-Commit-Position: refs/heads/master@{#471086}
> Committed: https://chromium.googlesource.com/chromium/src/+/d2876f4ee1c1a01ee262ca55752503ba3a30a6d5

TBR=benhenry@chromium.org,vmiura@chromium.org,sullivan@chromium.org,tdresser@chromium.org,groby@chromium.org,rogerm@chromium.org
BUG= 697947 ,  697665 

Review-Url: https://codereview.chromium.org/2918173002
Cr-Original-Commit-Position: refs/heads/master@{#478379}
Review-Url: https://codereview.chromium.org/2956053003 .
Cr-Commit-Position: refs/branch-heads/3112@{#481}
Cr-Branched-From: b6460e24cf59f429d69de255538d0fc7a425ccf9-refs/heads/master@{#474897}

[modify] https://crrev.com/ac979d32d6ce857f746f44bb009b180676b3114a/components/translate/core/browser/translate_ranker_impl.cc

Sign in to add a comment