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

Issue 832077 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Bug-Regression

Blocked on:
issue 823871



Sign in to add a comment

10.2%-24.8% regression in blink_perf.dom at 549157:549371

Project Member Reported by sullivan@chromium.org, Apr 12 2018

Issue description

See the link to graphs below.
 
Project Member

Comment 1 by 42576172...@developer.gserviceaccount.com, Apr 12 2018

All graphs for this bug:
  https://chromeperf.appspot.com/group_report?bug_id=832077

(For debugging:) Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?sid=2698ae56f9bf495f522620180351df8bdea43f98b9e55a93a78cb8b33f6ea645


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

android-nexus5
android-nexus5X
android-nexus6
android-nexus7v2
android-one
android-webview-nexus6
chromium-rel-mac11-pro
chromium-rel-mac12
chromium-rel-win10
chromium-rel-win7-gpu-ati
chromium-rel-win7-gpu-intel
chromium-rel-win7-gpu-nvidia
chromium-rel-win7-x64-dual
chromium-rel-win8-dual
linux-release
Project Member

Comment 3 by 42576172...@developer.gserviceaccount.com, Apr 13 2018

😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/12ec7f32c40000
Blockedon: 823871
These are failing with swarming timeouts, not enough devices, blocking on crbug.com/823871

Going to try re-running on a non-webview bot.
Project Member

Comment 7 by 42576172...@developer.gserviceaccount.com, Apr 13 2018

Cc: se...@chromium.org tkent@chromium.org rogerm@chromium.org fsam...@chromium.org mahmadi@chromium.org chcunningham@chromium.org lpz@chromium.org dalecur...@chromium.org jialiul@chromium.org est...@chromium.org illiam@google.com mcnee@chromium.org kmackay@chromium.org creis@chromium.org mea...@chromium.org
Owner: dalecur...@chromium.org
Status: Assigned (was: Untriaged)
📍 Found significant differences after each of 5 commits.
https://pinpoint-dot-chromeperf.appspot.com/job/15d3c0f2c40000

Add event handlers to SWAN trigger. by lpz@chromium.org
https://chromium.googlesource.com/chromium/src/+/cb2eb33ca1619da601eacb7ca5f9698a339ce8fd

Viz: Handling the change in hierarchy of surface references by illiam@google.com
https://chromium.googlesource.com/chromium/src/+/d422b5d9ad5ccc632ca5337dc8aacff8106e3ffb

Disable ReportBubblingScrollToSameView DumpWithoutCrashing. by mcnee@chromium.org
https://chromium.googlesource.com/chromium/src/+/4006a11ea7c778ecb052d46673ee6157e0c4021f

[Autofill] Dynamic refill of selects that change options. by sebsg@chromium.org
https://chromium.googlesource.com/chromium/src/+/248c6b0817d54d04e78f75b72be511dfa3e5323c

<b>Switch media/ to pass scoped_refptr<DecoderBuffer> by value.</b> by dalecurtis@chromium.org
https://chromium.googlesource.com/chromium/src/+/ca8ad98320fa7cf9540aef6a3bae7a44ed1d42a8

Understanding performance regressions:
  http://g.co/ChromePerformanceRegressions
Owner: se...@chromium.org
Sorry for the noise. Looking at the bisect in #7, this is pretty clearly due to "[Autofill] Dynamic refill of selects that change options". sebsg, can you take a look?
Project Member

Comment 9 by 42576172...@developer.gserviceaccount.com, Apr 15 2018

😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/13c51f52c40000

Comment 11 by se...@chromium.org, Apr 17 2018

There are some test I added that do wait for some form modifications to happen. I'm not surprised that they take longer. Is there a different way I should define or add longer tests?
This bug isn't about the runtime of the tests you added. It's saying you regressed the performance of some benchmarks. Specifically, the test cases select-multiple-add, select-single-add, and select-single-remove. You can see the code for them here: https://cs.chromium.org/chromium/src/third_party/blink/perf_tests/dom/

This is a pretty widespread regression, 20% on all platforms. Can you revert your CL and reland after optimizing? You can run the benchmarks locally as 

tools/perf/run_benchmark blink_perf.com

And use the perf trybots to try on any of our perf lab hardware: https://chromium.googlesource.com/chromium/src/+/master/docs/speed/perf_trybots.md

Comment 13 by se...@chromium.org, Apr 17 2018

