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

Issue 922316 link

Starred by 4 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

50-100x performance regression due to Array.prototype.splice

Reported by peter.l....@nasa.gov, Jan 16

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

Steps to reproduce the problem:
Test application deployed at: http://pete-richards.com/chromium-71-perf-regression-reproduction/

1. load test page in chromium 70
2. observe page & plot load time.
3. load test page in chromium 71
4. observe page & plot load time. (it will be non-responsive for some time).

What is the expected behavior?
Chromium 71 and Chromium 70 should have similar performance when executing the same code.

What went wrong?
Chromium 70 loads and displays results 50-100x faster than Chromium 71.  

Load timing (render frame only, not network request):
Chromium 70: 558.4ms
Chromium 71: 855502.7ms

Did this work before? Yes 70.0.3538.0

Chrome version: 71.0.3578.98  Channel: stable
OS Version: OS X 10.13.6
Flash Version: 

Issue was initially reported on 64bit Windows but was reproduced by developer on Mac OS X. 

Tested on Mac OS X with following chromium builds:

Chromium	70.0.3538.0 (Developer Build) (64-bit)
Revision	79f7c91a2b2a2932cd447fa6f865cb6662fa8fa6-refs/heads/master@{#587811}

Chromium	71.0.3578.0 (Developer Build) (64-bit)
Revision	f8ebcecf7a1b5a9d628ed8dd81727da65fff7ecc-refs/heads/master@{#599056}

Google Chrome	71.0.3578.98 (Official Build) (64-bit)
Revision	15234034d19b85dcd9a03b164ae89d04145d8368-refs/branch-heads/3578@{#897}

Test code is hosted here: https://github.com/larkin/chromium-71-perf-regression-reproduction
 
Screenshots from performance trace.
profiler-screenshot-chromium-70.png
259 KB View Download
profiler-screenshot-chromium-71.png
185 KB View Download
Labels: Needs-Bisect

Comment 3 by woxxom@gmail.com, Jan 16 (6 days ago)

Devtools profiler bottom-up attributes 99% of time to ArraySplice.

Broken in 71.0.3543.0 r588623
Suspecting crrev.com/c/1201783
[builtins] Enable Torque Array.prototype.splice

Fixed in 72.0.3580.0 r599508
Suspecting crrev.com/c/1243104
[Builtins] Array.prototype.splice performance improvements

Chrome 72 will be released in a couple of weeks.

Comment 4 by tkent@chromium.org, Jan 16 (6 days ago)

Components: -Blink Blink>JavaScript
Summary: 50-100x performance regression due to Array.prototype.splice (was: 50-100x performance regression)

Comment 5 by susan.boorgula@chromium.org, Jan 16 (6 days ago)

Cc: susan.boorgula@chromium.org
Labels: -Pri-2 -Needs-Bisect RegressedIn-71 ReleaseBlock-Stable Triaged-ET Target-71 M-71 FoundIn-71 hasbisect OS-Linux OS-Windows Pri-1
Owner: mvstan...@chromium.org
Status: Assigned (was: Unconfirmed)
[Reverse Bisect] - Able to reproduce this issue on Windows 10, Mac OS 10.13.6 and Ubuntu 17.10 on the latest Stable 71.0.3578.98.
Issue seems to be fixed on the latest Canary 73.0.3673.0 and Beta 72.0.3626.53.

Reverse Bisect Information:
============================
Good Build: 72.0.3580.0
Bad Build : 72.0.3579.0

As per comment #3, suspecting https://chromium.googlesource.com/chromium/src/+/e3423dbfbdfa8cc1ca6c97c71387d28f78c82791

From the above Changelog, suspecting the below Change.
Reviewed-on: https://chromium-review.googlesource.com/c/1243104

mvstanton@ Please check and confirm if this issue is related to your change, else help us in assigning to the right owner.

Adding 'ReleaseBlock-Stable' for M-71 as this a recent regression. Please feel free to remove if not applicable.

Thanks...

Comment 6 by pbommana@google.com, Jan 17 (5 days ago)

Cc: pbomm...@chromium.org gov...@chromium.org abdulsyed@chromium.org
Given the issue is already fixed in Chrome M72 and currently there aren't any M71 releases planned and Chrome 72 would be promoted to stable pretty soon we can leave this issue open until M72 hits stable channel.

Please correct me if I am wrong.

Comment 7 by gov...@chromium.org, Jan 18 (4 days ago)

Labels: -ReleaseBlock-Stable
We're not planning any further M71 releases and it is already fixed in M72. So removing "RBS". 

Sign in to add a comment