Bug 93744 - REGRESSION: 6% perf. regressions on Bindings/node-list-access.html
Summary: REGRESSION: 6% perf. regressions on Bindings/node-list-access.html
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore JavaScript (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2012-08-10 14:38 PDT by Ryosuke Niwa
Modified: 2012-10-06 10:26 PDT (History)
11 users (show)

See Also:


Attachments
Bisect results (9.71 KB, text/html)
2012-08-10 14:38 PDT, Ryosuke Niwa
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ryosuke Niwa 2012-08-10 14:38:04 PDT
Created attachment 157812 [details]
Bisect results

See http://webkit-perf.appspot.com/graph.html#tests=[[2966378,2001,32196]]&sel=1343895254495.4062,1344094768078.8474,116.85483870967741,148.30645161290323&displayrange=30&datatype=running

I've manually bisected builds and found narrowed the regression range to r124569 and r124570 but http://trac.webkit.org/changeset/124569 is EFL specific so it can't affect Lion.
Comment 1 Alexey Proskuryakov 2012-08-13 09:59:45 PDT
It doesn't seem good if a developer-only feature negatively affects performance for everyone. Should r124570 be rolled out?
Comment 2 Yury Semikhatsky 2012-08-14 00:35:53 PDT
(In reply to comment #1)
> It doesn't seem good if a developer-only feature negatively affects performance for everyone. Should r124570 be rolled out?

Hm, that sounds weird as the code changed in http://trac.webkit.org/changeset/124570 is never executed if inspector front-end is not open. I will take a look.
Comment 3 Yury Semikhatsky 2012-08-14 09:40:30 PDT
I've got the following results for the test locally:

r124570:
Running 1 tests
Running Bindings/node-list-access.html (1 of 1)
DESCRIPTION: This benchmark covers 'childNodes' in Dromaeo/dom-traverse.html, and other DOM attributes that access NodeList.
RESULT Bindings: node-list-access= 117.058146763 runs/s
median= 117.035110533 runs/s, stdev= 0.154035470159 runs/s, min= 116.580310881 runs/s, max= 117.1875 runs/s

Running 1 tests
Running Bindings/node-list-access.html (1 of 1)
DESCRIPTION: This benchmark covers 'childNodes' in Dromaeo/dom-traverse.html, and other DOM attributes that access NodeList.
RESULT Bindings: node-list-access= 118.598121427 runs/s
median= 119.443074539 runs/s, stdev= 2.12033029385 runs/s, min= 114.503816794 runs/s, max= 121.359223301 runs/s



r124569:
Running 1 tests
Running Bindings/node-list-access.html (1 of 1)
DESCRIPTION: This benchmark covers 'childNodes' in Dromaeo/dom-traverse.html, and other DOM attributes that access NodeList.
RESULT Bindings: node-list-access= 116.415725262 runs/s
median= 116.429495472 runs/s, stdev= 0.388459438058 runs/s, min= 115.979381443 runs/s, max= 117.647058824 runs/s

Running 1 tests
Running Bindings/node-list-access.html (1 of 1)
DESCRIPTION: This benchmark covers 'childNodes' in Dromaeo/dom-traverse.html, and other DOM attributes that access NodeList.
RESULT Bindings: node-list-access= 120.665066918 runs/s
median= 121.065375303 runs/s, stdev= 0.806736064988 runs/s, min= 118.26544021 runs/s, max= 121.212121212 runs/s
Comment 4 Ryosuke Niwa 2012-08-14 10:01:49 PDT
This regression only reproduces on Apple's Mac port.
Comment 5 Yury Semikhatsky 2012-08-14 23:24:22 PDT
(In reply to comment #4)
> This regression only reproduces on Apple's Mac port.

The results above are for Apple's Mac port. I didn't have 10.7  under my hand so I ran it on 10.6. I'll try to find 10.7 today to run the test there.
Comment 6 Ryosuke Niwa 2012-08-14 23:29:07 PDT
(In reply to comment #5)
> (In reply to comment #4)
> > This regression only reproduces on Apple's Mac port.
> 
> The results above are for Apple's Mac port. I didn't have 10.7  under my hand so I ran it on 10.6. I'll try to find 10.7 today to run the test there.

Strange. I used a 10.6 machine to get my stat.
Comment 7 Andrey Kosyakov 2012-08-15 02:27:28 PDT
(In reply to comment #6)
> (In reply to comment #5)
> > (In reply to comment #4)
> > > This regression only reproduces on Apple's Mac port.
> > 
> > The results above are for Apple's Mac port. I didn't have 10.7  under my hand so I ran it on 10.6. I'll try to find 10.7 today to run the test there.
> 
> Strange. I used a 10.6 machine to get my stat.

FWIW, I tried it on 10.7 and there does not seem to be any perf regression caused by r124570:

r124569:
WebKit caseq$ ./Tools/Scripts/run-perf-tests Bindings/node-list-access.html

Running Bindings/node-list-access.html (1 of 1)
DESCRIPTION: This benchmark covers 'childNodes' in Dromaeo/dom-traverse.html, and other DOM attributes that access NodeList.
RESULT Bindings: node-list-access= 180.702349353 runs/s
median= 180.995550742 runs/s, stdev= 1.37570953338 runs/s, min= 177.439797212 runs/s, max= 182.291666667 runs/s

r124570:
WebKit caseq$ ./Tools/Scripts/run-perf-tests Bindings/node-list-access.html
Running 1 tests
Running Bindings/node-list-access.html (1 of 1)
DESCRIPTION: This benchmark covers 'childNodes' in Dromaeo/dom-traverse.html, and other DOM attributes that access NodeList.
RESULT Bindings: node-list-access= 181.230389955 runs/s
median= 181.347150259 runs/s, stdev= 1.4923706351 runs/s, min= 178.117048346 runs/s, max= 183.006535948 runs/s
Comment 8 Yury Semikhatsky 2012-08-17 03:48:00 PDT
Below are the results for another Mac OX Lion machine:

r124569:
Running 1 tests
Running Bindings/node-list-access.html (1 of 1)
DESCRIPTION: This benchmark covers 'childNodes' in Dromaeo/dom-traverse.html, and other DOM attributes that access NodeList.
RESULT Bindings: node-list-access= 128.321842899 runs/s
median= 127.145633077 runs/s, stdev= 3.5260358241 runs/s, min= 125.470514429 runs/s, max= 135.900339751 runs/s


r124570:
Running Bindings/node-list-access.html (1 of 1)
DESCRIPTION: This benchmark covers 'childNodes' in Dromaeo/dom-traverse.html, and other DOM attributes that access NodeList.
RESULT Bindings: node-list-access= 127.241506239 runs/s
median= 125.786362543 runs/s, stdev= 3.33869499061 runs/s, min= 123.609394314 runs/s, max= 134.228187919 runs/s


One interesting thing about the test is that I got the following result on r124582:

124582 
Running 1 tests
Running Bindings/node-list-access.html (1 of 1)
DESCRIPTION: This benchmark covers 'childNodes' in Dromaeo/dom-traverse.html, and other DOM attributes that access NodeList.
RESULT Bindings: node-list-access= 136.215966376 runs/s
median= 138.364779874 runs/s, stdev= 4.87487494624 runs/s, min= 124.378109453 runs/s, max= 139.416983523 runs/s
which is faster than r124570
Comment 9 Ryosuke Niwa 2012-08-17 11:06:11 PDT
Strange :(
Comment 10 Ryosuke Niwa 2012-10-05 13:59:12 PDT
Looking at the graphs more closely, it seems like the culprit is http://trac.webkit.org/changeset/128400.
Comment 11 Geoffrey Garen 2012-10-06 10:26:03 PDT
<rdar://problem/12448669>