[CSS Regions] Add performance test for selection
[WebKit-https.git] / PerformanceTests / ChangeLog
1 2013-11-19  Manuel Rego Casasnovas  <rego@igalia.com>
2
3         [CSS Regions] Add performance test for selection
4         https://bugs.webkit.org/show_bug.cgi?id=119230
5
6         Reviewed by Ryosuke Niwa.
7
8         Add new performance test for selection in CSS Regions. It checks a
9         selection from the first region to the last one, passing through all the
10         regions.
11
12         Test is skipped for now while implementation of selection in CSS Regions
13         is still evolving.
14
15         * Layout/RegionsSelection.html: Added.
16         * Layout/resources/regions.js:
17         (.):
18         * Skipped:
19
20 2013-11-18  Ryosuke Niwa  <rniwa@webkit.org>
21
22         Simplify and reformat the output of performance tests inside test runners
23         https://bugs.webkit.org/show_bug.cgi?id=124496
24
25         Reviewed by Antti Koivisto.
26
27         As a preparation to support subtests for Dromaeo and DoYouEvenBench, simplify the output performance tests generate.
28         Also modernize the output to better support "metric" concept we introduced a while ago.
29
30         New output on Dromaeo/dom-attr looks like this:
31         -----------------------------------------------
32         Running 5 times
33         getAttribute -> [1105, 1108, 1134, 1137, 1154]
34         element.property -> [1634, 1655, 1685, 1696, 1723]
35         setAttribute -> [646.3536463536464, 651, 651, 656.3436563436563, 658]
36         element.property = value -> [934, 949, 963, 964, 974]
37         element.expando = value -> [419, 419.5804195804196, 421.57842157842157, 425.57442557442556, 429]
38         element.expando -> [501, 517, 519.4805194805194, 521.4785214785214, 525]
39
40             1: 117.40644785571585 runs/s
41             2: 118.84720469666297 runs/s
42             3: 119.80547640905021 runs/s
43             4: 120.51886194758805 runs/s
44             5: 121.51924380569295 runs/s
45
46         :Time -> [117.40644785571585, 118.84720469666297, 119.80547640905021, 120.51886194758805, 121.51924380569295] runs/s
47             mean: 119.619446942942 runs/s
48             median: 119.80547640905021 runs/s
49             stdev: 1.5769040458730506 runs/s
50             min: 117.40644785571585 runs/s
51             max: 121.51924380569295 runs/s
52         -----------------------------------------------
53
54         * Dromaeo/resources/dromaeorunner.js:
55         (DRT.progress): Use the new format for subtest reports.
56         * resources/runner.js:
57         (.): Declare verboseLogging, which is set to true outside of test runners.
58         (PerfTestRunner.logInfo): Use verboseLogging instead of directly checking window.testRunner.
59         (PerfTestRunner.logDetail): Added. Logs informative text with a label such as "mean: 123 s" with 4-space indentation.
60         (PerfTestRunner.logStatistics): Use logDetail.
61         (.start): Initialize verboseLogging. Also log "Running 20 times" as an informative log using logDetail.
62         (.ignoreWarmUpAndLog): Use logDetail for showing the progress. These logs were useless inside test runners anyway
63         because perftest didn't get to see any output until the test finished running.
64         (.finish): Call logStatistics with metric name as opposed to a label. Each metric name is now prefixed with ':' to be
65         distinguishable from subtests, making the new format forward compatible.
66
67 2013-11-18  Ryosuke Niwa  <rniwa@webkit.org>
68
69         [Performance tests] Interactive/SelectAll.html throws an exception
70         https://bugs.webkit.org/show_bug.cgi?id=124495
71
72         Reviewed by Antti Koivisto
73
74         Return a boolean indicating whether more values are needed or not in
75         PerfTestRunner.measureValueAsync so that runTest can terminate gracefully.
76
77         * Interactive/SelectAll.html:
78         (runTest): Don't schedule a timer for runTest if we've got enough values.
79         * resources/runner.js:
80         (PerfTestRunner.measureValueAsync): Returns true iff more values are needed.
81
82 2013-11-13  Antti Koivisto  <antti@apple.com>
83
84         This was supposed to test overflow-wrap:break-word instead of word-break:break-all.
85
86         Rubber-stamped by Andreas Kling.
87
88         * Layout/line-layout-simple.html:
89
90 2013-11-12  Andreas Kling  <akling@apple.com>
91
92         Remove body onload handler from html5-8266.html that was causing
93         the test to sometimes finish before doing anything interesting.
94
95         Unskip Parser/HTML5-8266-FullRender.html now that it's stable.
96
97         Rubber-stamped by Antti Koivisto.
98
99         * Parser/resources/html5-8266.html:
100         * Skipped:
101
102 2013-11-12  Andreas Kling  <akling@apple.com>
103
104         Neutralize external resource loads in the new HTML5 spec copy.
105
106         Skip Parser/HTML5-8266-FullRender.html until I can make it less flaky.
107
108         * Parser/resources/html5-8266.html:
109         * Skipped:
110
111 2013-11-12  Andreas Kling  <akling@apple.com>
112
113         Import a fresh version of the full HTML5 spec for perf testing.
114
115         Rubber-stamped by Antti Koivisto.
116
117         * Parser/HTML5-8266-FullRender.html: Added.
118         * Parser/HTML5-8266-ParseOnly.html: Added.
119         * Parser/resources/html5-8266.html: Added.
120
121 2013-11-09  Antti Koivisto  <antti@apple.com>
122
123         Add subtest for word-break:break-all to Layout/line-layout-simple.html
124         https://bugs.webkit.org/show_bug.cgi?id=124103
125
126         Reviewed by Andreas Kling.
127
128         * Layout/line-layout-simple.html:
129
130         Combination "white-space:pre-wrap; word-break:break-all" is common for pure text.
131
132 2013-11-08  Antti Koivisto  <antti@apple.com>
133
134         Add line layout performance test that exercises more cases
135         https://bugs.webkit.org/show_bug.cgi?id=124041
136         
137         Reviewed by Anders Carlsson.
138
139         The existing line-layout.html covers the most basic left-aligned case only.
140         Add a test with more coverage for things that are mostly not yet supported by the simple
141         line layout path:
142         
143         - centered text
144         - right aligned text
145         - justified text
146         - pre
147         - white-space:pre-wrap
148         - text with simple inlines
149         - text with br
150
151         * Layout/line-layout-simple.html: Added.
152
153 2013-10-25  Sergio Villar Senin  <svillar@igalia.com>
154
155         Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
156         https://bugs.webkit.org/show_bug.cgi?id=118620
157
158         Reviewed by Antti Koivisto.
159
160         From Blink r152960 by <ojan@chromium.org>
161
162         New performance test for layouts in flexboxes.
163
164         * Layout/flexbox-lots-of-data.html: Added.
165
166 2013-10-24  Commit Queue  <commit-queue@webkit.org>
167
168         Unreviewed, rolling out r157916.
169         http://trac.webkit.org/changeset/157916
170         https://bugs.webkit.org/show_bug.cgi?id=123274
171
172         Broke Layout/flexbox-lots-of-data.html on perfbot (Requested
173         by ap on #webkit).
174
175         * Layout/flexbox-lots-of-data.html: Removed.
176
177 2013-10-14  Sergio Villar Senin  <svillar@igalia.com>
178
179         Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
180         https://bugs.webkit.org/show_bug.cgi?id=118620
181
182         Reviewed by Antti Koivisto.
183
184         From Blink r152960 by <ojan@chromium.org>
185
186         New performance test for layouts in flexboxes.
187
188         * Layout/flexbox-lots-of-data.html: Added.
189
190 2013-10-06  Ryosuke Niwa  <rniwa@webkit.org>
191
192         DoYouEvenBench: Make it work on Internet Explorer 11 Release Preview
193         https://bugs.webkit.org/show_bug.cgi?id=122406
194
195         Reviewed by Darin Adler.
196
197         On Internet Explorer 11, $(elem).closest('li').data('id') fails to find the containig li of elem once
198         the first item is marked complete or deleted until we get back to the event loop in the jQuery/TodoMVC.
199         Worked around this limitation by overriding app.getTodo to use each item's id computed in advance.
200
201         Also use $.text instead of execCommand('InsertText') in FlightJS/MailClient since Internet Explorer
202         doesn't support execCommand('InsertText'). Also select the recipient to avoid exceptions.
203
204         * DoYouEvenBench/benchmark.html:
205
206 2013-10-05  Ryosuke Niwa  <rniwa@webkit.org>
207
208         DoYouEvenBench: Add Facebook's React TodoMVC test case
209         https://bugs.webkit.org/show_bug.cgi?id=122379
210
211         Reviewed by Andreas Kling.
212
213         Add React/TodoMVC as a new test case. Somehow we beat Firefox on this one as well.
214
215         * DoYouEvenBench/benchmark.html:
216         * DoYouEvenBench/todomvc/labs: Added.
217         * DoYouEvenBench/todomvc/labs/architecture-examples: Added.
218         * DoYouEvenBench/todomvc/labs/architecture-examples/react: Added.
219         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower.json: Added.
220         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components: Added.
221         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director: Added.
222         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Added.
223         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Added.
224         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build: Added.
225         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js: Added.
226         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js: Added.
227         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js: Added.
228         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react: Added.
229         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Added.
230         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Added.
231         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Added.
232         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Added.
233         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common: Added.
234         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Added.
235         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Added.
236         * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Added.
237         * DoYouEvenBench/todomvc/labs/architecture-examples/react/index.html: Added.
238         * DoYouEvenBench/todomvc/labs/architecture-examples/react/js: Added.
239         * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/app.jsx: Added.
240         * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/footer.jsx: Added.
241         * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Added.
242         * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/utils.jsx: Added.
243         * DoYouEvenBench/todomvc/labs/architecture-examples/react/readme.md: Added.
244
245 2013-09-25  Ryosuke Niwa  <rniwa@webkit.org>
246
247         DoYouEvenBench: Add a test case for FlightJS
248         https://bugs.webkit.org/show_bug.cgi?id=121926
249
250         Reviewed by Antti Koivisto.
251
252         Add a FlightJS test case.
253
254         * DoYouEvenBench/benchmark.html:
255         * DoYouEvenBench/benchmark.js:
256         * DoYouEvenBench/flightjs-example-app: Added.
257         * DoYouEvenBench/flightjs-example-app/LICENSE.md: Added.
258         * DoYouEvenBench/flightjs-example-app/README.md: Added.
259         * DoYouEvenBench/flightjs-example-app/app: Added.
260         * DoYouEvenBench/flightjs-example-app/app/boot: Added.
261         * DoYouEvenBench/flightjs-example-app/app/boot/page.js: Added.
262         * DoYouEvenBench/flightjs-example-app/app/component_data: Added.
263         * DoYouEvenBench/flightjs-example-app/app/component_data/compose_box.js: Added.
264         * DoYouEvenBench/flightjs-example-app/app/component_data/mail_items.js: Added.
265         * DoYouEvenBench/flightjs-example-app/app/component_data/move_to.js: Added.
266         * DoYouEvenBench/flightjs-example-app/app/component_ui: Added.
267         * DoYouEvenBench/flightjs-example-app/app/component_ui/compose_box.js: Added.
268         * DoYouEvenBench/flightjs-example-app/app/component_ui/folders.js: Added.
269         * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_controls.js: Added.
270         * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_items.js: Added.
271         * DoYouEvenBench/flightjs-example-app/app/component_ui/move_to_selector.js: Added.
272         * DoYouEvenBench/flightjs-example-app/app/component_ui/with_select.js: Added.
273         * DoYouEvenBench/flightjs-example-app/app/css: Added.
274         * DoYouEvenBench/flightjs-example-app/app/css/custom.css: Added.
275         * DoYouEvenBench/flightjs-example-app/app/data.js: Added.
276         * DoYouEvenBench/flightjs-example-app/app/templates.js: Added.
277         * DoYouEvenBench/flightjs-example-app/components: Added.
278         * DoYouEvenBench/flightjs-example-app/components/bootstrap: Added.
279         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css: Added.
280         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Added.
281         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Added.
282         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.css: Added.
283         * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Added.
284         * DoYouEvenBench/flightjs-example-app/components/bootstrap/img: Added.
285         * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Added.
286         * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Added.
287         * DoYouEvenBench/flightjs-example-app/components/bootstrap/js: Added.
288         * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.js: Added.
289         * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Added.
290         * DoYouEvenBench/flightjs-example-app/components/es5-shim: Added.
291         * DoYouEvenBench/flightjs-example-app/components/es5-shim/.gitignore: Added.
292         * DoYouEvenBench/flightjs-example-app/components/es5-shim/CHANGES: Added.
293         * DoYouEvenBench/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Added.
294         * DoYouEvenBench/flightjs-example-app/components/es5-shim/LICENSE: Added.
295         * DoYouEvenBench/flightjs-example-app/components/es5-shim/README.md: Added.
296         * DoYouEvenBench/flightjs-example-app/components/es5-shim/component.json: Added.
297         * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.js: Added.
298         * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.min.js: Added.
299         * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.js: Added.
300         * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.min.js: Added.
301         * DoYouEvenBench/flightjs-example-app/components/es5-shim/package.json: Added.
302         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests: Added.
303         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers: Added.
304         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Added.
305         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Added.
306         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Added.
307         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/index.html: Added.
308         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib: Added.
309         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Added.
310         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Added.
311         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Added.
312         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Added.
313         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Added.
314         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec: Added.
315         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Added.
316         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Added.
317         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Added.
318         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Added.
319         * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Added.
320         * DoYouEvenBench/flightjs-example-app/components/flight: Added.
321         * DoYouEvenBench/flightjs-example-app/components/flight/.travis.yml: Added.
322         * DoYouEvenBench/flightjs-example-app/components/flight/lib: Added.
323         * DoYouEvenBench/flightjs-example-app/components/flight/lib/advice.js: Added.
324         * DoYouEvenBench/flightjs-example-app/components/flight/lib/component.js: Added.
325         * DoYouEvenBench/flightjs-example-app/components/flight/lib/compose.js: Added.
326         * DoYouEvenBench/flightjs-example-app/components/flight/lib/index.js: Added.
327         * DoYouEvenBench/flightjs-example-app/components/flight/lib/logger.js: Added.
328         * DoYouEvenBench/flightjs-example-app/components/flight/lib/registry.js: Added.
329         * DoYouEvenBench/flightjs-example-app/components/flight/lib/utils.js: Added.
330         * DoYouEvenBench/flightjs-example-app/components/flight/tools: Added.
331         * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug: Added.
332         * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug/debug.js: Added.
333         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight: Added.
334         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/LICENSE.md: Added.
335         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/README.md: Added.
336         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/bower.json: Added.
337         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib: Added.
338         * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Added.
339         * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery: Added.
340         * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib: Added.
341         * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Added.
342         * DoYouEvenBench/flightjs-example-app/components/jquery: Added.
343         * DoYouEvenBench/flightjs-example-app/components/jquery/component.json: Added.
344         * DoYouEvenBench/flightjs-example-app/components/jquery/composer.json: Added.
345         * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.js: Added.
346         * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.min.js: Added.
347         * DoYouEvenBench/flightjs-example-app/components/mustache: Added.
348         * DoYouEvenBench/flightjs-example-app/components/mustache/mustache.js: Added.
349         * DoYouEvenBench/flightjs-example-app/components/requirejs: Added.
350         * DoYouEvenBench/flightjs-example-app/components/requirejs/require.js: Added.
351         * DoYouEvenBench/flightjs-example-app/index.html: Added.
352         * DoYouEvenBench/flightjs-example-app/karma.conf.js: Added.
353         * DoYouEvenBench/flightjs-example-app/package.json: Added.
354         * DoYouEvenBench/flightjs-example-app/requireMain.js: Added.
355
356 2013-09-19  Ryosuke Niwa  <rniwa@webkit.org>
357
358         DoYouEvenBench: Indentations in benchmark.js and benchmark.html are all messed up
359         https://bugs.webkit.org/show_bug.cgi?id=121597
360
361         Reviewed by Anders Carlsson.
362
363         Fixed indentations.
364
365         * DoYouEvenBench/benchmark.html:
366         * DoYouEvenBench/benchmark.js:
367         (SimplePromise.prototype.resolve.else):
368         (SimplePromise.prototype.resolve):
369         (BenchmarkRunner.waitForElement.resolveIfReady):
370         (BenchmarkRunner.waitForElement):
371         (BenchmarkRunner._waitAndWarmUp.Fibonacci):
372         (BenchmarkRunner._finalize):
373
374 2013-09-19  Ryosuke Niwa  <rniwa@webkit.org>
375
376         Add an AngularJS test to DoYouEvenBench
377         https://bugs.webkit.org/show_bug.cgi?id=121595
378
379         Reviewed by Antti Koivisto.
380
381         * DoYouEvenBench/benchmark.html:
382         * DoYouEvenBench/todomvc/architecture-examples/angularjs: Added.
383         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower.json: Added.
384         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components: Added.
385         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular: Added.
386         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks: Added.
387         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Added.
388         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Added.
389         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common: Added.
390         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Added.
391         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Added.
392         * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Added.
393         * DoYouEvenBench/todomvc/architecture-examples/angularjs/index.html: Added.
394         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js: Added.
395         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/app.js: Added.
396         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers: Added.
397         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Added.
398         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives: Added.
399         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Added.
400         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Added.
401         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Added.
402         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services: Added.
403         * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Added.
404         * DoYouEvenBench/todomvc/architecture-examples/angularjs/readme.md: Added.
405         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test: Added.
406         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config: Added.
407         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Added.
408         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/package.json: Added.
409         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/readme.md: Added.
410         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit: Added.
411         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Added.
412         * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Added.
413
414 2013-09-17  Ryosuke Niwa  <rniwa@webkit.org>
415
416         Add a not completely unrealistic DOM Benchmark
417         https://bugs.webkit.org/show_bug.cgi?id=121361
418
419         Reviewed by Filip Pizlo.
420
421         Add a DOM benchmark based on TodoMVC for vanilla JS, Ember.js, Backbone.js, and jQuery.
422         We'll add more frameworks and demo apps as we go.
423
424         * DoYouEvenBench: Added.
425         * DoYouEvenBench/benchmark.html: Added.
426         * DoYouEvenBench/benchmark.js: Added.
427         (SimplePromise): 
428         (SimplePromise.prototype.then):
429         (SimplePromise.prototype.resolve.else):
430         (SimplePromise.prototype.resolve):
431         (BenchmarkRunner.suite):
432         (BenchmarkRunner.waitForElement.resolveIfReady):
433         (BenchmarkRunner.waitForElement):
434         (BenchmarkRunner._removeFrame):
435         (BenchmarkRunner._appendFrame):
436         (BenchmarkRunner._waitAndWarmUp.Fibonacci):
437         (BenchmarkRunner._testName):
438         (BenchmarkRunner._testItemId):
439         (BenchmarkRunner.listSuites.button.onclick):
440         (BenchmarkRunner.listSuites.callNextStep):
441         (BenchmarkRunner.listSuites):
442         (BenchmarkState):
443         (BenchmarkState.prototype.currentSuite):
444         (BenchmarkState.prototype.currentTest):
445         (BenchmarkState.prototype.next):
446         (BenchmarkState.prototype.isFirstTest):
447         (BenchmarkState.prototype.prepareCurrentSuite.frame.onload):
448         (BenchmarkRunner.step):
449         (BenchmarkRunner._runTestAndRecordResults):
450         (BenchmarkRunner._finalize):
451         * DoYouEvenBench/todomvc: Added.
452         * DoYouEvenBench/todomvc/architecture-examples: Added.
453         * DoYouEvenBench/todomvc/architecture-examples/backbone: Added.
454         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower.json: Added.
455         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components: Added.
456         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone: Added.
457         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage: Added.
458         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Added.
459         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Added.
460         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery: Added.
461         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Added.
462         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common: Added.
463         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Added.
464         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Added.
465         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Added.
466         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore: Added.
467         * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Added.
468         * DoYouEvenBench/todomvc/architecture-examples/backbone/index.html: Added.
469         * DoYouEvenBench/todomvc/architecture-examples/backbone/js: Added.
470         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/app.js: Added.
471         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections: Added.
472         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections/todos.js: Added.
473         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models: Added.
474         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models/todo.js: Added.
475         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers: Added.
476         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers/router.js: Added.
477         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views: Added.
478         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/app-view.js: Added.
479         * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/todo-view.js: Added.
480         * DoYouEvenBench/todomvc/architecture-examples/backbone/readme.md: Added.
481         * DoYouEvenBench/todomvc/architecture-examples/emberjs: Added.
482         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower.json: Added.
483         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components: Added.
484         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember: Added.
485         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter: Added.
486         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Added.
487         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Added.
488         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars: Added.
489         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Added.
490         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery: Added.
491         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Added.
492         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common: Added.
493         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Added.
494         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Added.
495         * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Added.
496         * DoYouEvenBench/todomvc/architecture-examples/emberjs/index.html: Added.
497         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js: Added.
498         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/app.js: Added.
499         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers: Added.
500         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Added.
501         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Added.
502         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs: Added.
503         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Added.
504         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models: Added.
505         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/store.js: Added.
506         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/todo.js: Added.
507         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views: Added.
508         * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Added.
509         * DoYouEvenBench/todomvc/architecture-examples/emberjs/readme.md: Added.
510         * DoYouEvenBench/todomvc/architecture-examples/emberjs/test.html: Added.
511         * DoYouEvenBench/todomvc/architecture-examples/jquery: Added.
512         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower.json: Added.
513         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components: Added.
514         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars: Added.
515         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Added.
516         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery: Added.
517         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Added.
518         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common: Added.
519         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Added.
520         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Added.
521         * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Added.
522         * DoYouEvenBench/todomvc/architecture-examples/jquery/css: Added.
523         * DoYouEvenBench/todomvc/architecture-examples/jquery/css/app.css: Added.
524         * DoYouEvenBench/todomvc/architecture-examples/jquery/index.html: Added.
525         * DoYouEvenBench/todomvc/architecture-examples/jquery/js: Added.
526         * DoYouEvenBench/todomvc/architecture-examples/jquery/js/app.js: Added.
527         * DoYouEvenBench/todomvc/architecture-examples/jquery/readme.md: Added.
528         * DoYouEvenBench/todomvc/license.md: Added.
529         * DoYouEvenBench/todomvc/readme.md: Added.
530         * DoYouEvenBench/todomvc/vanilla-examples: Added.
531         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs: Added.
532         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower.json: Added.
533         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components: Added.
534         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common: Added.
535         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Added.
536         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Added.
537         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Added.
538         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/index.html: Added.
539         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js: Added.
540         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/app.js: Added.
541         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/controller.js: Added.
542         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/helpers.js: Added.
543         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/model.js: Added.
544         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/store.js: Added.
545         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/view.js: Added.
546         * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/readme.md: Added.
547         * Skipped:
548
549 2013-09-04  Filip Pizlo  <fpizlo@apple.com>
550
551         Introduce a version of SunSpider that runs for a really long time (about 1 sec on my machine)
552
553         Rubber stamped by Mark Hahnenberg.
554         
555         This isn't meant for serious VM-to-VM performance comparisons, but it is useful
556         to see how these benchmarks behave when they're completely warmed up.
557
558         * LongSpider: Added.
559         * LongSpider/3d-cube.js: Added.
560         (DrawLine):
561         (CalcCross):
562         (CalcNormal):
563         (CreateP):
564         (MMulti):
565         (VMulti):
566         (VMulti2):
567         (MAdd):
568         (Translate):
569         (RotateX):
570         (RotateY):
571         (RotateZ):
572         (DrawQube):
573         (Loop):
574         (Init):
575         * LongSpider/3d-morph.js: Added.
576         (loops.3500.nx.120.nz.120.morph):
577         * LongSpider/3d-raytrace.js: Added.
578         (createVector):
579         (sqrLengthVector):
580         (lengthVector):
581         (addVector):
582         (subVector):
583         (scaleVector):
584         (normaliseVector):
585         (add):
586         (sub):
587         (scalev):
588         (dot):
589         (scale):
590         (cross):
591         (normalise):
592         (transformMatrix):
593         (invertMatrix):
594         (Triangle):
595         (Triangle.prototype.intersect):
596         (Scene):
597         (Scene.prototype.intersect):
598         (Scene.prototype.blocked):
599         (Camera):
600         (Camera.prototype.generateRayPair):
601         (renderRows):
602         (Camera.prototype.render):
603         (raytraceScene.floorShader):
604         (raytraceScene):
605         (arrayToCanvasCommands):
606         * LongSpider/access-binary-trees.js: Added.
607         (TreeNode):
608         (TreeNode.prototype.itemCheck):
609         (bottomUpTree):
610         * LongSpider/access-fannkuch.js: Added.
611         (fannkuch):
612         * LongSpider/access-nbody.js: Added.
613         (Body):
614         (Body.prototype.offsetMomentum):
615         (Jupiter):
616         (Saturn):
617         (Uranus):
618         (Neptune):
619         (Sun):
620         (NBodySystem):
621         (NBodySystem.prototype.advance):
622         (NBodySystem.prototype.energy):
623         * LongSpider/access-nsieve.js: Added.
624         (pad):
625         (nsieve):
626         (sieve):
627         * LongSpider/bitops-3bit-bits-in-byte.js: Added.
628         (fast3bitlookup):
629         (TimeFunc):
630         * LongSpider/bitops-bits-in-byte.js: Added.
631         (bitsinbyte):
632         (TimeFunc):
633         * LongSpider/bitops-nsieve-bits.js: Added.
634         (pad):
635         (primes):
636         (sieve):
637         * LongSpider/controlflow-recursive.js: Added.
638         (ack):
639         (fib):
640         (tak):
641         * LongSpider/crypto-aes.js: Added.
642         (Cipher):
643         (SubBytes):
644         (ShiftRows):
645         (MixColumns):
646         (AddRoundKey):
647         (KeyExpansion):
648         (SubWord):
649         (RotWord):
650         (AESEncryptCtr):
651         (AESDecryptCtr):
652         (escCtrlChars):
653         * LongSpider/crypto-md5.js: Added.
654         (hex_md5):
655         (b64_md5):
656         (str_md5):
657         (hex_hmac_md5):
658         (b64_hmac_md5):
659         (str_hmac_md5):
660         (md5_vm_test):
661         (core_md5):
662         (md5_cmn):
663         (md5_ff):
664         (md5_gg):
665         (md5_hh):
666         (md5_ii):
667         (core_hmac_md5):
668         (safe_add):
669         (bit_rol):
670         (str2binl):
671         (binl2str):
672         (binl2hex):
673         (binl2b64):
674         * LongSpider/crypto-sha1.js: Added.
675         (hex_sha1):
676         (b64_sha1):
677         (str_sha1):
678         (hex_hmac_sha1):
679         (b64_hmac_sha1):
680         (str_hmac_sha1):
681         (sha1_vm_test):
682         (core_sha1):
683         (sha1_ft):
684         (sha1_kt):
685         (core_hmac_sha1):
686         (safe_add):
687         (rol):
688         (str2binb):
689         (binb2str):
690         (binb2hex):
691         (binb2b64):
692         * LongSpider/date-format-tofte.js: Added.
693         (arrayExists):
694         (.a):
695         (.A):
696         (.B):
697         (.d):
698         (.D):
699         (.F):
700         (.g):
701         (.G):
702         (.h):
703         (.H):
704         (.i):
705         (.j):
706         (.l):
707         (.L):
708         (.m):
709         (.M):
710         (.n):
711         (.O):
712         (.r):
713         (.S):
714         (.s):
715         (.t):
716         (.U):
717         (.W):
718         (.w):
719         (.Y):
720         (.y):
721         (.z):
722         (Date.prototype.formatDate):
723         * LongSpider/date-format-xparb.js: Added.
724         (Date.prototype.dateFormat):
725         (Date.createNewFormat):
726         (Date.getFormatCode):
727         (Date.parseDate):
728         (Date.createParser):
729         (Date.formatCodeToRegex):
730         (Date.prototype.getTimezone):
731         (Date.prototype.getGMTOffset):
732         (Date.prototype.getDayOfYear):
733         (Date.prototype.getWeekOfYear):
734         (Date.prototype.isLeapYear):
735         (Date.prototype.getFirstDayOfMonth):
736         (Date.prototype.getLastDayOfMonth):
737         (Date.prototype.getDaysInMonth):
738         (Date.prototype.getSuffix):
739         (String.escape):
740         * LongSpider/math-cordic.js: Added.
741         (FIXED):
742         (FLOAT):
743         (DEG2RAD):
744         (cordicsincos):
745         (cordic):
746         * LongSpider/math-partial-sums.js: Added.
747         (partial):
748         * LongSpider/math-spectral-norm.js: Added.
749         (A):
750         (Au):
751         (Atu):
752         (AtAu):
753         (spectralnorm):
754         * LongSpider/string-base64.js: Added.
755         (toBase64):
756         (base64ToString):
757         * LongSpider/string-fasta.js: Added.
758         (rand):
759         (makeCumulative):
760         (fastaRepeat):
761         (fastaRandom):
762         * LongSpider/string-tagcloud.js: Added.
763         (.Array.prototype.toJSONString):
764         (.Boolean.prototype.toJSONString):
765         (.Date.prototype.toJSONString):
766         (.Number.prototype.toJSONString):
767         (.Object.prototype.toJSONString):
768         (.):
769
770 2013-06-10  Radu Stavila  <stavila@adobe.com>
771
772         [CSS Regions] Rename region-overflow to region-fragment
773         https://bugs.webkit.org/show_bug.cgi?id=117397
774
775         Renamed -webkit-region-overflow to -webkit-region-fragment according to the new working draft
776         at http://www.w3.org/TR/2013/WD-css3-regions-20130528/#the-region-fragment-property
777
778         Reviewed by Alexander Pavlov.
779
780         * Layout/resources/regions.css:
781
782 2013-06-05  Zan Dobersek  <zdobersek@igalia.com>
783
784         Move MemoryInfo under window.internals
785         https://bugs.webkit.org/show_bug.cgi?id=117197
786
787         Reviewed by Ryosuke Niwa.
788
789         * resources/runner.js: Remove the setMemoryEnabled call, it's not required anymore as the memory
790         info is now accessed through window.internals and doesn't need the setting to be enabled to work.
791
792 2013-05-30  Ryosuke Niwa  <rniwa@webkit.org>
793
794         Web Inspector: tests in PerformanceTests/inspector/ are timing out
795         https://bugs.webkit.org/show_bug.cgi?id=77024
796
797         Reviewed by Andreas Kling.
798
799         These tests have been disabled for ages and don't conform to the standard format.
800
801         * Skipped:
802         * inspector: Removed.
803         * inspector/console-300-lines.html: Removed.
804         * inspector/first-open-elements.html: Removed.
805         * inspector/first-open-resources.html: Removed.
806         * inspector/first-open-scripts.html.broken: Removed.
807         * inspector/heap-snapshot-advanced.html: Removed.
808         * inspector/heap-snapshot-performance-test.js: Removed.
809         * inspector/heap-snapshot.html: Removed.
810         * inspector/inspector-startup-time.html: Removed.
811         * inspector/network-append-30-requests.html.broken: Removed.
812         * inspector/performance-test.js: Removed.
813         * inspector/show-panel.html.broken: Removed.
814
815 2013-05-27  Benjamin Poulain  <benjamin@webkit.org>
816
817         Add a balanced benchmark for QuerySelector
818         https://bugs.webkit.org/show_bug.cgi?id=116811
819
820         Reviewed by Sam Weinig.
821
822         The goal of this benchmark is to have an overview of querySelector as typically used
823         by webpages.
824
825         It uses queries similar to what is used by popular websites and applies somewhat
826         similar weighting for each type of query.
827
828         The tree used for the queries is intentionally kept simple to ensure we measure QuerySelector
829         a not purely the overhead of traversal.
830
831         * CSS/QuerySelector.html: Added.
832         * CSS/resources/query-selector.html: Added.
833
834 2013-05-18  Ryosuke Niwa  <rniwa@webkit.org>
835
836         Add a performance test for copying
837         https://bugs.webkit.org/show_bug.cgi?id=116394
838
839         Reviewed by Andreas Kling.
840
841         Added. We're going to skip this test by default since it's such a microbenchmark, and also because
842         it currently takes 30 minutes to run. As insane as it sounds, each copy takes rouhgly 57 seconds.
843
844         Running Interactive/CopyAll.html (1 of 1)
845         RESULT Interactive: CopyAll: Time= 57618.05 ms
846         median= 57135.0 ms, stdev= 1542.07271571 ms, min= 55095.0 ms, max= 60913.0 ms
847         RESULT Interactive: CopyAll: JSHeap= 102811.2 bytes
848         median= 103272.0 bytes, stdev= 1115.28148913 bytes, min= 100648.0 bytes, max= 103504.0 bytes
849         RESULT Interactive: CopyAll: Malloc= 446408712.0 bytes
850         median= 459156772.0 bytes, stdev= 20007346.3266 bytes, min= 415564040.0 bytes, max= 462011928.0 bytes
851         Finished: 1766.883236 s
852
853         * Interactive/CopyAll.html: Added.
854         * Skipped:
855
856 2013-05-13  Seokju Kwon  <seokju.kwon@gmail.com>
857
858         Web Inspector: Get rid of native-memory-snapshot in performance test
859         https://bugs.webkit.org/show_bug.cgi?id=116013
860
861         Reviewed by Andreas Kling.
862
863         Remove native-memory-snapshot.html from PerformanceTests.
864
865         * inspector/native-memory-snapshot.html: Removed.
866         * inspector/performance-test.js:
867         (initialize_TimeTracker.Timer):
868         (initialize_TimeTracker.Timer.prototype._dump):
869         (initialize_TimeTracker.InspectorTest.runPerformanceTest):
870
871 2013-04-10  Benjamin Poulain  <bpoulain@apple.com>
872
873         Mass remove all the empty directories
874
875         Rubberstamped by Ryosuke Niwa.
876
877         * Bindings/resources: Removed.
878
879 2013-04-02  Glenn Adams  <glenn@skynav.com>
880
881         Need japanese line layout performance test
882         https://bugs.webkit.org/show_bug.cgi?id=113811
883
884         Reviewed by Ryosuke Niwa.
885
886         Will be used by https://bugs.webkit.org/show_bug.cgi?id=105692 to test potential performance regression
887         for Japanese (and other CJK) line break changes.
888
889         * Layout/LineLayoutJapanese.html: Added.
890         * Skipped: Skip this test by default.
891
892 2013-03-29  Andrei Bucur  <abucur@adobe.com>
893
894         [CSS Regions] Add performance tests
895         https://bugs.webkit.org/show_bug.cgi?id=113303
896
897         Reviewed by Antti Koivisto.
898
899         Add simple performance tests for regions, without nested named flows: a region chain and a flow article.
900         The regions.js script is used to generate the tests and can set the following parameters: the number of regions,
901         the number of paragraphs, the regions width, height, max-height and the propability of a forced break after a paragraph.
902
903         The tests are skipped for now. They should be enabled once the regions performance is stable enough to create a baseline.
904
905         * Layout/RegionsAuto.html: Added. A few regions with a short article. The regions have auto-height and some
906         paragraphs (80%) have forced breaks after. Stress test for the auto-height algorithm.
907         * Layout/RegionsAutoMaxHeight.html: Added. A lot of regions with auto-height and max-height. Tests the impact of
908         max-height on the auto-height algorithm.
909         * Layout/RegionsFixed.html: Added. A lot of regions with a long article. Some paragraphs (50%) have forced breaks after.
910         Stress test for the regions layout algorithm.
911         * Layout/RegionsFixedShort.html: Added. A lot of short regions with a long content. Tests the impact of unforced breaks
912         on the layout speed.
913         * Layout/resources/regions.css: Added.
914         (.articleInFlow):
915         (.articleNone):
916         (.region):
917         (.contentParagraph):
918         (.breakAfter):
919         (.regionContainer):
920         * Layout/resources/regions.js: Added.
921         (.):
922         * Skipped:
923
924 2013-03-26  Ryosuke Niwa  <rniwa@webkit.org>
925
926         Add a performance tests for selecting all content in a document
927         https://bugs.webkit.org/show_bug.cgi?id=113358
928
929         Reviewed by Levi Weintraub.
930
931         Add a performance test for selecting all. We wait for paint to happen by setTimeout(~, 0).
932
933         Example outputs:
934             RESULT Interactive: SelectAll: Time= 652.6 ms
935             median= 644.5 ms, stdev= 54.6177144967 ms, min= 599.0 ms, max= 773.0 ms
936
937             RESULT Interactive: SelectAll: Time= 654.4 ms
938             median= 633.5 ms, stdev= 55.9223145368 ms, min= 600.0 ms, max= 769.0 ms
939
940             RESULT Interactive: SelectAll: Time= 657.9 ms
941             median= 640.0 ms, stdev= 54.1420159833 ms, min= 604.0 ms, max= 774.0 ms
942
943         * Interactive/SelectAll.html: Added.
944         * Skipped:
945
946 2013-03-19  Alexei Filippov  <alph@chromium.org>
947
948         Web Inspector: Fix heap profiler performance tests.
949         https://bugs.webkit.org/show_bug.cgi?id=112701
950
951         Reviewed by Yury Semikhatsky.
952
953         The tests were broken by profile types refactoring.
954
955         * inspector/heap-snapshot-performance-test.js:
956         (test.performanceTest.step0):
957         (test.performanceTest.step1):
958
959 2013-03-05  Eric Seidel  <eric@webkit.org>
960
961         Add html-parser-threaded perf test now that the threaded parser is enabled by default
962         https://bugs.webkit.org/show_bug.cgi?id=111200
963
964         Reviewed by Ryosuke Niwa.
965
966         The old srcdoc test no longer triggers the threaded parser due to compatibility fixes.
967
968         * Parser/html-parser-threaded.html: Renamed from PerformanceTests/Parser/html-parser-srcdoc.html.
969         * Skipped: Unfortunately this new test is still skipped too.
970
971 2013-03-04  Eric Seidel  <eric@webkit.org>
972
973         Add PerformanceTest for document startup via iframe append/remove
974         https://bugs.webkit.org/show_bug.cgi?id=111389
975
976         Reviewed by Kentaro Hara.
977
978         We'd like pages with lots of iframes to be fast.
979         This test shows that at least for V8/Chromium we spend
980         all our time booting v8.
981
982         On my 32-core linux machine I see about 70 runs/sec in
983         Release and 5 runs/sec in Debug.
984
985         * DOM/iframe-append-remove.html: Added.
986
987 2013-03-03  Ryosuke Niwa  <rniwa@webkit.org>
988
989         Some perf. tests have variances that differ greatly between runs
990         https://bugs.webkit.org/show_bug.cgi?id=97510
991
992         Reviewed by Benjamin Poulain.
993
994         In order to control the number of iterations and processes to use from run-perf-tests, always use 20
995         iterations on all tests except Dromaeo, where even doing 5 iterations is prohibitively slow, by default.
996         Without this change, it'll become extremely hard for us to tweak the number of iterations and processes
997         to use from run-perf-tests.
998
999         * Animation/balls.html:
1000         * DOM/DOMTable.html:
1001         * DOM/resources/dom-perf.js:
1002         (runBenchmarkSuite.PerfTestRunner.measureTime):
1003         * Dromaeo/resources/dromaeorunner.js:
1004         * Layout/floats_100_100.html:
1005         * Layout/floats_100_100_nested.html:
1006         * Layout/floats_20_100.html:
1007         * Layout/floats_20_100_nested.html:
1008         * Layout/floats_2_100.html:
1009         * Layout/floats_2_100_nested.html:
1010         * Layout/floats_50_100.html:
1011         * Layout/floats_50_100_nested.html:
1012         * Layout/subtree-detaching.html:
1013         * Parser/html5-full-render.html:
1014         * SVG/SvgHitTesting.html:
1015         * resources/runner.js:
1016         * resources/results-template.html:
1017
1018 2013-02-25  Ryosuke Niwa  <rniwa@webkit.org>
1019
1020         Use perf.webkit.org JSON format in results page
1021         https://bugs.webkit.org/show_bug.cgi?id=110842
1022
1023         Reviewed by Benjamin Poulain.
1024
1025         Updated the results page template to use the new JSON format.
1026
1027         Since new JSON format doesn't contain statistics such as stdev and min, added statistics.js to compute
1028         these values. Also use 95% percentile confidence interval instead of standard deviation in various places.
1029
1030         * resources/results-template.html: Added statistics.js as dependency.
1031         (TestResult): Updated to take a metric instead of its test. Replaced stdev() with confidenceIntervalDelta()
1032         now that we have a fancy Statistics class.
1033
1034         (TestRun.webkitRevision):
1035         (PerfTestMetric): Renamed from PerfTest since this object now encapsulates each measurement (such as time,
1036         JS heap, and malloc) in test. Also added a conversion table from a metric name to a unit since new format
1037         doesn't contain units.
1038         (PerfTestMetric.name): Updated to compute the full metric name from test name and metric name, matching
1039         the old behavior.
1040         (PerfTestMetric.isMemoryTest): Explicitly look for 'JSHeap' and 'Malloc' tests.
1041         (PerfTestMetric.smallerIsBetter):
1042
1043         (attachPlot): Deleted the code to deal with tests that don't provide individual iteration measurement
1044         since such tests no longer exist. Also fixed up the code compute y-axis range.
1045
1046         (createTableRow.markupForRun): Updated to use confidenceIntervalDelta() instead of stdev().
1047         
1048         (init.addTests): Added. Recursively add metrics.
1049
1050         * resources/statistics.js: Added. Imported from perf.webkit.org.
1051         (Statistics.max):
1052         (Statistics.min):
1053         (Statistics.sum):
1054         (Statistics.squareSum):
1055         (Statistics.sampleStandardDeviation):
1056         (Statistics.supportedConfidenceLevels):
1057         (Statistics.confidenceIntervalDelta):
1058         (Statistics.confidenceInterval):
1059
1060 2013-02-11  Alexei Filippov  <alph@chromium.org>
1061
1062         Web Inspector: Split Profiler domain in protocol into Profiler and HeapProfiler
1063         https://bugs.webkit.org/show_bug.cgi?id=108653
1064
1065         Reviewed by Yury Semikhatsky.
1066
1067         Currently CPU and heap profilers share the same domain 'Profiler' in the protocol.
1068         In fact these two profile types have not too much in common. So put each into its own domain.
1069         It should also help when Profiles panel gets split into several tools.
1070         This is the phase 1 which adds InspectorHeapProfilerAgent but doesn't
1071         change the original InspectorProfilerAgent.
1072
1073         * inspector/heap-snapshot-performance-test.js:
1074         (test.performanceTest.cleanup):
1075
1076 2013-02-05  Dominik R√∂ttsches  <dominik.rottsches@intel.com>
1077
1078         Add a performance test for arabic line breaking
1079         https://bugs.webkit.org/show_bug.cgi?id=108948
1080
1081         Reviewed by Eric Seidel.
1082
1083         Adding a perfomance test based to exercise the complex
1084         font path used in rendering arabic script.
1085
1086         * Layout/ArabicLineLayout.html: Added.
1087         * Skipped: New test skipped by default as per Ryosuke's request.
1088
1089 2013-01-23  Yury Semikhatsky  <yurys@chromium.org>
1090
1091         Web Inspector: some measurements are missing in PerformanceTests/inspector/heap-*.html
1092         https://bugs.webkit.org/show_bug.cgi?id=107687
1093
1094         Reviewed by Pavel Feldman.
1095
1096         * inspector/heap-snapshot-performance-test.js: override methods on JSHeapSnapshot instead
1097         of HeapSnapshot, otherwise overrides from JSHeapSnapshot will rule.
1098
1099 2013-01-18  Ryosuke Niwa  <rniwa@webkit.org>
1100
1101         Skip DOM/TraverseChildNodes.html as intended in r140070.
1102
1103         * Skipped:
1104
1105 2013-01-17  Dominic Cooney  <dominicc@chromium.org>
1106
1107         Unreviewed, re-land r140051.
1108
1109         I overzealously rolled this out; the test was intended to be
1110         skipped, but was not skipped because of a typo in Skipped. See
1111         <https://bugs.webkit.org/show_bug.cgi?id=107210>
1112
1113         * Parser/html-parser-srcdoc.html: Added.
1114         * Skipped: Big-P Parser.
1115
1116 2013-01-17  Sheriff Bot  <webkit.review.bot@gmail.com>
1117
1118         Unreviewed, rolling out r140051.
1119         http://trac.webkit.org/changeset/140051
1120         https://bugs.webkit.org/show_bug.cgi?id=107210
1121
1122         html-parser-srcdoc.html failing on Chromium Linux Perf and
1123         Chromium Mac Perf with a lot of error spew about blocked
1124         script execution in 'about:srcdoc' (Requested by dominicc on
1125         #webkit).
1126
1127         * Parser/html-parser-srcdoc.html: Removed.
1128         * Skipped:
1129
1130 2013-01-16  Ryosuke Niwa  <rniwa@webkit.org>
1131
1132         Remove NodeListsNodeData when it's no longer needed
1133         https://bugs.webkit.org/show_bug.cgi?id=107074
1134
1135         Reviewed by Darin Adler.
1136
1137         Added a micro benchmark to see the benefit of removing NodeListsNodeData.
1138         The test traverses all elements in the html5 specification page and accesses childNodes.
1139
1140         Don't enable this test for now since it's really a micro benchmark specifically
1141         designed to test this patch.
1142
1143         * DOM/TraverseChildNodes.html: Added.
1144         * Skipped: Don't enable newly added test by default.
1145         * resources/results-template.html: Compare against the unscaled unit (e.g. "bytes") as
1146         opposed to scaled units such as "K bytes".
1147         * resources/runner.js:
1148         (.start): Moved the code to call currentTest.setup from measureRunsPerSecondOnce so that
1149         it'll be ran for all test types, namely of PerfTestRunner.measureTime.
1150         (.measureRunsPerSecondOnce):
1151
1152 2013-01-17  Eric Seidel  <eric@webkit.org>
1153
1154         Add a version of the html-parser benchmark which uses srcdoc instead of document.write so it tests the threaded parser
1155         https://bugs.webkit.org/show_bug.cgi?id=107158
1156
1157         Reviewed by Ryosuke Niwa.
1158
1159         Currently this test even opts-in to the threaded parser if available.
1160         We'll remove that line when the threaded parser becomes default or goes away.
1161
1162         * Parser/html-parser-srcdoc.html: Added.
1163
1164 2013-01-16  Arnaud Renevier  <a.renevier@sisa.samsung.com>
1165
1166         inconsistency in drawImage with target rect negative dimensions.
1167         https://bugs.webkit.org/show_bug.cgi?id=100026
1168
1169         Reviewed by Dean Jackson.
1170
1171         Create a drawImage performance test. There is no significative change
1172         in performance: 27144.6851528 runs/s without the patch; 27153.517612
1173         runs/s with the patch. Test is currently skipped.
1174
1175         * Canvas/drawimage.html: Added.
1176         * Skipped:
1177
1178 2013-01-15  Dominic Cooney  <dominicc@chromium.org>
1179
1180         Allow zero values as results from the runFunction.
1181         https://bugs.webkit.org/show_bug.cgi?id=102500
1182
1183         Reviewed by Kentaro Hara.
1184
1185         DOM/DOMWalk.js fails on the Chromium Win perf bot because one or
1186         more parts of the test usually return zero at some point.
1187
1188         * resources/runner.js: Accept merely non-negative results.
1189
1190 2012-12-28  Yury Semikhatsky  <yurys@chromium.org>
1191
1192         Web Inspector: rename distanceToWindow to distance
1193         https://bugs.webkit.org/show_bug.cgi?id=105823
1194
1195         Reviewed by Pavel Feldman.
1196
1197         Updated heap profiler performance test after renaming distanceToWindow to distance.
1198
1199         * inspector/heap-snapshot-performance-test.js:
1200
1201 2012-12-18  Hayato Ito  <hayato@chromium.org>
1202
1203         Use element.webkitCreateShadowRoot instead of WebKitShadowRoot in PerformanceTests.
1204         https://bugs.webkit.org/show_bug.cgi?id=105256
1205
1206         Reviewed by Dimitri Glazkov.
1207
1208         WebKitShadowRoot constructor was deleted in favor of element.webkitCreateShadowRoot().
1209
1210         * ShadowDOM/ChangingClassNameShadowDOM.html:
1211         * ShadowDOM/ChangingSelect.html:
1212         * ShadowDOM/ContentReprojection.html:
1213         * ShadowDOM/DistributionWithMultipleShadowRoots.html:
1214         * ShadowDOM/LargeDistributionWithLayout.html:
1215         * ShadowDOM/MultipleInsertionPoints.html:
1216         * ShadowDOM/ShadowReprojection.html:
1217         * ShadowDOM/SmallDistributionWithLayout.html:
1218
1219 2012-12-17  Shinya Kawanaka  <shinyak@chromium.org>
1220
1221         [Shadow] LargeDistributionWithLayout.html should be updated
1222         https://bugs.webkit.org/show_bug.cgi?id=105242
1223
1224         Reviewed by Ryosuke Niwa.
1225
1226         Since this test was written when distribution took O(N^2). However, now it's almost O(N), so this test finishes
1227         in very short time. We should convert it unit to runs/s.
1228
1229         This test contains a some error to cause test failure, e.g. using obsolete API, so they also should be fixed.
1230
1231         * ShadowDOM/LargeDistributionWithLayout.html:
1232
1233 2012-12-13  Ryosuke Niwa  <rniwa@webkit.org>
1234
1235         [chromium perf] DOM/DOMWalk.html failures
1236         https://bugs.webkit.org/show_bug.cgi?id=104866
1237
1238         Reviewed by Eric Seidel.
1239
1240         Use PerfTestRunner.now which in turn uses window.performance.now() when it's available.
1241
1242         * DOM/resources/dom-perf.js:
1243         (Interval.start):
1244         (Interval.stop):
1245         (BenchmarkSuite.prototype.RunSingle):
1246
1247 2012-12-05  Shinya Kawanaka  <shinyak@chromium.org>
1248
1249         [Shadow] Performance tests for ShadowDOM distribution
1250         https://bugs.webkit.org/show_bug.cgi?id=103617
1251
1252         Reviewed by Dimitri Glazkov.
1253
1254         We would like to measure ShadowDOM distribution performance in various cases.
1255         In this patch, we add performance tests for several distribution patterns.
1256
1257         * ShadowDOM/ContentReprojection.html: Added.
1258         * ShadowDOM/DistributionWithMultipleShadowRoots.html: Added.
1259         * ShadowDOM/LargeDistributionWithLayout.html: Added.
1260         * ShadowDOM/MultipleInsertionPoints.html: Added.
1261         * ShadowDOM/ShadowReprojection.html: Added.
1262         * ShadowDOM/SmallDistributionWithLayout.html: Added.
1263
1264 2012-12-05  Shinya Kawanaka  <shinyak@chromium.org>
1265
1266         [Shadow] Performance tests of distribution for changing className
1267         https://bugs.webkit.org/show_bug.cgi?id=103612
1268
1269         Reviewed by Dimitri Glazkov.
1270
1271         We would like to measure ShadowDOM performance and compare it to the similar functional HTML without using ShadowDOM.
1272         In this patch, we add a case when classNames of distributed elemeents are changed.
1273
1274         * ShadowDOM/ChangingClassName.html: Added.
1275         * ShadowDOM/ChangingClassNameShadowDOM.html: Added.
1276
1277 2012-12-03  Ryosuke Niwa  <rniwa@webkit.org>
1278
1279         Dromaeo should report individual test result
1280         https://bugs.webkit.org/show_bug.cgi?id=99800
1281
1282         Reviewed by Eric Seidel.
1283
1284         Made one small modification to Droameo's webrunner.js so that it reports individual runs/s values
1285         for each subtest. This allows us to compute the aggregated run/s for each iteration like other
1286         performance tests.
1287
1288         Also stop measuring memory usage in Dromaeo tests because some Dromaeo tests (e.g. jslib-modify-jquery)
1289         have unrealistic memory usage, and measuring them at the time of teardown doesn't make much sense.
1290
1291         * Animation/balls.html: Fixed typo: measureValueAync.
1292         * Dromaeo/resources/dromaeo/web/webrunner.js:
1293
1294         * Dromaeo/resources/dromaeorunner.js:
1295         (DRT.setup): Call prepareToMeasureValuesAsync so that DRT.teardown can use meausreValueAsync, and log
1296         "Running 5 times". Since the log container will be inserted before iframe, we need to explicitly insert
1297         the iframe as the first child of the body element to avoid logs from affecting the iframe's position.
1298         Also specify the number of iterations by calling PerfTestRunner.iterationCount() so that we may adjust
1299         the number of iterations in PerfTestRunner.
1300
1301         (DRT.progress): Log individual measurement for each subtest.
1302         (DRT.teardown): Compute the aggregated result for each iteration, and log them using measureValueAsync.
1303
1304         * resources/runner.js:
1305         (PerfTestRunner.logStatistics): Merged printStatistics since it's no longer needed after r131638.
1306         (PerfTestRunner): Removed getAndPrintMemoryStatistics since it was used only in Dromaeo tests but
1307         we no longer measure memory usage in Dromaeo tests.
1308
1309         (start): Increment completedRuns from -1 to 0 for Dromaeo tests where we don't want to ignore the initial
1310         measurement. Note that ignoreWarmUpAndLog ignores the measurements for which completedRuns is negative.
1311
1312         (ignoreWarmUpAndLog): We don't measure memory usage in Dromaeo tests. See above.
1313         (PerfTestRunner.iterationCount): Added. This abstraction allows us to auto-adjust the number of iterations from
1314         run-perf-tests in near future.
1315         (PerfTestRunner.measureValueAsync): Renamed from measureValueAync.
1316
1317 2012-11-29  Shinya Kawanaka  <shinyak@chromium.org>
1318
1319         [Shadow] Performance tests of distribution for changing select attribute
1320         https://bugs.webkit.org/show_bug.cgi?id=103611
1321
1322         Reviewed by Hajime Morita.
1323
1324         We would like to measure ShadowDOM performance and compare it to the similar functional HTML without using ShadowDOM.
1325         In this patch, we add a case when select attribute of HTMLContentElement is changed.
1326
1327         * ShadowDOM/ChangingSelect.html: Added.
1328         * ShadowDOM/ChangingSelectWithoutShadow.html: Added.
1329         * Skipped:
1330
1331 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1332
1333         Changing id, className, or attribute should invalidate distribution
1334         https://bugs.webkit.org/show_bug.cgi?id=100738
1335
1336         Reviewed by Dimitri Glazkov.
1337
1338         Added test code to modify id/class/attribute.
1339
1340         * DOM/ModifyAttribute.html: Added.
1341         * DOM/resources/dom-perf/modify-attribute.js: Added.
1342         (ModifyAttribute.CreateElementToSetUp):
1343         (ModifyAttribute.ModifyId):
1344         (ModifyAttribute.ModifyClass):
1345         (ModifyAttribute.ModifyTitle):
1346
1347 2012-11-14  Ryosuke Niwa  <rniwa@webkit.org>
1348
1349         runCount in runner.js should be renamed to iterationCount
1350         https://bugs.webkit.org/show_bug.cgi?id=102208
1351
1352         Reviewed by Tony Chang.
1353
1354         Prior to this patch, there were terminology confusions between "runs" and "iterations".
1355         The term "run" should refer to running a performance test once, and "iteration" should
1356         refer to one measurement in the test. i.e. Executing run-perf-should once will result in
1357         a single "run" of performance tests and each test may execute multiple "iterations"
1358         to complete the run.
1359
1360         Unfortunately, we still overload the meaning of "runs" in "runs/s" (is "function calls/s")
1361         but that could be addressed in a separate patch.
1362
1363         * Animation/balls.html:
1364         * DOM/DOMTable.html:
1365         * DOM/resources/dom-perf.js:
1366         * Layout/floats_100_100.html:
1367         * Layout/floats_100_100_nested.html:
1368         * Layout/floats_20_100.html:
1369         * Layout/floats_20_100_nested.html:
1370         * Layout/floats_2_100.html:
1371         * Layout/floats_2_100_nested.html:
1372         * Layout/floats_50_100.html:
1373         * Layout/floats_50_100_nested.html:
1374         * Layout/subtree-detaching.html:
1375         * Parser/html5-full-render.html:
1376         * SVG/SvgHitTesting.html:
1377         * resources/runner.js:
1378
1379 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
1380
1381         Unreviewed, rolling out r134367.
1382         http://trac.webkit.org/changeset/134367
1383         https://bugs.webkit.org/show_bug.cgi?id=100738
1384
1385         Speculative rollout, could have cause Dromaeo setAttribute
1386         perf regression.
1387
1388         * DOM/ModifyAttribute.html: Removed.
1389         * DOM/resources/dom-perf/modify-attribute.js: Removed.
1390
1391 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
1392
1393         Changing id, className, or attribute should invalidate distribution
1394         https://bugs.webkit.org/show_bug.cgi?id=100738
1395
1396         Reviewed by Dimitri Glazkov.
1397
1398         Added test code to modify id/class/attribute.
1399
1400         * DOM/ModifyAttribute.html: Added.
1401         * DOM/resources/dom-perf/modify-attribute.js: Added.
1402         (ModifyAttribute.CreateElementToSetUp):
1403         (ModifyAttribute.ModifyId):
1404         (ModifyAttribute.ModifyClass):
1405         (ModifyAttribute.ModifyTitle):
1406
1407 2012-11-06  Adam Barth  <abarth@webkit.org>
1408
1409         DOMImplementation should use ScriptWrappable
1410         https://bugs.webkit.org/show_bug.cgi?id=101279
1411
1412         Reviewed by Eric Seidel.
1413
1414         This simple PerformanceTest measure how quickly we can access
1415         document.implementation. The goal of this performance test is just to
1416         validate that using ScriptWrappable actually makes the bindings faster.
1417
1418         * Bindings/document-implementation.html: Added.
1419
1420 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
1421
1422         WebKit should have performance tests for book chapter reflow
1423         https://bugs.webkit.org/show_bug.cgi?id=101271
1424
1425         Reviewed by Dan Bernstein.
1426
1427         I grabbed a book chapter from the Project Gutenberg front page:
1428
1429         * Layout/chapter-reflow-once.html: Added.
1430         * Layout/chapter-reflow-thrice.html: Added.
1431         * Layout/chapter-reflow-twice.html: Added.
1432         * Layout/chapter-reflow.html: Added.
1433
1434         I also created a torture-test random text generator:
1435
1436         * Layout/chapter-reflow-once-random.html: Added.
1437
1438 2012-10-29  Zoltan Horvath  <zoltan@webkit.org>
1439
1440         Turn PageLoad tests into simple performancetests, commit #7 (last) 
1441         https://bugs.webkit.org/show_bug.cgi?id=99899
1442
1443         Reviewed by Ryosuke Niwa.
1444
1445         We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
1446         performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
1447         to their new location and adds html/js wrappers for them.
1448
1449         This is the #7 (last) commit of the whole patch.
1450
1451         * PageLoad: Removed.
1452         * PageLoad/svg: Removed.
1453         * PageLoad/svg/LICENSES: Removed.
1454         * PageLoad/svg/files: Removed.
1455         * PageLoad/svg/files/33041-Samurai.svg: Removed.
1456         * PageLoad/svg/files/42450-under the see.svg: Removed.
1457         * PageLoad/svg/files/world-iso.svg: Removed.
1458         * PageLoad/svg/svg.pltsuite: Removed.
1459         * SVG/Samurai.html: Added.
1460         * SVG/UnderTheSee.html: Added.
1461         * SVG/WorldIso.html: Added.
1462         * SVG/resources/LICENSES: Copied from PerformanceTests/PageLoad/svg/LICENSES.
1463         * SVG/resources/Samurai.svg: Copied from PerformanceTests/PageLoad/svg/files/33041-Samurai.svg.
1464         * SVG/resources/UnderTheSee.svg: Copied from PerformanceTests/PageLoad/svg/files/42450-under%20the%20see.svg.
1465         * SVG/resources/WorldIso.svg: Copied from PerformanceTests/PageLoad/svg/files/world-iso.svg.
1466         * SVG/resources/svg.pltsuite: Copied from PerformanceTests/PageLoad/svg/svg.pltsuite.
1467         * Skipped: Rename the files on the skipped list also.
1468
1469 2012-10-26  Eric Seidel  <eric@webkit.org>
1470
1471         Add a microbenchmark for Hindi (complex-text) line-layout
1472         https://bugs.webkit.org/show_bug.cgi?id=100024
1473
1474         Reviewed by Ryosuke Niwa.
1475
1476         I wrote this to make sure that we don't regress line-breaking performance
1477         for the complex-text codepath. This test has shown me that TOT is
1478         already 5% slower than Safari 6.0.1 here. :(
1479
1480         * Layout/hindi-line-layout.html: Added.
1481
1482 2012-10-26  Zoltan Horvath  <zoltan@webkit.org>
1483
1484         Turn PageLoad tests into simple performancetests, commit #6 
1485         https://bugs.webkit.org/show_bug.cgi?id=99899
1486
1487         Reviewed by Ryosuke Niwa.
1488
1489         We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
1490         performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
1491         to their new location and adds html/js wrappers for them.
1492
1493         This is the #6 commit of the whole patch.
1494
1495         * PageLoad/svg/files/gearflowers.svg: Removed.
1496         * PageLoad/svg/files/hereGear4.svg: Removed.
1497         * PageLoad/svg/files/worldcup.svg: Removed.
1498         * SVG/GearFlowers.html: Added.
1499         * SVG/HereGear.html: Added.
1500         * SVG/Worldcup.html: Added.
1501         * SVG/resources/GearFlowers.svg: Copied from PerformanceTests/PageLoad/svg/files/gearflowers.svg.
1502         * SVG/resources/HereGear.svg: Copied from PerformanceTests/PageLoad/svg/files/hereGear4.svg.
1503         * SVG/resources/Worldcup.svg: Copied from PerformanceTests/PageLoad/svg/files/worldcup.svg.
1504         * Skipped: Rename the files on the skipped list also.
1505
1506 2012-10-26  Zoltan Horvath  <zoltan@webkit.org>
1507
1508         Turn PageLoad tests into simple performancetests, commit #5 
1509         https://bugs.webkit.org/show_bug.cgi?id=99899
1510
1511         Reviewed by Ryosuke Niwa.
1512
1513         We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
1514         performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
1515         to their new location and adds html/js wrappers for them.
1516
1517         This is the #5 commit of the whole patch.
1518
1519         * PageLoad/svg/files/Harvey_Rayner.svg: Removed.
1520         * PageLoad/svg/files/Sierpinski_carpet_6.svg: Removed.
1521         * PageLoad/svg/files/mtsthelens.svg: Removed.
1522         * PageLoad/svg/files/mtsthelens0.jpg: Removed.
1523         * SVG/HarveyRayner.html: Added.
1524         * SVG/MtSaintHelens.html: Added.
1525         * SVG/SierpinskiCarpet.html: Added.
1526         * SVG/resources/HarveyRayner.svg: Copied from PerformanceTests/PageLoad/svg/files/Harvey_Rayner.svg.
1527         * SVG/resources/MtSaintHelens.svg: Copied from PerformanceTests/PageLoad/svg/files/mtsthelens.svg.
1528         * SVG/resources/SierpinskiCarpet.svg: Copied from PerformanceTests/PageLoad/svg/files/Sierpinski_carpet_6.svg.
1529         * SVG/resources/mtsthelens0.jpg: Copied from PerformanceTests/PageLoad/svg/files/mtsthelens0.jpg.
1530         * Skipped: Rename the files on the skipped list also.
1531
1532 2012-10-25  Zoltan Horvath  <zoltan@webkit.org>
1533
1534         Turn PageLoad tests into simple performancetests, commit #4 
1535         https://bugs.webkit.org/show_bug.cgi?id=99899
1536
1537         Reviewed by Ryosuke Niwa.
1538
1539         We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
1540         performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
1541         to their new location and adds html/js wrappers for them.
1542
1543         This is the #4 commit of the whole patch.
1544
1545         * PageLoad/svg/files/france.svg: Removed.
1546         * PageLoad/svg/files/francobollo_gnome_ezechi_02.svg: Removed.
1547         * SVG/France.html: Added.
1548         * SVG/FrancoBolloGnomeEzechi.html: Added.
1549         * SVG/resources/France.svg: Copied from PerformanceTests/PageLoad/svg/files/france.svg.
1550         * SVG/resources/FrancoBolloGnomeEzechi.svg: Copied from PerformanceTests/PageLoad/svg/files/francobollo_gnome_ezechi_02.svg.
1551         * Skipped: Rename the files on the skipped list also.
1552
1553 2012-10-25  Zoltan Horvath  <zoltan@webkit.org>
1554
1555         Turn PageLoad tests into simple performancetests, commit #3 
1556         https://bugs.webkit.org/show_bug.cgi?id=99899
1557
1558         Reviewed by Ryosuke Niwa.
1559
1560         We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
1561         performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
1562         to their new location and adds html/js wrappers for them.
1563
1564         This is the #3 commit of the whole patch.
1565
1566         * PageLoad/svg/files/42470-flower_from_my_garden_v2.svg: Removed.
1567         * PageLoad/svg/files/44057-drops on a blade.svg: Removed.
1568         * PageLoad/svg/files/deb9frac1.svg: Removed.
1569         * PageLoad/svg/files/food_leif_lodahl_01.svg: Removed.
1570         * SVG/Debian.html: Added.
1571         * SVG/DropsOnABlade.html: Added.
1572         * SVG/FlowerFromMyGarden.html: Added.
1573         * SVG/FoodLeifLodahl.html: Added.
1574         * SVG/resources/Debian.svg: Copied from PerformanceTests/PageLoad/svg/files/deb9frac1.svg.
1575         * SVG/resources/DropsOnABlade.svg: Copied from PerformanceTests/PageLoad/svg/files/44057-drops%20on%20a%20blade.svg.
1576         * SVG/resources/FlowerFromMyGarden.svg: Copied from PerformanceTests/PageLoad/svg/files/42470-flower_from_my_garden_v2.svg.
1577         * SVG/resources/FoodLeifLodahl.svg: Copied from PerformanceTests/PageLoad/svg/files/food_leif_lodahl_01.svg.
1578
1579 2012-10-24  Zoltan Horvath  <zoltan@webkit.org>
1580
1581         Turn PageLoad tests into simple performancetests, commit #2 
1582         https://bugs.webkit.org/show_bug.cgi?id=99899
1583
1584         Reviewed by Ryosuke Niwa.
1585
1586         We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
1587         performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
1588         to their new location and adds html/js wrappers for them.
1589
1590         This is the #2 commit of the whole patch.
1591
1592         * PageLoad/svg/files/cacuts_01.svg: Removed.
1593         * PageLoad/svg/files/cowboy.svg: Removed.
1594         * PageLoad/svg/files/crawfish2_ganson.svg: Removed.
1595         * SVG/Cactus.html: Added.
1596         * SVG/Cowboy.html: Added.
1597         * SVG/CrawFishGanson.html: Added.
1598         * SVG/resources/Cactus.svg: Copied from PerformanceTests/PageLoad/svg/files/cacuts_01.svg.
1599         * SVG/resources/Cowboy.svg: Copied from PerformanceTests/PageLoad/svg/files/cowboy.svg.
1600         * SVG/resources/CrawFishGanson.svg: Copied from PerformanceTests/PageLoad/svg/files/crawfish2_ganson.svg.
1601         * Skipped: Remove az-lizard_benji_park_01.svg from the skipped list.
1602
1603 2012-10-24  Zoltan Horvath  <zoltan@webkit.org>
1604
1605         Turn PageLoad tests into simple performancetests, commit #1 
1606         https://bugs.webkit.org/show_bug.cgi?id=99899
1607
1608         Reviewed by Ryosuke Niwa.
1609
1610         We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
1611         performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
1612         to their new location and adds html/js wrappers for them.
1613
1614         This is the #1 commit of the whole patch.
1615
1616         * PageLoad/svg/files/az-lizard_benji_park_01.svg: Removed.
1617         * PageLoad/svg/files/bamboo_01.svg: Removed.
1618         * SVG/AzLizardBenjiPark.html: Added.
1619         * SVG/Bamboo.html: Added.
1620         * SVG/resources: Added.
1621         * SVG/resources/AzLizardBenjiPark.svg: Copied from PerformanceTests/PageLoad/svg/files/az-lizard_benji_park_01.svg.
1622         * SVG/resources/Bamboo.svg: Copied from PerformanceTests/PageLoad/svg/files/bamboo_01.svg.
1623
1624 2012-10-24  Zoltan Horvath  <zoltan@webkit.org>
1625
1626         REGRESSION(r131982): Skip SVG/SvgNestedUse.html performancetest since it is crashing
1627         https://bugs.webkit.org/show_bug.cgi?id=100262
1628
1629         Unreviewed.
1630
1631         Skip until proper fix.
1632
1633         * Skipped: Add SVG/SvgNestedUse.html
1634
1635 2012-10-23  Zoltan Horvath  <zoltan@webkit.org>
1636
1637         Store the loaded file locally in measurePageLoadTime
1638         https://bugs.webkit.org/show_bug.cgi?id=100172
1639
1640         Reviewed by Csaba Osztrogon√°c.
1641
1642         Store the loaded file as a local variable instead of attaching it to the test object.
1643         Handle chunkSize inside test.run.
1644
1645         * resources/runner.js:
1646         (.):
1647
1648 2012-10-23  Zoltan Horvath  <zoltan@webkit.org>
1649
1650         Add measurePageLoadTime function to PerfTestRunner
1651         https://bugs.webkit.org/show_bug.cgi?id=100029
1652
1653         Reviewed by Ryosuke Niwa.
1654
1655         Adopt chunk based loading logic from html5-full-render.html into measurePageLoadTime function,
1656         this is needed to measure the performance and the memory consumption of the PageLoadTests as
1657         we do it for all other performancetests.
1658
1659         * Parser/html5-full-render.html: Move the behavior to runner.js.
1660         * resources/runner.js:
1661         (.): Add measurePageLoadTime function.
1662
1663 2012-10-22  Adam Barth  <abarth@webkit.org>
1664
1665         [V8] Vastly simplify V8GCController's NodeVisitor
1666         https://bugs.webkit.org/show_bug.cgi?id=99884
1667
1668         Reviewed by Kentaro Hara.
1669
1670         Adds some performance tests for the garbage collector.
1671
1672         * Bindings/gc-forest.html: Added.
1673         * Bindings/gc-mini-tree.html: Added.
1674         * Bindings/gc-tree.html: Added.
1675
1676 2012-10-17  Ryosuke Niwa  <rniwa@webkit.org>
1677
1678         Bump up the number of iterations of html5-full-render to 5
1679         https://bugs.webkit.org/show_bug.cgi?id=99657
1680
1681         Reviewed by Andreas Kling.
1682
1683         Now that html5-full-render.html runs in less than 15 seconds after r131553,
1684         we can afford to get 5 instead of 2 samples.
1685
1686         * Parser/html5-full-render.html:
1687
1688 2012-10-17  Ryosuke Niwa  <rniwa@webkit.org>
1689
1690         Rename PerfTestRunner.runPerSecond to PerfTestRunner.measureRunsPerSecond for consistency
1691         https://bugs.webkit.org/show_bug.cgi?id=99642
1692
1693         Reviewed by Dirk Pranke.
1694
1695         Renamed the method.
1696
1697         * Bindings/append-child.html:
1698         * Bindings/create-element.html:
1699         * Bindings/event-target-wrapper.html:
1700         * Bindings/first-child.html:
1701         * Bindings/get-attribute.html:
1702         * Bindings/get-element-by-id.html:
1703         * Bindings/get-elements-by-tag-name.html:
1704         * Bindings/id-getter.html:
1705         * Bindings/id-setter.html:
1706         * Bindings/insert-before.html:
1707         * Bindings/node-list-access.html:
1708         * Bindings/scroll-top.html:
1709         * Bindings/set-attribute.html:
1710         * Bindings/typed-array-construct-from-array.html:
1711         * Bindings/typed-array-construct-from-same-type.html:
1712         * Bindings/typed-array-construct-from-typed.html:
1713         * Bindings/typed-array-set-from-typed.html:
1714         * Bindings/undefined-first-child.html:
1715         * Bindings/undefined-get-element-by-id.html:
1716         * Bindings/undefined-id-getter.html:
1717         * CSS/CSSPropertySetterGetter.html:
1718         * CSS/CSSPropertyUpdateValue.html:
1719         * CSS/PseudoClassSelectors.html:
1720         * DOM/textarea-dom.html:
1721         * DOM/textarea-edit.html:
1722         * Interactive/resources/window-resize.js:
1723         * Layout/flexbox-column-nowrap.html:
1724         * Layout/flexbox-column-wrap.html:
1725         * Layout/flexbox-row-nowrap.html:
1726         * Layout/flexbox-row-wrap.html:
1727         * Layout/line-layout.html:
1728         * Parser/css-parser-yui.html:
1729         * Parser/innerHTML-setter.html:
1730         * Parser/query-selector-deep.html:
1731         * Parser/query-selector-first.html:
1732         * Parser/query-selector-last.html:
1733         * Parser/simple-url.html:
1734         * Parser/textarea-parsing.html:
1735         * Parser/tiny-innerHTML.html:
1736         * Parser/url-parser.html:
1737         * Parser/xml-parser.html:
1738         * SVG/SvgNestedUse.html:
1739         * resources/runner.js:
1740
1741 2012-10-17  Ryosuke Niwa  <rniwa@webkit.org>
1742
1743         Performance test should support asynchronous tests
1744         https://bugs.webkit.org/show_bug.cgi?id=95668
1745
1746         Reviewed by Dirk Pranke.
1747
1748         Added PerfTestRunner.prepareToMeasureValuesAsync and PerfTestRunner.measureValueAsync,
1749         and deployed it in Animation/balls.
1750
1751         * Animation/balls.html:
1752         * resources/runner.js:
1753
1754 2012-10-16  Elliott Sprehn  <esprehn@chromium.org>
1755
1756         html5-full-render.html test uses substring but meant substr
1757         https://bugs.webkit.org/show_bug.cgi?id=99495
1758
1759         Reviewed by Adam Barth.
1760
1761         This test intended to chunk up the HTML5 spec into chunks of 500k chars, but used
1762         substring(to,from) instead of substr(from,length) so it actually loaded 5x more
1763         content than was in the HTML5 spec.
1764
1765         * Parser/html5-full-render.html:
1766
1767 2012-10-11  James Simonsen  <simonjam@chromium.org>
1768
1769         unprefix window.performance.webkitNow()
1770         https://bugs.webkit.org/show_bug.cgi?id=88278
1771
1772         Reviewed by Tony Gentilcore.
1773
1774         * resources/runner.js: Bind to proper object to avoid invalid invocation errors.
1775
1776 2012-10-08  Ryosuke Niwa  <rniwa@webkit.org>
1777
1778         Skip Layout/subtree-detaching.html temporarily as it's very noisy and
1779         takes 112s to run on Chromium Mac. This is tracked by the bug 98708.
1780
1781         * Skipped:
1782
1783 2012-10-08  Ryosuke Niwa  <rniwa@webkit.org>
1784
1785         Perf. test results page is broken when runs have different sets of tests
1786         https://bugs.webkit.org/show_bug.cgi?id=98691
1787
1788         Reviewed by Daniel Bates.
1789
1790         Add "missing" columns for tests that are missing some runs.
1791
1792         Also fix regressions from the previous patch:
1793         - Make reference run switch work again
1794         - Load jquery plugins from the remote server when the jquery is loaded from the remote server.
1795
1796         * resources/results-template.html:
1797
1798 2012-10-08  Ryosuke Niwa  <rniwa@webkit.org>
1799
1800         Perf test pesults page takes forever to load on a machine with a slow Internet connection
1801         https://bugs.webkit.org/show_bug.cgi?id=98561
1802
1803         Reviewed by Ojan Vafai.
1804
1805         Try loading jquery both locally and remotely, and use the same method to load the remaining
1806         jquery plugins when either one succeeds.
1807
1808         * resources/results-template.html:
1809
1810 2012-10-04  Hayato Ito  <hayato@chromium.org>
1811
1812         [Refactoring] Introduce a traversal strategy in SelectorChecker
1813         https://bugs.webkit.org/show_bug.cgi?id=97298
1814
1815         Reviewed by Antti Koivisto.
1816
1817         Introduces querySelector() performance tests to check SelectorChecker performance.
1818
1819         * CSS/PseudoClassSelectors.html: Added.
1820
1821 2012-10-03  Philip Rogers  <pdr@google.com>
1822
1823         Force GC between PageLoad tests.
1824         https://bugs.webkit.org/show_bug.cgi?id=98203
1825
1826         Reviewed by Ryosuke Niwa.
1827
1828         Previously, our PageLoad PerfTests had multi-modal distributions,
1829         typically with a small cluster at 1-2x the median. This turned out
1830         to be caused by not garbage collecting between tests!
1831
1832         This patch adds a new file, force-gc.html, and loads this file between
1833         PageLoad tests to force a GC. I manually verified that this cleans up
1834         our perf test outliers.
1835
1836         * resources/force-gc.html: Added.
1837
1838 2012-10-03  Julien Chaffraix  <jchaffraix@webkit.org>
1839
1840         Add a performance test for subtree detaching
1841         https://bugs.webkit.org/show_bug.cgi?id=98281
1842
1843         Reviewed by Eric Seidel.
1844
1845         The new test tries to stress detaching on a heavy subtree (2 levels deep but with 1,000 nodes per level).
1846         We set display: none on the root and measure the time it takes to update the tree. Note that we will also
1847         measure the time taken by recalcStyle and relayout but I don't think we can avoid that.
1848
1849         * Layout/subtree-detaching.html: Added.
1850
1851 2012-10-02  Ryosuke Niwa  <rniwa@webkit.org>
1852
1853         Build fix after r130135. Dromaeo tests only report single memory value,
1854         and computeStatistics should report variance as 0 in such cases.
1855
1856         * resources/runner.js:
1857
1858 2012-10-02  Philip Rogers  <pdr@google.com>
1859
1860         Fix PerfTest standard deviation calculation.
1861         https://bugs.webkit.org/show_bug.cgi?id=98115
1862
1863         Reviewed by Ryosuke Niwa.
1864
1865         Previously our standard deviation calculation was incorrect. This patch
1866         updates perftest.py's algorithm to calculate the sample standard deviation
1867         (with Bessel's correction) using Knuth's online algorithm:
1868         http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Online_algorithm
1869         An existing test has been modified to prove our new results.
1870
1871         This patch also updates runner.js to use Bessel's correction in
1872         its sample standard deviation calculation, which is more accurate
1873         for small sample sizes.
1874
1875         Additionally, runner.js has been modified to not calculate
1876         the 'sum' statistic, which was not very useful.
1877
1878         * resources/runner.js:
1879         (PerfTestRunner.computeStatistics):
1880
1881 2012-10-01  Ryosuke Niwa  <rniwa@webkit.org>
1882
1883         PerfTestRunner: Move all functions into the closure and always use double quotation for string literals
1884         https://bugs.webkit.org/show_bug.cgi?id=98093
1885
1886         Reviewed by Ojan Vafai.
1887
1888         Move all methods of PerfTestRunner into the closure that defines it.
1889         Also always use double quotations for string literals for consistency.
1890
1891         * resources/runner.js:
1892
1893 2012-10-01  Ryosuke Niwa  <rniwa@webkit.org>
1894
1895         Encapsulate private properties in PerfTestRunner better
1896         https://bugs.webkit.org/show_bug.cgi?id=97833
1897
1898         Reviewed by Ojan Vafai.
1899
1900         This patch moves "private" methods and properties of PerfTestRunner into a closure so that they're
1901         inaccssible from outside. Also catch exceptions from test.run, test.done, and other runner code
1902         to ensure we call notifyDone() even if we broke tests. Otherwise DRT will timeout and we end up
1903         waiting for 10 minutes per each broken test on bots.
1904
1905         * resources/runner.js:
1906         (PerfTestRunner.gc):
1907         (logInDocument): Extracted from PerfTestRunner.log.
1908         (PerfTestRunner.log): Moved.
1909         (logFatalError): Added.
1910         (start): Renamed from PerfTestRunner._start.
1911         (scheduleNextRun): Extracted from PerfTestRunner._runLoop. Also catch any exceptions that happen
1912         in the runner and ignoreWarmUpAndLog so that we don't end up timing out. We call logFatalError in
1913         such cases, which in turn ensures notifyDone() is called.
1914         (ignoreWarmUpAndLog): Renamed from PerfTestRunner._ignoreWarmUpAndLog.
1915         (finish): Extracted from PerfTestRunner._runLoop.
1916         (PerfTestRunner.measureTime): Moved. The initialization of runCount is moved into start().
1917         (measureTimeOnce): Renamed from PerfTestRunner._measureTimeOnce.
1918         (PerfTestRunner.runPerSecond): Moved. Ditto about runCount.
1919         (measureRunsPerSecondOnce): Renamed from PerfTestRunner._measureRunsPerSecondOnce.
1920         (callRunAndMeasureTime): Renamed from PerfTestRunner._perSecondRunnerIterator.
1921
1922 2012-10-01  Florin Malita  <fmalita@chromium.org>
1923
1924         Add a performance test for nested <use> elements
1925         https://bugs.webkit.org/show_bug.cgi?id=98047
1926
1927         Reviewed by Ryosuke Niwa.
1928
1929         Currently at ~5 runs per second on my workstation, but should go up significantly (100+)
1930         after landing a fix for https://bugs.webkit.org/show_bug.cgi?id=97905.
1931
1932         * SVG/SvgNestedUse.html: Added.
1933
1934 2012-09-28  Ryosuke Niwa  <rniwa@webkit.org>
1935
1936         Add back test.runCount for runPerSecond as it's used by tests in fast/harness/perftests.
1937
1938         * resources/runner.js:
1939         (PerfTestRunner.runPerSecond):
1940
1941 2012-09-27  Ryosuke Niwa  <rniwa@webkit.org>
1942
1943         Build fix after r129824.
1944
1945         * DOM/resources/dom-perf.js:
1946         (runBenchmarkSuite):
1947
1948 2012-09-27  Ryosuke Niwa  <rniwa@webkit.org>
1949
1950         Remove unused features and reduce code duplications in PerfTestRunner
1951         https://bugs.webkit.org/show_bug.cgi?id=97852
1952
1953         Reviewed by Kentaro Hara.
1954
1955         Made the following refactoring changes:
1956         - Remove PerfTestRunner.info since it's never used.
1957         - Moved the js heap/malloc related functions up to where they belong.
1958         - Moved the initialization of _callsPerIteration, _test, and -description into _start,
1959           and stopped initializing _runFunction and _doneFunction since both test times now
1960           use _test object.
1961         - Made _measureTimeOnce and _measureRunsPerSecondOnce return the measured value
1962           instead of calling ignoreWarmUpAndLog and _runLoop to share the code; they're now
1963           called in _measureRunsPerSecondOnce.
1964
1965         * resources/runner.js:
1966         (PerfTestRunner.storeHeapResults): Moved.
1967         (PerfTestRunner.getUsedMallocHeap): Moved.
1968         (PerfTestRunner.getUsedJSHeap): Moved.
1969         (PerfTestRunner.getAndPrintMemoryStatistics): Moved.
1970         (PerfTestRunner._scheduleNextMeasurementOrNotifyDone): Renamed from _runLoop. Calls
1971         ignoreWarmUpAndLog and schedules the next call.
1972         (PerfTestRunner._measureTimeOnce): Renamed from _runner.
1973         (PerfTestRunner._start): Renamed from initAndStartLoop.
1974         (PerfTestRunner.measureTime):
1975         (PerfTestRunner.runPerSecond):
1976         (PerfTestRunner._measureRunsPerSecondOnce): Renamed from _measureRunsPerSecondOnce.
1977         (PerfTestRunner._perSecondRunnerIterator):
1978
1979 2012-09-27  Ryosuke Niwa  <rniwa@webkit.org>
1980
1981         PerfTestRunner.run should take an object
1982         https://bugs.webkit.org/show_bug.cgi?id=97743
1983
1984         Reviewed by Kentaro Hara.
1985
1986         Rename PerfTestRunner.run to PerfTestRunner.measureTime and make it take an object instead of
1987         5 arguments. Also get rid of PerfTestRunner._loopsPerRun since it's no longer used (it's always 1).
1988
1989         * CSS/StyleSheetInsert.html:
1990         * DOM/resources/dom-perf.js:
1991         * Layout/floats_100_100.html:
1992         * Layout/floats_100_100_nested.html:
1993         * Layout/floats_20_100.html:
1994         * Layout/floats_20_100_nested.html:
1995         * Layout/floats_2_100.html:
1996         * Layout/floats_2_100_nested.html:
1997         * Layout/floats_50_100.html:
1998         * Layout/floats_50_100_nested.html:
1999         * Parser/html-parser.html:
2000         * Parser/html5-full-render.html:
2001         * SVG/SvgCubics.html:
2002         * SVG/SvgHitTesting.html:
2003         * resources/runner.js:
2004
2005 2012-09-27  Ryosuke Niwa  <rniwa@webkit.org>
2006
2007         PerformanceTests/CSS/StyleSheetInsert.html has a time-dependent non-Gaussian distribution
2008         https://bugs.webkit.org/show_bug.cgi?id=97741
2009
2010         Reviewed by Antti Koivisto.
2011
2012         Reset the content in the iframe in each run so that the runtime from each run follows a normal distribution.
2013         We can cleanup this code once my patch to replace the argument list of run by an object is landed.
2014
2015         * CSS/StyleSheetInsert.html:
2016
2017 2012-09-27  Ryosuke Niwa  <rniwa@webkit.org>
2018
2019         Unreviewed. Minor appearance tweaks after r129813.
2020
2021         * resources/results-template.html:
2022
2023 2012-09-27  Ryosuke Niwa  <rniwa@webkit.org>
2024
2025         Results page should warn about time-dependent distributions
2026         https://bugs.webkit.org/show_bug.cgi?id=97818
2027
2028         Reviewed by Ojan Vafai.
2029
2030         Add a simple linear regression analysis on results page to detect time-dependent distributions.
2031         We add a warning sign (inline SVG) when the regression gave us a slope of at least 0.01 and a R^2 of at least 0.6.
2032         Also added time-series graphs per run under the bar graphs so that humans can manually inspect them.
2033
2034         A nice follow up would be to add some normality test (e.g. Shapiro-Wilk) to detect bi-modal distributions
2035         but we probably need to restructure the code to run it asynchronously since normality tests are slow.
2036
2037         * resources/results-template.html:
2038
2039 2012-09-26  Ryosuke Niwa  <rniwa@webkit.org>
2040
2041         Use runPerSecond in PerformanceTests/Bindings/typed-array* and event-target-wrapper
2042         https://bugs.webkit.org/show_bug.cgi?id=97625
2043
2044         Reviewed by Eric Seidel.
2045
2046         Use PerfTestRunner.runPerSecond instead of PerfTestRunner.run. Also reduce the fixed number of
2047         elements and iterations in these tests by a factor of 10 since runPerSecond can dynamically
2048         adjust the number of function calls.
2049
2050         * Bindings/event-target-wrapper.html:
2051         * Bindings/typed-array-construct-from-array.html:
2052         * Bindings/typed-array-construct-from-same-type.html:
2053         * Bindings/typed-array-construct-from-typed.html:
2054         * Bindings/typed-array-set-from-typed.html:
2055
2056 2012-09-25  Antti Koivisto  <antti@apple.com>
2057
2058         Optimize stylesheet insertions
2059         https://bugs.webkit.org/show_bug.cgi?id=97627
2060
2061         Reviewed by Andreas Kling.
2062
2063         Add synthetic performance test for avoiding style recalcs on stylesheet inserts.
2064
2065         * CSS/StyleSheetInsert.html: Added.
2066
2067 2012-09-25  Ryosuke Niwa  <rniwa@webkit.org>
2068
2069         Skip Dromaeo/jslib-modify-jquery.html per bug 95376.
2070         It runs out of memory on Chromium port, and it takes unreasonably long time (~5 minutes)
2071         to run on other ports.
2072
2073         * Skipped:
2074
2075 2012-09-20  Ryosuke Niwa  <rniwa@webkit.org>
2076
2077         Results page should show indivisual value
2078         https://bugs.webkit.org/show_bug.cgi?id=97178
2079
2080         Reviewed by Tony Chang.
2081
2082         Show indivisual values instead of statistics (min, max, stdev).
2083
2084         * resources/results-template.html:
2085
2086 2012-09-20  Ryosuke Niwa  <rniwa@webkit.org>
2087
2088         run-perf-tests should record individual value instead of statistics
2089         https://bugs.webkit.org/show_bug.cgi?id=97155
2090
2091         Reviewed by Hajime Morita.
2092
2093         Report the list of values as "values" so that run-perf-tests can parse them.
2094
2095         * resources/runner.js:
2096         (PerfTestRunner.computeStatistics):
2097         (PerfTestRunner.printStatistics):
2098
2099 2012-09-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2100
2101         Unreviewed, rolling out r129091.
2102         http://trac.webkit.org/changeset/129091
2103         https://bugs.webkit.org/show_bug.cgi?id=97205
2104
2105         It broke perf tests everywhere (Requested by Ossy on #webkit).
2106
2107         * resources/runner.js:
2108         (PerfTestRunner.computeStatistics):
2109         (PerfTestRunner.printStatistics):
2110
2111 2012-09-19  Ryosuke Niwa  <rniwa@webkit.org>
2112
2113         run-perf-tests should record indivisual value instead of statistics
2114         https://bugs.webkit.org/show_bug.cgi?id=97155
2115
2116         Reviewed by Hajime Morita.
2117
2118         Report the list of values as "values" so that run-perf-tests can parse them.
2119
2120         * resources/runner.js:
2121         (PerfTestRunner.computeStatistics):
2122         (PerfTestRunner.printStatistics):
2123
2124 2012-09-17  Ryosuke Niwa  <rniwa@webkit.org>
2125
2126         Perf test results is incomprehensive
2127         https://bugs.webkit.org/show_bug.cgi?id=94668
2128
2129         Reviewed by Eric Seidel.
2130
2131         Overhauled the results page to have a tabular view. Clicking on each row shows a flot graph we used to have.
2132         For each run and test, we show the mean value with the standard deviation along with the percent difference
2133         against the reference run chosen by the user if the difference is statistically significant; it also indicates
2134         whether the new value is progression or not.
2135
2136         The unit of each test is adjusted automatically using SI prefixes (Kilo, Mega, Milli), and rows can be sorted
2137         by each column. Time and memory results are separated into two tabs.
2138
2139         * resources/jquery.tablesorter.min.js: Added.
2140         * resources/results-template.html:
2141
2142 2012-09-14  Ryosuke Niwa  <rniwa@webkit.org>
2143
2144         Use performance.webkitNow in PerfTestRunner
2145         https://bugs.webkit.org/show_bug.cgi?id=92826
2146
2147         Reviewed by Eric Seidel.
2148
2149         Use performance.webkitNow with Date.now as a fallback for more accurate time measurements.
2150
2151         * resources/runner.js:
2152         (PerfTestRunner._runner):
2153         (PerfTestRunner._perSecondRunnerIterator):
2154
2155 2012-09-14  Sheriff Bot  <webkit.review.bot@gmail.com>
2156
2157         Unreviewed, rolling out r128562.
2158         http://trac.webkit.org/changeset/128562
2159         https://bugs.webkit.org/show_bug.cgi?id=96747
2160
2161         It broke perf tests on Qt and Chromium (Requested by Ossy on
2162         #webkit).
2163
2164         * resources/runner.js:
2165         (PerfTestRunner._runner):
2166         (PerfTestRunner._perSecondRunnerIterator):
2167
2168 2012-09-14  Ryosuke Niwa  <rniwa@webkit.org>
2169
2170         Use performance.webkitNow in PerfTestRunner
2171         https://bugs.webkit.org/show_bug.cgi?id=92826
2172
2173         Reviewed by Eric Seidel.
2174
2175         Use performance.webkitNow with Date.now as a fallback for more acurate time measurements.
2176
2177         * resources/runner.js:
2178         (PerfTestRunner._runner):
2179         (PerfTestRunner._perSecondRunnerIterator):
2180
2181 2012-08-23  Ilya Tikhonovsky  <loislo@chromium.org>
2182
2183         WebInspector: unreviewed single line test fix.
2184
2185         The test has to open profiles panel explicitly because it is creating lazily.
2186
2187         * inspector/heap-snapshot-performance-test.js:
2188
2189 2012-08-15  Scott Graham  <scottmg@chromium.org>
2190
2191         Rename window.internals.fastMallocStatistics to mallocStatistics
2192         https://bugs.webkit.org/show_bug.cgi?id=94033
2193
2194         Reviewed by Adam Barth.
2195
2196         * resources/runner.js:
2197         (PerfTestRunner.storeHeapResults):
2198         (PerfTestRunner.getUsedMallocHeap):
2199         (PerfTestRunner.getAndPrintMemoryStatistics):
2200         (PerfTestRunner.initAndStartLoop):
2201
2202 2012-08-10  Ryosuke Niwa  <rniwa@webkit.org>
2203
2204         Unreviewed; fix an insanely silly typo.
2205
2206         * resources/results-template.html:
2207
2208 2012-08-09  Ryosuke Niwa  <rniwa@webkit.org>
2209
2210         Another build fix after r125178.
2211
2212         * resources/runner.js:
2213
2214 2012-08-09  Zoltan Horvath  <zoltan@webkit.org>
2215
2216         Add memory measurement to balls.html and dromaeorunner.js
2217         https://bugs.webkit.org/show_bug.cgi?id=93617
2218
2219         Reviewed by Adam Barth.
2220
2221         Since we added memory measurement support to performance tests we need to modify these tests.
2222
2223         * Animation/balls.html:
2224         * Dromaeo/resources/dromaeorunner.js:
2225
2226 2012-08-09  Zoltan Horvath  <zoltan@webkit.org>
2227
2228         JSHeap and FastMallocStatistics based memory measurement for performance-tests
2229         https://bugs.webkit.org/show_bug.cgi?id=90858
2230
2231         Reviewed Ryosuke Niwa.
2232
2233         Measure the memory usage of the performancetests with the help of the windows.memory.usedJSHeapSize
2234         object and the window.internals.fastMallocStatistics() function call.
2235
2236         * resources/runner.js:
2237         (PerfTestRunner.logStatistics):
2238         (PerfTestRunner.printStatistics):
2239         (PerfTestRunner.storeHeapResults):
2240         (PerfTestRunner.getUsedFastMallocHeap):
2241         (PerfTestRunner.getUsedJSHeap):
2242         (PerfTestRunner.getAndPrintMemoryStatistics):
2243         (PerfTestRunner.ignoreWarmUpAndLog):
2244         (PerfTestRunner.initAndStartLoop):
2245
2246 2012-08-08  Benjamin Poulain  <benjamin@webkit.org>
2247
2248         Calling internals from the performance test runner prevents manual running
2249         https://bugs.webkit.org/show_bug.cgi?id=93527
2250
2251         Reviewed by Ryosuke Niwa.
2252
2253         Since r125065, it is impossible to run the Performance tests manually. The problem is
2254         "internals" is not defined when running outside the test runner, so the whole script
2255         evaluation fails.
2256
2257         * resources/runner.js: Verify is window.internals is available before invoking something on it.
2258
2259 2012-08-08  Zoltan Horvath  <zoltan@webkit.org>
2260
2261         Set access to MemoryInfo enabled for the performance tests
2262         https://bugs.webkit.org/show_bug.cgi?id=92498
2263
2264         Reviewed by Ryosuke Niwa.
2265
2266         We need access to console.memory for the memory measurements.
2267
2268         * resources/runner.js:
2269
2270 2012-08-07  Ryosuke Niwa  <rniwa@webkit.org>
2271
2272         run-perf-tests should support --no-show-results
2273         https://bugs.webkit.org/show_bug.cgi?id=93409
2274
2275         Reviewed by Dirk Pranke.
2276
2277         Add a flot as a separate file and load it as an external resource.
2278
2279         Also include scripts as external resources from both local filesystem and webkit.org
2280         so that it continues to work regardless of where you put it.
2281
2282         It breaks when someone else receives the file and save it somewhere and doesn't have
2283         a network connection but that seems like a scenario we don't care that much.
2284
2285         * resources/jquery.flot.min.js: Added.
2286         * resources/results-template.html:
2287
2288 2012-08-06  Ryosuke Niwa  <rniwa@webkit.org>
2289
2290         run-webkit-tests should have ability to add description to its JSON output
2291         https://bugs.webkit.org/show_bug.cgi?id=93296
2292
2293         Reviewed by Dirk Pranke.
2294
2295         Parse description and show it with the WebKit revision on the results page. Also use bar graphs
2296         instead of line graphs since we're not depicting the time series here per arv's suggestion.
2297         Finally, add the ability to adjust y-axis between the adjusted value and 0 (plot even doesn't adjust
2298         y-axis automatically now) by a mouse click.
2299
2300         * resources/results-template.html:
2301
2302 2012-08-04  Ryosuke Niwa  <rniwa@webkit.org>
2303
2304         Use testRunner instead of layoutTestController in performance tests
2305         https://bugs.webkit.org/show_bug.cgi?id=93184
2306
2307         Reviewed by Adam Barth.
2308
2309         * Animation/balls.html:
2310         * Dromaeo/resources/dromaeorunner.js:
2311         * inspector/console-300-lines.html:
2312         * inspector/inspector-startup-time.html:
2313         * inspector/network-append-30-requests.html.broken:
2314         * inspector/show-panel.html.broken:
2315         * resources/runner.js:
2316         (PerfTestRunner.logInfo):
2317         (PerfTestRunner.initAndStartLoop):
2318
2319 2012-08-02  Arnaud Renevier  <a.renevier@sisa.samsung.com>
2320
2321         TypedArray set method is slow when called with another typed array
2322         https://bugs.webkit.org/show_bug.cgi?id=92556
2323
2324         Reviewed by Kenneth Russell.
2325
2326         * Bindings/typed-array-set-from-typed.html: Added.
2327
2328 2012-07-28  Ryosuke Niwa  <rniwa@webkit.org>
2329
2330         run-perf-tests should generate a results page
2331         https://bugs.webkit.org/show_bug.cgi?id=92575
2332
2333         Reviewed by Eric Seidel.
2334
2335         Add a results page template. This page includes flot and flot.fillbetween.
2336         jQuery and the json that contains test results are injected by run-perf-tests.
2337
2338         * resources/results-template.html: Added.
2339
2340 2012-07-27  Arnaud Renevier  <a.renevier@sisa.samsung.com>
2341
2342         use createUninitialized when creating TypedArray from another array
2343         https://bugs.webkit.org/show_bug.cgi?id=92518
2344
2345         Reviewed by Kenneth Russell.
2346
2347         * Bindings/typed-array-construct-from-array.html: Added.
2348
2349 2012-07-27  Ryosuke Niwa  <rniwa@webkit.org>
2350
2351         Add more Russian replay performance tests
2352         https://bugs.webkit.org/show_bug.cgi?id=92462
2353
2354         Reviewed by Tony Chang.
2355
2356         Add more Russian sites as suggested by loislo.
2357
2358         * Replay/Russian/lenta.ru.replay: Added.
2359         * Replay/Russian/www.ixbt.com.replay: Added.
2360         * Replay/Russian/www.kp.ru.replay: Added.
2361         * Replay/Russian/www.liveinternet.ru.replay: Added.
2362         * Replay/Russian/www.pravda.ru.replay: Added.
2363
2364 2012-07-26  Arnaud Renevier  <a.renevier@sisa.samsung.com>
2365
2366         constructing TypedArray from another TypedArray is slow
2367         https://bugs.webkit.org/show_bug.cgi?id=90838
2368
2369         Reviewed by Kenneth Russell.
2370
2371         * Bindings/typed-array-construct-from-same-type.html: Added.
2372         * Bindings/typed-array-construct-from-typed.html: Added.
2373
2374 2012-07-25  Ryosuke Niwa  <rniwa@webkit.org>
2375
2376         Import more replay performance tests from Mozilla's Tp5 test suite
2377         https://bugs.webkit.org/show_bug.cgi?id=92229
2378
2379         Reviewed by Andreas Kling.
2380
2381         Add more replay tests based on Mozilla's Tp5 test suite [1]. Unfortunately,
2382         we cannot import all URLs because some of them are not archived on archive.org
2383         and others do not replay well on web-page-replay. Nonethless, we're still adding
2384         60+ URLs in this patch.
2385
2386         [1] http://people.mozilla.org/~jmaher/tp5.manifest
2387
2388         * Replay/Chinese: Added.
2389         * Replay/Chinese/chinaz.com.replay: Added.
2390         * Replay/Chinese/www.163.com.replay: Added.
2391         * Replay/Chinese/www.alipay.com.replay: Added.
2392         * Replay/Chinese/www.baidu.com.replay: Added.
2393         * Replay/Chinese/www.csdn.net.replay: Added.
2394         * Replay/Chinese/www.douban.com.replay: Added.
2395         * Replay/Chinese/www.hao123.com.replay: Added.
2396         * Replay/Chinese/www.xinhuanet.com.replay: Added.
2397         * Replay/Chinese/www.xunlei.com.replay: Added.
2398         * Replay/Chinese/www.youku.com.replay: Added.
2399         * Replay/English: Added.
2400         * Replay/English/beatonna.livejournal.com.replay: Added.
2401         * Replay/English/cakewrecks.blogspot.com.replay: Added.
2402         * Replay/English/chemistry.about.com.replay: Added.
2403         * Replay/English/digg.com.replay: Added.
2404         * Replay/English/en.wikipedia.org-rorschach_test.replay: Added.
2405         * Replay/English/icanhascheezburger.com.replay: Added.
2406         * Replay/English/imgur.com-gallery.replay: Added.
2407         * Replay/English/online.wsj.com.replay: Added.
2408         * Replay/English/stockoverflow.com-best-comment.replay: Added.
2409         * Replay/English/www.alibaba.com.replay: Added.
2410         * Replay/English/www.amazon.com-kindle.replay: Added.
2411         * Replay/English/www.apple.com.replay: Added.
2412         * Replay/English/www.cnet.com.replay: Added.
2413         * Replay/English/www.dailymotion.com.replay: Added.
2414         * Replay/English/www.ehow.com-prevent-fire.replay: Added.
2415         * Replay/English/www.filestube.com-amy-adams.replay: Added.
2416         * Replay/English/www.foxnews.replay: Added.
2417         * Replay/English/www.huffingtonpost.com.replay: Added.
2418         * Replay/English/www.imdb.com-twilight.replay: Added.
2419         * Replay/English/www.mozilla.com-all-order.replay: Added.
2420         * Replay/English/www.php.net.replay: Added.
2421         * Replay/English/www.reddit.com.replay: Added.
2422         * Replay/English/www.telegraph.co.uk.replay: Added.
2423         * Replay/English/www.w3.org-htmlcss.replay: Added.
2424         * Replay/English/www.w3schools.com-html.replay: Added.
2425         * Replay/English/www.youtube.com-music.replay: Added.
2426         * Replay/French: Added.
2427         * Replay/French/www.orange.fr.replay: Added.
2428         * Replay/German: Added.
2429         * Replay/Italian: Added.
2430         * Replay/Italian/www.repubblica.it.replay: Added.
2431         * Replay/Japanese/entameblog.seesaa.net.replay: Added.
2432         * Replay/Japanese/www.hatena.ne.jp.replay: Added.
2433         * Replay/Japanese/www.nicovideo.jp.replay: Added.
2434         * Replay/Korean: Added.
2435         * Replay/Korean/www.naver.com.replay: Added.
2436         * Replay/Persian: Added.
2437         * Replay/Persian/blogfa.com.replay: Added.
2438         * Replay/Polish: Added.
2439         * Replay/Polish/www.wp.pl.replay: Added.
2440         * Replay/Portuguese: Added.
2441         * Replay/Portuguese/www.uol.com.br.replay: Added.
2442         * Replay/Russian: Added.
2443         * Replay/Russian/vkontakte.ru-help.replay: Added.
2444         * Replay/Russian/www.rambler.ru.replay: Added.
2445         * Replay/Russian/www.ucoz.ru.replay: Added.
2446         * Replay/Russian/www.yandex.ru.replay: Added.
2447         * Replay/Spanish: Added.
2448         * Replay/Spanish/www.taringa.net.replay: Added.
2449
2450 2012-07-24  Ryosuke Niwa  <rniwa@webkit.org>
2451
2452         Add some Japanese and Swedish websites to replay tests
2453         https://bugs.webkit.org/show_bug.cgi?id=92076
2454
2455         Reviewed by Andreas Kling.
2456
2457         Added new replay tests as follows.
2458
2459         * Replay/Japanese: Added.
2460         * Replay/Japanese/2ch.net-newsplus.replay: Added.
2461         * Replay/Japanese/ja.wikipedia.org.replay: Added.
2462         * Replay/Japanese/www.livedoor.com.replay: Added.
2463         * Replay/Japanese/www.rakuten.co.jp.replay: Added.
2464         * Replay/Japanese/www.yahoo.co.jp.replay: Added.
2465         * Replay/Swedish: Added.
2466         * Replay/Swedish/www.flashback.se.replay: Added.
2467         * Replay/Swedish/www.tradera.com.replay: Added.
2468         * Replay/www.techcrunch.com.replay: Added.
2469
2470 2012-07-18  MORITA Hajime  <morrita@google.com>
2471
2472         Add window resize benchmark
2473         https://bugs.webkit.org/show_bug.cgi?id=91070
2474
2475         Reviewed by Ryosuke Niwa.
2476
2477         Added window-resize.html which exercise html5.html. This test
2478         resizes the window and forces re-layout repeatedly.
2479
2480         * Interactive/resources/window-resize.js: Added.
2481         * Interactive/window-resize.html: Added.
2482         * Parser/resources/html5.html: Modified to inject driver scripts.
2483
2484 2012-07-11  Philip Rogers  <pdr@google.com>
2485
2486         Add a performance test for hit testing in SVG
2487         https://bugs.webkit.org/show_bug.cgi?id=90811
2488
2489         Reviewed by Ryosuke Niwa.
2490
2491         The shape rendering code is changing a lot and I'd like a performance test to
2492         make sure we don't regress, and to track our improvements.
2493
2494         Performance results in my Linux desktop:
2495             RESULT SVG: SvgHitTesting= 105.0 ms
2496             median= 103.5 ms, stdev= 4.60434577329 ms, min= 101.0 ms, max= 116.0 ms
2497
2498             RESULT SVG: SvgHitTesting= 97.8 ms
2499             median= 96.5 ms, stdev= 2.67581763205 ms, min= 95.0 ms, max= 102.0 ms
2500
2501             RESULT SVG: SvgHitTesting= 104.3 ms
2502             median= 104.0 ms, stdev= 1.41774468788 ms, min= 102.0 ms, max= 107.0 ms
2503
2504             RESULT SVG: SvgHitTesting= 103.6 ms
2505             median= 103.5 ms, stdev= 1.2 ms, min= 102.0 ms, max= 106.0 ms
2506
2507         * SVG/SvgHitTesting.html: Added.
2508
2509 2012-07-03  Jan Keromnes  <janx@linux.com>
2510
2511         Web Inspector: WebInspector.TextViewer should be renamed WebInspector.TextEditor
2512         https://bugs.webkit.org/show_bug.cgi?id=89939
2513
2514         Reviewed by Vsevolod Vlasov.
2515
2516         * inspector/first-open-scripts.html.broken:
2517
2518 2012-06-22  Philip Rogers  <pdr@google.com>
2519
2520         Make SvgCubics performance test more consistent
2521         https://bugs.webkit.org/show_bug.cgi?id=89778
2522
2523         Reviewed by Ryosuke Niwa.
2524
2525         Previously this test ran twice for each iteration, but this led to inconsistent repaints.
2526         This change updates the test to only run once per iteration, and adds even more cubics
2527         so that the test runs consistently in the 80ms range on my Linux desktop.
2528
2529         Performance results on my desktop:
2530             RESULT SVG: SvgCubics= 80.5 ms
2531             median= 82.0 ms, stdev= 3.04138126515 ms, min= 75.0 ms, max= 85.0 ms
2532
2533             RESULT SVG: SvgCubics= 80.1 ms
2534             median= 81.0 ms, stdev= 4.27668095607 ms, min= 74.0 ms, max= 88.0 ms
2535
2536             RESULT SVG: SvgCubics= 81.45 ms
2537             median= 83.0 ms, stdev= 4.01839520207 ms, min= 75.0 ms, max= 89.0 ms
2538
2539             RESULT SVG: SvgCubics= 78.9 ms
2540             median= 80.0 ms, stdev= 4.75289385533 ms, min= 72.0 ms, max= 87.0 ms
2541
2542         * SVG/SvgCubics.html:
2543
2544 2012-06-22  Ilya Tikhonovsky  <loislo@chromium.org>
2545
2546         Web Inspector: partially instrument DOM Tree native memory.
2547         https://bugs.webkit.org/show_bug.cgi?id=89568
2548
2549         This patch adds MemoryInstrumentation class that counts all visited
2550         objects and calls reportMemoryUsage.
2551
2552         Reviewed by Yury Semikhatsky.
2553
2554         * inspector/native-memory-snapshot.html:
2555
2556 2012-06-21  Kentaro Hara  <haraken@chromium.org>
2557
2558         Add a perf-test for innerHTML setter for a large DOM tree
2559         https://bugs.webkit.org/show_bug.cgi?id=89723
2560
2561         Reviewed by Ryosuke Niwa.
2562
2563         We want a benchmark for innerHTML setter for the following reason:
2564
2565         - innerHTML setter is widely used in the real world.
2566         - I am planning to optimize innerHTML setter in the near future.
2567         - I want to use the innerHTML setter benchmark for the patch of bug 88834.
2568
2569         Performance results in my Linux desktop:
2570
2571         RESULT Parser: innerHTML-setter= 289.782649995 runs/s
2572         median= 290.046269741 runs/s, stdev= 1.06575112224 runs/s, min= 286.831812256 runs/s, max= 291.005291005 runs/s
2573
2574         RESULT Parser: innerHTML-setter= 289.020706132 runs/s
2575         median= 289.093298292 runs/s, stdev= 0.985203313093 runs/s, min= 286.831812256 runs/s, max= 290.620871863 runs/s
2576
2577         RESULT Parser: innerHTML-setter= 288.912051701 runs/s
2578         median= 291.005291005 runs/s, stdev= 3.65241325588 runs/s, min= 283.505154639 runs/s, max= 292.553191489 runs/s
2579
2580         RESULT Parser: innerHTML-setter= 288.644186666 runs/s
2581         median= 288.713910761 runs/s, stdev= 1.31889053717 runs/s, min= 286.085825748 runs/s, max= 290.620871863 runs/s
2582
2583         RESULT Parser: innerHTML-setter= 288.698714577 runs/s
2584         median= 288.713910761 runs/s, stdev= 1.03938198202 runs/s, min= 286.458333333 runs/s, max= 290.237467018 runs/s
2585
2586         * Parser/innerHTML-setter.html: Added.
2587
2588 2012-06-20  Philip Rogers  <pdr@google.com>
2589
2590         Add a performance test for paths in SVG
2591         https://bugs.webkit.org/show_bug.cgi?id=89547
2592
2593         Reviewed by Ryosuke Niwa.
2594
2595         This change adds the first performance test for SVG paths.
2596         In the test we modify complex cubic paths in several ways, testing:
2597         transformations, clipping, d attribute changes, stroke properties,
2598         text on a path, and opacity.
2599
2600         Sample test results on my Linux desktop:
2601             RESULT SVG: SvgCubics= 68.85 ms
2602             median= 69.5 ms, stdev= 4.70398767005 ms, min= 56.0 ms, max= 75.0 ms
2603
2604             RESULT SVG: SvgCubics= 68.4 ms
2605             median= 69.0 ms, stdev= 3.51283361405 ms, min= 59.0 ms, max= 74.0 ms
2606
2607             RESULT SVG: SvgCubics= 66.95 ms
2608             median= 67.0 ms, stdev= 3.4420197559 ms, min= 59.0 ms, max= 74.0 ms
2609
2610             RESULT SVG: SvgCubics= 70.2 ms
2611             median= 71.5 ms, stdev= 3.23419232576 ms, min= 63.0 ms, max= 74.0 ms
2612
2613         * SVG: Added.
2614         * SVG/SvgCubics.html: Added.
2615
2616 2012-06-20  Tom Zakrajsek  <tomz@codeaurora.org>
2617
2618         Import themaninblue.com/experiment/AnimationBenchmark/ as performance tests
2619         https://bugs.webkit.org/show_bug.cgi?id=78789
2620
2621         Reviewed by Ryosuke Niwa.
2622
2623         Added PerfTestRunner fixture around it.
2624
2625         * Animation/balls.html: Added.
2626
2627 2012-06-18  Ilya Tikhonovsky  <loislo@chromium.org>
2628
2629         Web Inspector: native memory snapshot performance and coverage test implementation.
2630         https://bugs.webkit.org/show_bug.cgi?id=89363
2631
2632         We have to track the performance of MemoryAgent.getProcessMemoryDistribution.
2633         Also this test will work as a burn down chart for Unknown memory metric.
2634
2635         Reviewed by Pavel Feldman.
2636
2637         * inspector/native-memory-snapshot.html: Added.
2638         * inspector/performance-test.js:
2639         (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer):
2640         (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.reportSize):
2641         (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._dump):
2642         (initialize_TimeTracker.InspectorTest.runPerformanceTest):
2643
2644 2012-06-05  Alexei Filippov  <alexeif@chromium.org>
2645
2646         Web Inspector: serialize edge counts instead of indexes in heap snapshot
2647         https://bugs.webkit.org/show_bug.cgi?id=88324
2648
2649         The serialized node structure currently holds an index
2650         of its first containment edge in the edges array.
2651         The index can be quite big (up to 7 digits for large snapshots).
2652         The patch changes the serialization format to pass
2653         node containment edge count instead. For most nodes the count
2654         is just a single digit number.
2655         This reduces serialized snapshot size and therefore its transfer time.
2656
2657         Reviewed by Yury Semikhatsky.
2658
2659         * inspector/heap-snapshot-performance-test.js:
2660
2661 2012-06-04  Alexei Filippov  <alexeif@chromium.org>
2662
2663         Web Inspector: speed up _calculateRetainedSizes function
2664         https://bugs.webkit.org/show_bug.cgi?id=87863
2665
2666         Reviewed by Yury Semikhatsky.
2667
2668         * inspector/heap-snapshot-advanced.html: Added.
2669         * inspector/heap-snapshot-performance-test.js: Copied from PerformanceTests/inspector/heap-snapshot.html.
2670         (test.performanceTest.step0):
2671         (test.performanceTest.step1):
2672         (test.performanceTest.step2):
2673         (test.performanceTest.cleanup):
2674         (test.performanceTest.done):
2675         (test.performanceTest):
2676         (test):
2677         * inspector/heap-snapshot.html:
2678
2679 2012-06-03  Kentaro Hara  <haraken@chromium.org>
2680
2681         [perf-test] Add a benchmark of querySelector() for an element that appears in the depths in the document
2682         https://bugs.webkit.org/show_bug.cgi?id=88202
2683
2684         Reviewed by Ryosuke Niwa.
2685
2686         query-selector-first.html tests querySelector() for an element
2687         that appears at the head of the document. query-selector-last.html
2688         tests querySelector() for an element that appears at the tail of
2689         the document. In addition, we want a benchmark of querySelector()
2690         for an element that appears in the depths in the document.
2691
2692         Test results in my Linux desktop:
2693
2694         RESULT Parser: query-selector-deep= 460.776980611 runs/s
2695         median= 460.947503201 runs/s, stdev= 1.72274941942 runs/s, min= 455.696202532 runs/s, max= 463.32046332 runs/s
2696
2697         RESULT Parser: query-selector-deep= 458.925050915 runs/s
2698         median= 459.183673469 runs/s, stdev= 1.47930124139 runs/s, min= 454.545454545 runs/s, max= 460.947503201 runs/s
2699
2700         RESULT Parser: query-selector-deep= 461.866981491 runs/s
2701         median= 461.538461538 runs/s, stdev= 1.14613123359 runs/s, min= 459.183673469 runs/s, max= 463.917525773 runs/s
2702
2703         RESULT Parser: query-selector-deep= 453.922010788 runs/s
2704         median= 454.258855898 runs/s, stdev= 1.77279123317 runs/s, min= 447.204968944 runs/s, max= 455.696202532 runs/s
2705
2706         RESULT Parser: query-selector-deep= 454.666321221 runs/s
2707         median= 454.545454545 runs/s, stdev= 1.65775667417 runs/s, min= 451.127819549 runs/s, max= 456.852791878 runs/s
2708
2709         * Parser/query-selector-deep.html: Added.
2710
2711 2012-06-03  Kentaro Hara  <haraken@chromium.org>
2712
2713         [perf-test] Make query-selector-last.html more realistic
2714         https://bugs.webkit.org/show_bug.cgi?id=88203
2715
2716         Reviewed by Ryosuke Niwa.
2717
2718         query-selector-last.html tests querySelector() for an element
2719         that appears after 1000 div elements, all of which have the same
2720         id and class. To test the performance of querySelector() under
2721         a lot of ids and classes, we should make the ids and classes of
2722         the 1000 elements different.
2723
2724         This patch degrades the performance of query-selector-last.html
2725         by 3.6%.
2726
2727         [Before]
2728         RESULT Parser: query-selector-last= 476.382274152 runs/s
2729         median= 476.821192053 runs/s, stdev= 1.14578875814 runs/s, min= 474.308300395 runs/s, max= 478.087649402 runs/s
2730
2731         RESULT Parser: query-selector-last= 478.423061861 runs/s
2732         median= 478.723404255 runs/s, stdev= 1.54876867255 runs/s, min= 473.684210526 runs/s, max= 481.347773767 runs/s
2733
2734         RESULT Parser: query-selector-last= 479.849287174 runs/s
2735         median= 480.0 runs/s, stdev= 1.69849752498 runs/s, min= 475.561426684 runs/s, max= 481.927710843 runs/s
2736
2737         RESULT Parser: query-selector-last= 476.765438846 runs/s
2738         median= 477.453580902 runs/s, stdev= 1.8724488664 runs/s, min= 471.821756225 runs/s, max= 478.723404255 runs/s
2739
2740         RESULT Parser: query-selector-last= 481.715340644 runs/s
2741         median= 481.637742305 runs/s, stdev= 1.81446361145 runs/s, min= 475.561426684 runs/s, max= 483.675937122 runs/s
2742
2743         [After]
2744         RESULT Parser: query-selector-last= 458.866623582 runs/s
2745         median= 459.183673469 runs/s, stdev= 1.48881464737 runs/s, min= 453.972257251 runs/s, max= 460.947503201 runs/s
2746
2747         RESULT Parser: query-selector-last= 460.363532897 runs/s
2748         median= 460.358056266 runs/s, stdev= 1.58512056995 runs/s, min= 456.273764259 runs/s, max= 462.130937099 runs/s
2749
2750         RESULT Parser: query-selector-last= 457.727448451 runs/s
2751         median= 458.015267176 runs/s, stdev= 1.23681915516 runs/s, min= 453.972257251 runs/s, max= 459.183673469 runs/s
2752
2753         RESULT Parser: query-selector-last= 465.57336853 runs/s
2754         median= 465.717981889 runs/s, stdev= 1.6616925374 runs/s, min= 460.947503201 runs/s, max= 467.532467532 runs/s
2755
2756         RESULT Parser: query-selector-last= 459.836252019 runs/s
2757         median= 459.770114943 runs/s, stdev= 1.84485630505 runs/s, min= 455.696202532 runs/s, max= 462.724935733 runs/s
2758
2759         * Parser/query-selector-last.html:
2760
2761 2012-06-01  Ryosuke Niwa  <rniwa@webkit.org>
2762
2763         Add public page loading performance tests using web-page-replay
2764         https://bugs.webkit.org/show_bug.cgi?id=84008
2765
2766         Reviewed by Dirk Pranke.
2767
2768         Add replay tests for google.com and youtube.com as examples.
2769
2770         * Replay: Added.
2771         * Replay/www.google.com.replay: Added.
2772         * Replay/www.youtube.com.replay: Added.
2773
2774 2012-05-30  Kentaro Hara  <haraken@chromium.org>
2775
2776         [perf-test] Add a benchmark for querySelector()
2777         https://bugs.webkit.org/show_bug.cgi?id=87742
2778
2779         Reviewed by Ryosuke Niwa.
2780
2781         Now I am optimizing querySelector() (bug 87625).
2782         This patch adds a performance test for querySelector().
2783         query-selector-first.html queries an element that appears
2784         at the head of the document. On the other hand,
2785         query-selector-last.html queries an element that appears
2786         at the tail of the document.
2787
2788         Test results in my desktop:
2789
2790         [query-selector-first.html]
2791         RESULT Parser: query-selector-first= 252.339803014 runs/s
2792         median= 253.646265594 runs/s, stdev= 2.32610873209 runs/s, min= 248.138957816 runs/s, max= 254.777070064 runs/s
2793
2794         RESULT Parser: query-selector-first= 252.688468897 runs/s
2795         median= 252.684876579 runs/s, stdev= 3.60008778708 runs/s, min= 246.002460025 runs/s, max= 258.397932817 runs/s
2796
2797         RESULT Parser: query-selector-first= 253.466019656 runs/s
2798         median= 254.129606099 runs/s, stdev= 1.78002675664 runs/s, min= 247.831474597 runs/s, max= 254.777070064 runs/s
2799
2800         RESULT Parser: query-selector-first= 256.245078189 runs/s
2801         median= 257.06940874 runs/s, stdev= 2.84722072201 runs/s, min= 249.687890137 runs/s, max= 259.74025974 runs/s
2802
2803         RESULT Parser: query-selector-first= 252.203100497 runs/s
2804         median= 252.047989175 runs/s, stdev= 1.75233446036 runs/s, min= 248.138957816 runs/s, max= 255.427841635 runs/s
2805
2806         [query-selector-last.html]
2807         RESULT Parser: query-selector-last= 356.009616076 runs/s
2808         median= 355.781448539 runs/s, stdev= 0.841519086864 runs/s, min= 354.430379747 runs/s, max= 358.056265985 runs/s
2809
2810         RESULT Parser: query-selector-last= 360.735271001 runs/s
2811         median= 361.057532424 runs/s, stdev= 1.12253219867 runs/s, min= 358.514724712 runs/s, max= 362.225097025 runs/s
2812
2813         RESULT Parser: query-selector-last= 359.598592463 runs/s
2814         median= 359.435173299 runs/s, stdev= 0.816538258728 runs/s, min= 358.056265985 runs/s, max= 360.824742268 runs/s
2815
2816         RESULT Parser: query-selector-last= 357.260651715 runs/s
2817         median= 357.598978289 runs/s, stdev= 1.17393159885 runs/s, min= 353.982300885 runs/s, max= 358.974358974 runs/s
2818
2819         RESULT Parser: query-selector-last= 351.696240713 runs/s
2820         median= 351.980025916 runs/s, stdev= 1.14200564038 runs/s, min= 348.692403487 runs/s, max= 353.535353535 runs/s
2821
2822         * Parser/query-selector-first.html: Added.
2823         * Parser/query-selector-last.html: Added.
2824
2825 2012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
2826
2827         Web Inspector: HeapSnapshot: introduce performance counter for HeapSnapshotConstructorsDataGrid._aggregatesReceived method.
2828         https://bugs.webkit.org/show_bug.cgi?id=87393
2829
2830         Reviewed by Yury Semikhatsky.
2831
2832         * inspector/heap-snapshot.html:
2833
2834 2012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
2835
2836         Web Inspector: HeapProfiler's perf test: each N-th run pushes the run results N-th times.
2837         https://bugs.webkit.org/show_bug.cgi?id=87476
2838
2839         The time tracking wrappers were attaching on each run.
2840
2841         Reviewed by Yury Semikhatsky.
2842
2843         * inspector/heap-snapshot.html:
2844
2845 2012-05-22  Ilya Tikhonovsky  <loislo@chromium.org>
2846
2847         Web Inspector: HeapProfiler: upstream retainedSize calculation.
2848         https://bugs.webkit.org/show_bug.cgi?id=87107
2849
2850         This patch upstreams V8::HeapSnapshotGenerator::CalculateRetainedSizes function to front-end.
2851         After that we will be able to drop retainedSize field from the snapshot serialized data.
2852         See meta-bug https://bugs.webkit.org/show_bug.cgi?id=87089
2853
2854         Reviewed by Yury Semikhatsky.
2855
2856         * inspector/heap-snapshot.html: add counter for the _calculateRetainedSize method.
2857
2858 2012-05-21  Kent Tamura  <tkent@chromium.org>
2859
2860         Add performance tests for <textarea>
2861         https://bugs.webkit.org/show_bug.cgi?id=86994
2862
2863         Reviewed by Ryosuke Niwa.
2864
2865         * DOM/textarea-dom.html: Added.
2866         * DOM/textarea-edit.html: Added.
2867         * Parser/textarea-parsing.html: Added.
2868
2869 2012-05-18  Ilya Tikhonovsky  <loislo@chromium.org>
2870
2871         Web Inspector: upstream build dominators tree procedure from v8.
2872         https://bugs.webkit.org/show_bug.cgi?id=86640
2873
2874         The idea is to reduce transfer size and move all the post-processing steps to the front-end.
2875         The JS implementation is ~1.5 times slower.
2876
2877         Reviewed by Yury Semikhatsky.
2878
2879         Covered by existing tests and performance tests.
2880
2881         * inspector/heap-snapshot.html:
2882
2883 2012-05-18  Kentaro Hara  <haraken@chromium.org>
2884
2885         [perf-test] Remove Bindings/dom-attributes.html
2886         https://bugs.webkit.org/show_bug.cgi?id=86820
2887
2888         Reviewed by Ryosuke Niwa.
2889
2890         Bindings/dom-attributes.html is just a collection of random
2891         DOM attributes and methods. Now we've added more reasonable
2892         micro benchmarks by classifying DOM binding call paths, we
2893         can remove Bindings/dom-attributes.html.
2894
2895         * Bindings/dom-attributes.html: Removed.
2896
2897 2012-05-18  Kentaro Hara  <haraken@chromium.org>
2898
2899         [perf-test] Add a binding benchmark for getElementById() for an undefined id
2900         https://bugs.webkit.org/show_bug.cgi?id=86812
2901
2902         Reviewed by Ryosuke Niwa.
2903
2904         We should remove Bindings/dom-attributes.html and instead add more
2905         reasonable micro benchmarks by classifying DOM binding call paths.
2906
2907         This patch adds a benchmark for document.getElementById() for an undefined id.
2908         This benchmark covers 'getElementById (not in document)' in Dromaeo/dom-query.html,
2909         and other Node-query methods that return a null.'
2910
2911         (Note: This benchmark is slower than document.getElementById() for a defined id.
2912         We will fix the performance issue soon.)
2913
2914         Test results in my Linux desktop:
2915
2916         RESULT Bindings: undefined-get-element-by-id= 271.945751345 runs/s
2917         median= 273.122389532 runs/s, stdev= 6.78219237299 runs/s, min= 257.4002574 runs/s, max= 281.690140845 runs/s
2918
2919         RESULT Bindings: undefined-get-element-by-id= 269.105872408 runs/s
2920         median= 268.948655257 runs/s, stdev= 5.73707323755 runs/s, min= 257.4002574 runs/s, max= 278.128950695 runs/s
2921
2922         RESULT Bindings: undefined-get-element-by-id= 269.987513372 runs/s
2923         median= 272.952853598 runs/s, stdev= 5.30252336078 runs/s, min= 255.754475703 runs/s, max= 273.97260274 runs/s
2924
2925         RESULT Bindings: undefined-get-element-by-id= 270.169625901 runs/s
2926         median= 271.604938272 runs/s, stdev= 5.29502391906 runs/s, min= 258.064516129 runs/s, max= 278.481012658 runs/s
2927
2928         RESULT Bindings: undefined-get-element-by-id= 269.054631422 runs/s
2929         median= 267.966292802 runs/s, stdev= 6.27197240579 runs/s, min= 258.064516129 runs/s, max= 278.481012658 runs/s
2930
2931         * Bindings/undefined-get-element-by-id.html: Added.
2932
2933 2012-05-18  Kentaro Hara  <haraken@chromium.org>
2934
2935         [perf-test] Add a binding benchmark for getElementsByTagName()
2936         https://bugs.webkit.org/show_bug.cgi?id=86810
2937
2938         Reviewed by Ryosuke Niwa.
2939
2940         We should remove Bindings/dom-attributes.html and instead add more
2941         reasonable micro benchmarks by classifying DOM binding call paths.
2942
2943         This patch adds a benchmark for document.getElementsByTagName().
2944         This benchmark covers 'getElementsByTagName (not in document)',
2945         'getElementsByTagName', 'getElementsByName (not in document)'
2946         and 'getElementsByName' in Dromaeo/dom-query.html, and other DOM
2947         methods that return a NodeList.
2948
2949         Test results in my Linux desktop:
2950
2951         RESULT Bindings: get-elements-by-tag-name= 364.542328875 runs/s
2952         median= 366.972477064 runs/s, stdev= 5.25387955333 runs/s, min= 351.317440402 runs/s, max= 368.421052632 runs/s
2953
2954         RESULT Bindings: get-elements-by-tag-name= 364.341569369 runs/s
2955         median= 366.492146597 runs/s, stdev= 4.867374197 runs/s, min= 352.644836272 runs/s, max= 367.936925099 runs/s
2956
2957         RESULT Bindings: get-elements-by-tag-name= 363.924242967 runs/s
2958         median= 366.013071895 runs/s, stdev= 5.16768212289 runs/s, min= 351.317440402 runs/s, max= 367.936925099 runs/s
2959
2960         RESULT Bindings: get-elements-by-tag-name= 365.332594438 runs/s
2961         median= 367.454068241 runs/s, stdev= 6.17046918572 runs/s, min= 350.0 runs/s, max= 370.37037037 runs/s
2962
2963         RESULT Bindings: get-elements-by-tag-name= 363.999514324 runs/s
2964         median= 366.492146597 runs/s, stdev= 5.31235674905 runs/s, min= 350.877192982 runs/s, max= 368.421052632 runs/s
2965
2966         * Bindings/get-elements-by-tag-name.html: Added.
2967
2968 2012-05-18  Kentaro Hara  <haraken@chromium.org>
2969
2970         [perf-test] Add 7 micro benchmarks for DOM bindings
2971         https://bugs.webkit.org/show_bug.cgi?id=86816
2972
2973         Reviewed by Ryosuke Niwa.
2974
2975         We should remove Bindings/dom-attributes.html and instead add more
2976         reasonable micro benchmarks by classifying DOM binding call paths.
2977         This patch adds seven micro benchmarks for DOM bindings.
2978
2979         id-getter.html covers 'element.property' in Dromaeo/dom-attr.html,
2980         'innerHTML' in Dromaeo/dom-modify.html, and other DOM attributes that
2981         return a String.
2982
2983         id-setter.html covers 'element.property = value' in Dromaeo/dom-attr.html,
2984         and other DOM attributes that sets a String.
2985
2986         undefined-id-getter.html covers undefined DOM attributes that return an empty String.
2987
2988         append-child.html covers 'appendChild' and 'removeChild' in Dromaeo/dom-modify.html.
2989
2990         insert-before.html covers 'insertBefore' in Dromaeo/dom-modify.html and replaceChild().
2991
2992         create-element.html covers 'createElement', 'createTextNode' and 'cloneNode'
2993         in Dromaeo/dom-modify.html, and other DOM methods that return a new Node object.
2994
2995         node-list-access.html covers 'childNodes' in Dromaeo/dom-traverse.html,
2996         and other DOM attributes that access NodeList.
2997
2998         Test results in my Linux desktop:
2999
3000         [id-getter]
3001         RESULT Bindings: id-getter= 550.517821097 runs/s
3002         median= 550.688360451 runs/s, stdev= 0.970723739106 runs/s, min= 548.628428928 runs/s, max= 552.070263488 runs/s
3003
3004         RESULT Bindings: id-getter= 550.655839847 runs/s
3005         median= 550.688360451 runs/s, stdev= 1.03312821884 runs/s, min= 549.313358302 runs/s, max= 552.070263488 runs/s
3006
3007         RESULT Bindings: id-getter= 550.277753355 runs/s
3008         median= 550.344180225 runs/s, stdev= 1.19960683464 runs/s, min= 547.945205479 runs/s, max= 552.070263488 runs/s
3009
3010         RESULT Bindings: id-getter= 550.072271009 runs/s
3011         median= 550.344180225 runs/s, stdev= 1.38925152131 runs/s, min= 547.263681592 runs/s, max= 552.070263488 runs/s
3012
3013         RESULT Bindings: id-getter= 548.802050235 runs/s
3014         median= 548.628428928 runs/s, stdev= 1.18244513683 runs/s, min= 545.905707196 runs/s, max= 550.688360451 runs/s
3015
3016         [id-setter]
3017         RESULT Bindings: id-setter= 211.370591663 runs/s
3018         median= 210.803689065 runs/s, stdev= 1.4555795889 runs/s, min= 209.973753281 runs/s, max= 214.285714286 runs/s
3019
3020         RESULT Bindings: id-setter= 215.439081352 runs/s
3021         median= 214.797136038 runs/s, stdev= 1.50920388121 runs/s, min= 213.049267643 runs/s, max= 218.446601942 runs/s
3022
3023         RESULT Bindings: id-setter= 216.721698466 runs/s
3024         median= 215.956886352 runs/s, stdev= 1.54090749644 runs/s, min= 214.285714286 runs/s, max= 219.78021978 runs/s
3025
3026         RESULT Bindings: id-setter= 216.343019087 runs/s
3027         median= 215.827338129 runs/s, stdev= 1.46619894553 runs/s, min= 215.053763441 runs/s, max= 218.97810219 runs/s
3028
3029         RESULT Bindings: id-setter= 216.799288017 runs/s
3030         median= 215.956886352 runs/s, stdev= 1.49100776978 runs/s, min= 215.311004785 runs/s, max= 219.78021978 runs/s
3031
3032         [undefined-id-getter]
3033         RESULT Bindings: undefined-id-getter= 494.104255241 runs/s
3034         median= 494.132368875 runs/s, stdev= 1.13092821109 runs/s, min= 490.797546012 runs/s, max= 495.662949195 runs/s
3035
3036         RESULT Bindings: undefined-id-getter= 493.921802916 runs/s
3037         median= 493.827160494 runs/s, stdev= 1.25097443119 runs/s, min= 490.196078431 runs/s, max= 495.662949195 runs/s
3038
3039         RESULT Bindings: undefined-id-getter= 491.976485667 runs/s
3040         median= 492.004920049 runs/s, stdev= 0.947090576896 runs/s, min= 490.196078431 runs/s, max= 493.827160494 runs/s
3041
3042         RESULT Bindings: undefined-id-getter= 491.987710185 runs/s
3043         median= 494.132368875 runs/s, stdev= 8.66602543327 runs/s, min= 454.545454545 runs/s, max= 495.662949195 runs/s
3044
3045         RESULT Bindings: undefined-id-getter= 494.195515847 runs/s
3046         median= 494.437577256 runs/s, stdev= 1.06135681702 runs/s, min= 490.797546012 runs/s, max= 495.662949195 runs/s
3047
3048         [append-child]
3049         RESULT Bindings: append-child= 260.628237026 runs/s
3050         median= 260.926399352 runs/s, stdev= 2.55231060598 runs/s, min= 256.739409499 runs/s, max= 265.604249668 runs/s
3051
3052         RESULT Bindings: append-child= 280.796193436 runs/s
3053         median= 280.791435348 runs/s, stdev= 2.53961321867 runs/s, min= 277.427490542 runs/s, max= 286.085825748 runs/s
3054
3055         RESULT Bindings: append-child= 279.856209714 runs/s
3056         median= 280.25477707 runs/s, stdev= 2.85447647301 runs/s, min= 275.344180225 runs/s, max= 284.237726098 runs/s
3057
3058         RESULT Bindings: append-child= 280.834502714 runs/s
3059         median= 280.25477707 runs/s, stdev= 2.67738046429 runs/s, min= 277.427490542 runs/s, max= 287.206266319 runs/s
3060
3061         RESULT Bindings: append-child= 274.723872106 runs/s
3062         median= 273.291925466 runs/s, stdev= 3.03671746706 runs/s, min= 272.614622057 runs/s, max= 282.413350449 runs/s
3063
3064         [insert-before]
3065         RESULT Bindings: insert-before= 180.986913006 runs/s
3066         median= 180.878552972 runs/s, stdev= 0.758038687299 runs/s, min= 180.18018018 runs/s, max= 183.968462549 runs/s
3067
3068         RESULT Bindings: insert-before= 186.339916144 runs/s
3069         median= 186.170212766 runs/s, stdev= 0.869022097127 runs/s, min= 185.676392573 runs/s, max= 189.798339265 runs/s
3070
3071         RESULT Bindings: insert-before= 189.45344838 runs/s
3072         median= 189.349112426 runs/s, stdev= 0.811854866567 runs/s, min= 187.79342723 runs/s, max= 192.539109507 runs/s
3073
3074         RESULT Bindings: insert-before= 189.363295991 runs/s
3075         median= 189.349112426 runs/s, stdev= 0.75387713097 runs/s, min= 188.014101058 runs/s, max= 192.076830732 runs/s
3076
3077         RESULT Bindings: insert-before= 189.252041642 runs/s
3078         median= 189.349112426 runs/s, stdev= 0.840447225363 runs/s, min= 187.573270809 runs/s, max= 192.076830732 runs/s
3079
3080         [create-element]
3081         RESULT Bindings: create-element= 280.675830077 runs/s
3082         median= 280.701824914 runs/s, stdev= 0.788606343054 runs/s, min= 279.441117764 runs/s, max= 282.542885974 runs/s
3083
3084         RESULT Bindings: create-element= 276.427631436 runs/s
3085         median= 277.227722772 runs/s, stdev= 3.39874667549 runs/s, min= 262.417994377 runs/s, max= 279.162512463 runs/s
3086
3087         RESULT Bindings: create-element= 277.156894411 runs/s
3088         median= 277.227722772 runs/s, stdev= 1.13255119226 runs/s, min= 274.914089347 runs/s, max= 278.884462151 runs/s
3089
3090         RESULT Bindings: create-element= 278.066825356 runs/s
3091         median= 278.191822254 runs/s, stdev= 0.686497782792 runs/s, min= 276.953511375 runs/s, max= 279.162512463 runs/s
3092
3093         RESULT Bindings: create-element= 276.431538109 runs/s
3094         median= 276.406712734 runs/s, stdev= 0.759593662298 runs/s, min= 275.229357798 runs/s, max= 278.053624628 runs/s
3095
3096         [node-list-access]
3097         RESULT Bindings: node-list-access= 222.747504073 runs/s
3098         median= 222.772277228 runs/s, stdev= 0.789027527555 runs/s, min= 221.674876847 runs/s, max= 224.159402242 runs/s
3099
3100         RESULT Bindings: node-list-access= 220.722448287 runs/s
3101         median= 221.266217576 runs/s, stdev= 1.65463497875 runs/s, min= 217.391304348 runs/s, max= 222.222222222 runs/s
3102
3103         RESULT Bindings: node-list-access= 222.195870443 runs/s
3104         median= 222.222222222 runs/s, stdev= 0.489709262091 runs/s, min= 221.13022113 runs/s, max= 223.048327138 runs/s
3105
3106         RESULT Bindings: node-list-access= 221.431121677 runs/s
3107         median= 221.538545435 runs/s, stdev= 0.608292116087 runs/s, min= 220.048899756 runs/s, max= 222.772277228 runs/s
3108
3109         RESULT Bindings: node-list-access= 219.001367135 runs/s
3110         median= 221.538545435 runs/s, stdev= 4.65773933007 runs/s, min= 209.973753281 runs/s, max= 222.496909765 runs/s
3111
3112         * Bindings/append-child.html: Added.
3113         * Bindings/create-element.html: Added.
3114         * Bindings/id-getter.html: Added.
3115         * Bindings/id-setter.html: Added.
3116         * Bindings/insert-before.html: Added.
3117         * Bindings/node-list-access.html: Added.
3118         * Bindings/undefined-id-getter.html: Added.
3119
3120 2012-05-18  Kentaro Hara  <haraken@chromium.org>
3121
3122         [perf-test] Add a binding benchmark for div.setAttribute()
3123         https://bugs.webkit.org/show_bug.cgi?id=86815
3124
3125         Reviewed by Ryosuke Niwa.
3126
3127         We should remove Bindings/dom-attributes.html and instead add more
3128         reasonable micro benchmarks by classifying DOM binding call paths.
3129
3130         This patch adds a benchmark for div.setAttribute(). This benchmark
3131         covers 'setAttribute' in Dromaeo/dom-attr.html and other DOM methods
3132         that return an undefined.
3133
3134         Test results in my Linux desktop:
3135
3136         RESULT Bindings: set-attribute= 793.745073252 runs/s
3137         median= 791.589665765 runs/s, stdev= 6.00467159709 runs/s, min= 785.27607362 runs/s, max= 808.080808081 runs/s
3138
3139         RESULT Bindings: set-attribute= 790.858444164 runs/s
3140         median= 787.918921436 runs/s, stdev= 7.86264953655 runs/s, min= 780.234070221 runs/s, max= 806.04534005 runs/s
3141
3142         RESULT Bindings: set-attribute= 787.277571417 runs/s
3143         median= 784.31372549 runs/s, stdev= 7.45363346657 runs/s, min= 778.588807786 runs/s, max= 804.020100503 runs/s
3144
3145         RESULT Bindings: set-attribute= 782.401393791 runs/s
3146         median= 779.062978802 runs/s, stdev= 6.48250081621 runs/s, min= 777.642770352 runs/s, max= 796.019900498 runs/s
3147
3148         RESULT Bindings: set-attribute= 791.792516608 runs/s
3149         median= 791.556728232 runs/s, stdev= 6.49182980397 runs/s, min= 779.220779221 runs/s, max= 808.080808081 runs/s
3150
3151         * Bindings/set-attribute.html: Added.
3152
3153 2012-05-17  Kentaro Hara  <haraken@chromium.org>
3154
3155         [perf-test] Add a binding benchmark for div.getAttribute()
3156         https://bugs.webkit.org/show_bug.cgi?id=86814
3157
3158         Reviewed by Ryosuke Niwa.
3159
3160         We should remove Bindings/dom-attributes.html and instead add more
3161         reasonable micro benchmarks by classifying DOM binding call paths.
3162
3163         This patch adds a benchmark for div.getAttribute(). This benchmark
3164         covers 'getAttribute' in Dromaeo/dom-attr.html, and other DOM methods
3165         that return a String.
3166
3167         Test results in my Linux desktop:
3168
3169         RESULT Bindings: get-attribute= 250.088158538 runs/s
3170         median= 250.469728765 runs/s, stdev= 4.66551901315 runs/s, min= 240.673886883 runs/s, max= 256.739409499 runs/s
3171
3172         RESULT Bindings: get-attribute= 250.209764698 runs/s
3173         median= 250.626959986 runs/s, stdev= 4.12030002477 runs/s, min= 241.254523522 runs/s, max= 255.102040816 runs/s
3174
3175         RESULT Bindings: get-attribute= 248.907532887 runs/s
3176         median= 250.312891114 runs/s, stdev= 3.23173125874 runs/s, min= 240.673886883 runs/s, max= 251.572327044 runs/s
3177
3178         RESULT Bindings: get-attribute= 250.243680844 runs/s
3179         median= 250.783797637 runs/s, stdev= 4.19327170024 runs/s, min= 240.963855422 runs/s, max= 255.102040816 runs/s
3180
3181         RESULT Bindings: get-attribute= 245.329046608 runs/s
3182         median= 244.948040416 runs/s, stdev= 2.24314248534 runs/s, min= 240.384615385 runs/s, max= 248.756218905 runs/s
3183
3184         * Bindings/get-attribute.html: Added.
3185
3186 2012-05-17  Kentaro Hara  <haraken@chromium.org>
3187
3188         [perf-test] Add a binding benchmark for getElementById()
3189         https://bugs.webkit.org/show_bug.cgi?id=86808
3190
3191         Reviewed by Ryosuke Niwa.
3192
3193         Currently Bindings/dom-attributes.html is just a collection
3194         of random DOM attributes and methods. We should remove it and
3195         instead add more reasonable micro benchmarks by classifying
3196         DOM binding call paths.
3197
3198         This patch adds a benchmark for document.getElementById(),
3199         which covers other DOM methods that return a Node Object.
3200
3201         The reason why we want to add a benchmark for document.getElementById()
3202         in spite of the fact that Dromaeo/dom-query.html is already testing
3203         document.getElementById(), is that Dromaeo/dom-query.html outputs one
3204         result for several benchmarks (i.e. getElementById().nodeType,
3205         getElementsByTagName()[0].nodeType etc), and thus we cannot observe
3206         regression of getElementById() itself. (Catching regression of
3207         getElementById() would be critical.)
3208
3209         Test results in my Linux desktop:
3210
3211         RESULT Bindings: get-element-by-id= 300.933707795 runs/s
3212         median= 302.267002519 runs/s, stdev= 3.04954648504 runs/s, min= 295.930949445 runs/s, max= 305.34351145 runs/s
3213
3214         RESULT Bindings: get-element-by-id= 302.030324483 runs/s
3215         median= 302.267481977 runs/s, stdev= 1.78518068367 runs/s, min= 298.507462687 runs/s, max= 304.568527919 runs/s
3216
3217         RESULT Bindings: get-element-by-id= 301.993483538 runs/s
3218         median= 302.648171501 runs/s, stdev= 1.87604126626 runs/s, min= 296.662546354 runs/s, max= 304.568527919 runs/s
3219
3220         RESULT Bindings: get-element-by-id= 301.936607982 runs/s
3221         median= 302.45758701 runs/s, stdev= 1.88991087072 runs/s, min= 298.879202989 runs/s, max= 304.955527319 runs/s
3222
3223         RESULT Bindings: get-element-by-id= 301.952234563 runs/s
3224         median= 302.648171501 runs/s, stdev= 1.59929752614 runs/s, min= 299.625468165 runs/s, max= 304.568527919 runs/s
3225
3226         * Bindings/get-element-by-id.html: Added.
3227
3228 2012-05-17  Kentaro Hara  <haraken@chromium.org>
3229
3230         [perf-test] Add a benchmark for body.scrollTop
3231         https://bugs.webkit.org/show_bug.cgi?id=86806
3232
3233         Reviewed by Ryosuke Niwa.
3234
3235         Currently Bindings/dom-attributes.html is just a collection of random
3236         DOM attributes and methods. We should remove it and instead add more
3237         reasonable micro benchmarks by classifying DOM binding call paths.
3238
3239         This patch adds a benchmark for body.scrollTop, which covers other
3240         DOM attributes that return small integers.
3241
3242         (Note: Performance optimization for the benchmark will be coming soon.)
3243
3244         Test results in my Linux desktop:
3245
3246         RESULT Bindings: scroll-top= 209.410654239 runs/s
3247         median= 211.64021164 runs/s, stdev= 4.09958741195 runs/s, min= 201.005025126 runs/s, max= 212.483399734 runs/s
3248
3249         RESULT Bindings: scroll-top= 195.651111157 runs/s
3250         median= 196.319018405 runs/s, stdev= 1.77011627406 runs/s, min= 191.846522782 runs/s, max= 197.28729963 runs/s
3251         RESULT Bindings: scroll-top= 200.004907612 runs/s
3252         median= 201.511335013 runs/s, stdev= 3.27455403827 runs/s, min= 193.236714976 runs/s, max= 202.53164557 runs/s
3253
3254         RESULT Bindings: scroll-top= 209.582737512 runs/s
3255         median= 210.803689065 runs/s, stdev= 3.16769655464 runs/s, min= 203.045685279 runs/s, max= 211.920529801 runs/s
3256
3257         RESULT Bindings: scroll-top= 199.924607687 runs/s
3258         median= 201.13144338 runs/s, stdev= 3.11080503619 runs/s, min= 193.003618818 runs/s, max= 202.02020202 runs/s
3259
3260         * Bindings/scroll-top.html: Added.
3261
3262 2012-05-17  Kentaro Hara  <haraken@chromium.org>
3263
3264         [perf-test] Add a micro benchmark for div.firstChild getter for an undefined firstChild
3265         https://bugs.webkit.org/show_bug.cgi?id=86725
3266
3267         Reviewed by Ryosuke Niwa.
3268
3269         We are going to remove Bindings/dom-attributes.html and instead add more
3270         reasonable micro benchmarks by classifying DOM binding call paths.
3271
3272         In this bug, we add a micro benchmark for div.firstChild getter for an
3273         undefined firstChild. This benchmark covers other undefined DOM attributes
3274         that return a null.
3275
3276         (Note: In V8, div.firstChild for an undefined firstChild is currently slower
3277         than div.firstChild for a defined firstChild.)
3278
3279         Test results in my Linux desktop:
3280
3281         RESULT Bindings: undefined-first-child= 541.408311042 runs/s
3282         median= 541.205412054 runs/s, stdev= 1.29841219187 runs/s, min= 537.897310513 runs/s, max= 543.209876543 runs/s
3283
3284         RESULT Bindings: undefined-first-child= 541.00750695 runs/s
3285         median= 540.540540541 runs/s, stdev= 0.967521230965 runs/s, min= 539.215686275 runs/s, max= 543.209876543 runs/s
3286
3287         RESULT Bindings: undefined-first-child= 523.630714897 runs/s
3288         median= 523.560209424 runs/s, stdev= 1.01570919645 runs/s, min= 522.193211488 runs/s, max= 525.624178712 runs/s
3289
3290         RESULT Bindings: undefined-first-child= 553.077663588 runs/s
3291         median= 553.459119497 runs/s, stdev= 0.805697397863 runs/s, min= 551.378446115 runs/s, max= 554.156171285 runs/s
3292
3293         RESULT Bindings: undefined-first-child= 541.5401432 runs/s
3294         median= 541.538666618 runs/s, stdev= 0.954301364767 runs/s, min= 539.877300613 runs/s, max= 543.209876543 runs/s
3295
3296         * Bindings/undefined-first-child.html: Added.
3297
3298 2012-05-17  Kentaro Hara  <haraken@chromium.org>
3299
3300         [Performance test] Add a micro benchmark for div.firstChild getter
3301         https://bugs.webkit.org/show_bug.cgi?id=86582
3302
3303         Reviewed by Ryosuke Niwa.
3304
3305         We are going to remove Bindings/dom-attributes.html and instead add more
3306         reasonable micro benchmarks by classifying DOM binding call paths.
3307
3308         In this bug, we add a micro benchmark for div.firstChild getter.
3309         This benchmark covers 'firstChild', 'lastChild', 'nextSibling' and
3310         'previousSibling' in Dromaeo/dom-traverse.html, and other DOM attributes
3311         that return a Node object.
3312
3313         Multiple test results in my Linux desktop:
3314
3315         RESULT Bindings: first-child= 798.157160346 runs/s
3316         median= 798.004987531 runs/s, stdev= 1.52006063407 runs/s, min= 796.019900498 runs/s, max= 801.001251564 runs/s
3317         RESULT Bindings: first-child= 797.603608554 runs/s
3318         median= 797.872340426 runs/s, stdev= 2.2522621261 runs/s, min= 791.556728232 runs/s, max= 801.001251564 runs/s
3319         RESULT Bindings: first-child= 798.656295468 runs/s
3320         median= 798.004987531 runs/s, stdev= 1.79367478063 runs/s, min= 797.01120797 runs/s, max= 803.011292346 runs/s
3321         RESULT Bindings: first-child= 797.812784267 runs/s
3322         median= 798.004987531 runs/s, stdev= 2.31766523191 runs/s, min= 791.100123609 runs/s, max= 802.005012531 runs/s
3323         RESULT Bindings: first-child= 797.963311597 runs/s
3324         median= 798.004987531 runs/s, stdev= 2.53014907337 runs/s, min= 789.14919852 runs/s, max= 801.001251564 runs/s
3325
3326         * Bindings/first-child.html: Added.
3327
3328 2012-05-16  Kentaro Hara  <haraken@chromium.org>
3329
3330         [Performance test] Support "description" for PerfTestRunner.run and PerfTestRunner.runPerSecond
3331         https://bugs.webkit.org/show_bug.cgi?id=86696
3332
3333         Reviewed by Ryosuke Niwa.
3334
3335         We want to add some description for each PerfTestRunner.run and
3336         PerfTestRunner.runPerSecond, so that people can know what each
3337         run is testing.
3338
3339         Output example:
3340
3341         $ ./Tools/Scripts/run-perf-tests Bindings/first-child.html
3342         Running Bindings/first-child.html (1 of 1)
3343         DESCRIPTION: Benchmark for DOM attributes that return a Node object.
3344         RESULT Bindings: first-child= 788.359076534 runs/s
3345         median= 797.508097751 runs/s, stdev= 19.0972905207 runs/s, min= 746.666666667 runs/s, max= 801.001251564 runs/s
3346
3347         * resources/runner.js:
3348         (PerfTestRunner.logStatistics):
3349         (PerfTestRunner.printStatistics):
3350         (PerfTestRunner.runPerSecond):
3351
3352 2012-05-16  Yury Semikhatsky  <yurys@chromium.org>
3353
3354         Unreviewed. Fix heap profiler performance test after r117234.
3355
3356         * inspector/heap-snapshot.html:
3357
3358 2012-05-14  Ryosuke Niwa  <rniwa@webkit.org>
3359
3360         Convert CSS and Parser tests to runs/s tests
3361         https://bugs.webkit.org/show_bug.cgi?id=86399
3362
3363         Reviewed by Ojan Vafai.
3364
3365         Use runPerSecond instead of run to measure results in function calls per second (run/s) instead of time (ms).
3366         This allows us to continue measuring performance reliably even when WebKit's performance improves and results
3367         become too small for Date.now()'s precision (around 15 ms).
3368
3369         It should also reduce perf. bots cycle time for slower tests because we limit the number of function calls by time.
3370
3371         * CSS/CSSPropertySetterGetter.html:
3372         * CSS/CSSPropertyUpdateValue.html:
3373         * Parser/css-parser-yui.html:
3374         * Parser/simple-url.html:
3375         * Parser/tiny-innerHTML.html:
3376         * Parser/url-parser.html:
3377         * Parser/xml-parser.html:
3378
3379 2012-05-14  Dan Bernstein  <mitz@apple.com>
3380
3381         Add a line layout performance test
3382         https://bugs.webkit.org/show_bug.cgi?id=86216
3383
3384         Reviewed by Ryosuke Niwa.
3385
3386         * Layout/line-layout.html: Added.
3387
3388 2012-05-14  Tony Chang  <tony@chromium.org>
3389
3390         Don't append log lines while perf tests are running.
3391         https://bugs.webkit.org/show_bug.cgi?id=86028
3392
3393         Reviewed by Ryosuke Niwa.
3394
3395         In some tests, the extra DOM nodes can cause the test timing to change.
3396         Avoid adding DOM nodes until the test is over. When running in a browser,
3397         we append nodes as we run so the user can have some feedback.
3398
3399         * resources/runner.js:
3400         (PerfTestRunner.log): Store the log lines in an array until the test is finished.
3401
3402 2012-05-14  Ryosuke Niwa  <rniwa@webkit.org>
3403
3404         Build fix. Don't adjust calls per iteration in the second run.
3405
3406         * resources/runner.js:
3407         (PerfTestRunner._perSecondRunner):
3408
3409 2012-05-13  Ryosuke Niwa  <rniwa@webkit.org>
3410
3411         performance tests should be able to measure runs/sec rather than time
3412         https://bugs.webkit.org/show_bug.cgi?id=86021
3413
3414         Reviewed by Ojan Vafai.
3415
3416         Add PerfTestRunner.runPerSecond. It uses _runLoop but replaces _runner by _perSecondRunner
3417         to compute runs/s of runFunction.
3418
3419         When _perSecondRunner is called for the first time, i.e. _completedRuns is 0 (notice this is -1
3420         in regular run/_runner), it slowly increases the number of function calls to runFunction between
3421         time measurements in order to discount the time used by new Date() calls themselves until the
3422         total time spent reaches 100 milliseconds.
3423
3424         By default, runPerSecond runs the test for at least 750 milliseconds in each run, and executes
3425         21 runs, yielding the total run time of roughly 18 seconds. This is significantly faster than
3426         mos