Ok I'll take a look. It's weird because the only thing I see is that autofill_agent now gets notified of OptionAdded/Removed of select elements. 

Comment 14 by se...@chromium.org, Apr 17 2018

To be more clear, I added piping from HTMLSelectElement when an option is added or removed, my guess is that this is what is causing the reduced performance.

Do you know who I should contact to find if there is a better way of listening to those things?

tkent: you added these tests, any advice for sebsg in #14?

Comment 16 by se...@chromium.org, Apr 17 2018

Status: Started (was: Assigned)
Ok I got it, I know what I need to change. I'll do it ASAP and merge it.

Comment 17 by se...@chromium.org, Apr 17 2018

CL is under review.
Project Member

Comment 18 by bugdroid1@chromium.org, Apr 18 2018

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

commit 1c436858405ac0d30e2cf8d707cfb52908719565
Author: sebsg <sebsg@chromium.org>
Date: Wed Apr 18 16:54:32 2018

[AF] More efficient dynamic form fill on select options change.

The previous implementation was finding the form and field of the
select element that was modified for each option added or removed.

Since this can happen several times in a row it was not efficient.

This search now happens after all the add/remove have been debounced.

Bug:  832077 
Change-Id: Icf28910459163a4d92eca96e2e4adad65a147cf7
Reviewed-on: https://chromium-review.googlesource.com/1015322
Commit-Queue: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Reviewed-by: Mathieu Perreault <mathp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551719}
[modify] https://crrev.com/1c436858405ac0d30e2cf8d707cfb52908719565/components/autofill/content/renderer/autofill_agent.cc
[modify] https://crrev.com/1c436858405ac0d30e2cf8d707cfb52908719565/components/autofill/content/renderer/autofill_agent.h

Comment 19 by se...@chromium.org, Apr 18 2018

I'll wait for this to bake in Canary a little and request a merge for M67. Thanks!
Project Member

Comment 20 by 42576172...@developer.gserviceaccount.com, Apr 18 2018

😿 Pinpoint job stopped with an error.
https://pinpoint-dot-chromeperf.appspot.com/job/14cde57ac40000

Comment 21 by se...@chromium.org, Apr 19 2018

Labels: Merge-Request-67
Pls apply appropriate OSs label. Thank you.

Comment 23 by se...@chromium.org, Apr 19 2018

Labels: OS-Android OS-Chrome OS-Linux OS-Mac OS-Windows
Project Member

Comment 24 by sheriffbot@chromium.org, Apr 20 2018

Labels: -Merge-Request-67 Merge-Approved-67 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M67. Please go ahead and merge the CL to branch 3396 manually. Please contact milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), kbleicher@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 25 by bugdroid1@chromium.org, Apr 20 2018

Labels: -merge-approved-67 merge-merged-3396
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e38208746e84e8c7b51580381aa3aefbaf530a53

commit e38208746e84e8c7b51580381aa3aefbaf530a53
Author: sebsg <sebsg@chromium.org>
Date: Fri Apr 20 14:48:48 2018

Merge67- [AF] More efficient dynamic form fill on select options change.

The previous implementation was finding the form and field of the
select element that was modified for each option added or removed.

Since this can happen several times in a row it was not efficient.

This search now happens after all the add/remove have been debounced.

Tbr: mathp@chromium.org

(cherry picked from commit 1c436858405ac0d30e2cf8d707cfb52908719565)

Bug:  832077 
Change-Id: Icf28910459163a4d92eca96e2e4adad65a147cf7
Reviewed-on: https://chromium-review.googlesource.com/1015322
Commit-Queue: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Reviewed-by: Mathieu Perreault <mathp@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#551719}
Reviewed-on: https://chromium-review.googlesource.com/1021652
Reviewed-by: Sebastien Seguin-Gagnon <sebsg@chromium.org>
Cr-Commit-Position: refs/branch-heads/3396@{#161}
Cr-Branched-From: 9ef2aa869bc7bc0c089e255d698cca6e47d6b038-refs/heads/master@{#550428}
[modify] https://crrev.com/e38208746e84e8c7b51580381aa3aefbaf530a53/components/autofill/content/renderer/autofill_agent.cc
[modify] https://crrev.com/e38208746e84e8c7b51580381aa3aefbaf530a53/components/autofill/content/renderer/autofill_agent.h

Comment 26 by se...@chromium.org, Apr 20 2018

Status: Fixed (was: Started)

Sign in to add a comment