New issue
Advanced search Search tips

Issue 621601 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

35% of the main thread time scrolling iron-list is VisibleUnits::canonicalPosition

Project Member Reported by esprehn@chromium.org, Jun 20 2016

Issue description

Google Chrome	53.0.2773.0 (Official Build) canary (64-bit)
Revision	ced2fcee2c85702055d028f4e3e48c5a75a7e41c-refs/heads/master@{#400610}
OS	Mac OS X 

What steps will reproduce the problem?
(1) Load https://elements.polymer-project.org/elements/iron-list?view=demo:demo/index.html&active=iron-list
(2) Open about:tracing and record all.
(3) Scroll the page up and down.

Notice the huge time slice for 

This is extra surprising because I have nothing selected, the page is freshly loaded, and I'm just scrolling up and down. Why are we spending so much time in there?


 
trace.png
176 KB View Download
trace_iron-list.json.gz
3.2 MB Download
Sigh, reloading the page and tracing again I can't get this to repro. When it did repro it happened every time though. I've seen this same super expensive VisibleUnits thing before which makes me think there's some bug with a race maybe?

Comment 3 by yosin@chromium.org, Jun 21 2016

Components: -Blink>Editing Blink>TextSelection
Labels: OS-All
Status: Available (was: Untriaged)
Cc: yoichio@chromium.org
The page you point:
https://elements.polymer-project.org/elements/iron-list?view=demo:demo/index.html&active=iron-list

shows a card(see attached image). Thus I couldn't find any scrolling and reproduce. 

I guess the issue is on a page of the six demos.
Elliott, could you explain more?


キャプチャ.PNG
39.9 KB View Download

Comment 5 by yosin@chromium.org, Jun 22 2016

There are two suspects:
1. FlatTreeTraversal::parent, child, nextSibling, previousSibling
2. Many calls of Document::updateStyleAndLayoutTreeIgnorePendingStylesheets()
 - When there are style sheet placeholder and pending HTML imports, USLIP() does layout for every call due by setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::create(StyleChangeReason::CleanupPlaceholderStyles));

Suspects 2 can explain esprehn@'s experience in #c2.

There was nothing under that slice, and it was every frame. It wasn't a large style recalc or layout, it was the code inside VisibleUnits::canonicalPosition doing something expensive like walking the whole DOM or layout tree repeatedly. Of course I can't reproduce now, which makes me think this is a race condition. Once you get into the state where this happens every frame we pump has this at the start of it though.
Project Member

Comment 7 by sheriffbot@chromium.org, Jul 4 2016

Labels: -M-53 M-54 MovedFrom-53
Moving this nonessential bug to the next milestone.

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

Comment 8 by tkent@chromium.org, Oct 12 2016

Components: -Blink>TextSelection Blink>Editing>Selection

Comment 9 by ojan@chromium.org, Mar 7 2017

Cc: -ojan@chromium.org
Labels: Pri-3
Project Member

Comment 11 by sheriffbot@chromium.org, Oct 4

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Available (was: Untriaged)

Sign in to add a comment