New issue
Advanced search Search tips

Issue 662901 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 677839
Owner: ----
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Performance degradation since Chrome 49

Reported by sscha...@gmail.com, Nov 7 2016

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36

Steps to reproduce the problem:
1. Start a webserver and serve the test.json file from there(sorry, i can not provide an endpoint)
2. Load the file in Chrome 48 and Chrome 49(or any Version >= 49. I have tested until Chrome 54)

What is the expected behavior?
Chrome 48 and Chrome 49 firing DOMContentLoaded roughly at the same time

What went wrong?
Chrome 49+ is on average much slower than Chrome 48.

Did this work before? Yes 48

Chrome version: 49  Channel: stable
OS Version: 10.0
Flash Version: Shockwave Flash 23.0 r0
 
Chrome-48.png
29.9 KB View Download
Chrome49.png
30.2 KB View Download
test.json
680 KB View Download

Comment 1 Deleted

Comment 2 by woxxom@gmail.com, Nov 7 2016

1. How can this be reproduced and narrowed down to find the cause without at least the simplest html page with code that uses test.json items?

2. What do you see in v56 canary? 

Comment 3 by woxxom@gmail.com, Nov 7 2016

3. What do you see in devtools Timeline profiler?

Comment 4 by sscha...@gmail.com, Nov 8 2016

1. Just open the test.json file in the browser
2 and 3: see attached screenshots
chrome56.png
35.5 KB View Download
chrome56timeline.png
57.4 KB View Download
chrome48timeline.png
93.1 KB View Download

Comment 5 by woxxom@gmail.com, Nov 8 2016

Bisect: 361463 (good) - 361463 (bad), 49.0.2574.0
Changelog: https://chromium.googlesource.com/chromium/src/+log/20f3b2d0..fa7fc32c?pretty=fuller
Suspecting https://crrev.com/1474673003 tracked in  issue 404597 

======================
Exact STR:
1. open devtools network tab
2. navigate to test.json from the bug report (load it from disk or a local webserver)
3. observe the DOMContentLoaded time in statusbar

Chrome 48: around 200ms
Chrome 49: around 850ms

The page is rendered 4+ times slower!

Comment 6 by woxxom@gmail.com, Nov 8 2016

Definitely caused by https://crrev.com/1474673003 tracked in  issue 404597 .

Proof: disabling the complex text feature introduced in the abovementioned patch makes the page load as fast as in Chrome 48. The feature may be disabled by running an affected build (after 49.0.2574.0) with a command line switch --disable-blink-features=AlwaysUseComplexText

It should be noted that the feature cannot be disabled since canary 56.0.2903.0 because issue 402536 removed the corresponding feature entry.

Comment 7 by drott@chromium.org, Nov 8 2016

Cc: kojii@chromium.org e...@chromium.org
Components: Blink>Fonts
Status: Available (was: Unconfirmed)
Koji, is this a duplicate of an existing issue regarding some of the non human-readable code display issues we had?

Comment 8 by drott@chromium.org, Nov 8 2016

Cc: drott@chromium.org

Comment 9 by woxxom@gmail.com, Nov 8 2016

FWIW, a slightly less huge speed drop (200ms vs 550ms) occurs even on a properly formatted "human-readable" text inside PRE element in html file, see the attached archive. The difference can be easily measure on any build in 49.0.2574.1 - 56.0.2902.0 range by using the abovementioned command line switch.

Comment 10 by woxxom@gmail.com, Nov 8 2016

The attachment for #9
test.zip
36.4 KB Download

Comment 11 by drott@google.com, Nov 8 2016

Thanks for the additional test case. Yes, the test in #9 and the original content are similar in the sense that JSON code or structured data such as large XML files often have variable names, identifiers, or whitespace-compressed, non-spac-breakable sections of data that frequently exceed the word cache character limit. Choice of the word "non human readable" might have been misleading: What I meant to describe is that this sort of code/data has different patterns from natural language - where the word cache is more effective.

Comment 12 by woxxom@gmail.com, Nov 8 2016

#11, really human-readable natural language English text from wikipedia in two PRE elements (see the attached archive) is rendered 2 times slower (210ms vs 427ms).
test-human-readable-from-wikipedia.zip
171 KB Download

Comment 13 by woxxom@gmail.com, Nov 8 2016

More results on the natural language file in #12 as measured by repeatedly refreshing the page with devtools opened on network panel using the good and bad builds.

3x speed drop (110ms vs 325ms) on average
Thank you for the report from me too. We acknowledge that we're sometimes not as fast as Chrome 48. We're in the process of improving layout in multiple phases:
1. We had fast layout but oftentimes produced incorrect results.
2. We fixed lots of incorrectness.
2.5. We fixed n^2/n! issues that were stood out by phase 2.
3. We will make it fast again.

Currently we're working on 3, and until it's complete, our goals are as below:
1. We're not slower than other browsers for human readable pages.
2. We're not unreasonably slow on non-human pages.

By using the test page attached in #12 on my machine:
Chrome 56.0.2909.0: 626ms (537ms in layout)
Edge: 1500ms (775ms in layout)
Firefox: 1200ms (742ms in layout)

So while this is not really an ideal situation, I think we're still faster than other browsers, and please look forward to Chrome being even faster again.
Cc: behdad@chromium.org

Comment 16 by e...@chromium.org, Jan 2 2017

Mergedinto: 677839
Status: Duplicate (was: Available)

Sign in to add a comment