blob: c08ae05e40dfd6fcd5f598e71c696220bda5abad [file] [log] [blame]
timothy@apple.com046a06e2016-05-07 16:51:58 +000012016-05-07 Timothy Hatcher <timothy@apple.com>
2
3 Update Animometer design
4 https://bugs.webkit.org/show_bug.cgi?id=157449
5
6 Reviewed by Darin Adler.
7
8 * Animometer/developer.html: Stop including runner/animometer.css.
9 * Animometer/index.html: Udpated elements to fit new styles.
10
11 * Animometer/resources/debug-runner/animometer.css:
12 Copy the old runner/animometer.css to here so the debug runner is unaffected.
13
14 * Animometer/resources/runner/animometer.css:
15 New styles for the design. Drop flex box for broad browser support.
16
17 * Animometer/resources/runner/animometer.js:
18 (ResultsTable.clear): Use textContent.
19 (window.sectionsManager.showSection): Add class to the body.
20 (window.sectionsManager.setSectionScore): Use textContent, not innerHTML.
21
22 * Animometer/resources/runner/crystal.svg: Added.
23 * Animometer/resources/runner/lines.svg: Added.
24 * Animometer/resources/runner/logo.svg: Added.
25
26 * Animometer/resources/runner/tests.js: Shorten test name and title case them.
27
rego@igalia.com92508232016-05-06 08:17:12 +0000282016-05-06 Manuel Rego Casasnovas <rego@igalia.com>
29
30 [css-grid] Unprefix CSS Grid Layout properties
31 https://bugs.webkit.org/show_bug.cgi?id=157137
32
33 Reviewed by Simon Fraser.
34
35 Remove "-webkit" prefix from all the grid layout properties,
36 including the display value.
37 Update the source code to remove the prefix where it was used too.
38
39 * Layout/auto-grid-lots-of-data.html:
40 * Layout/fixed-grid-lots-of-data.html:
41 * Layout/fixed-grid-lots-of-stretched-data.html:
42
ggaren@apple.com18017a52016-04-25 23:50:25 +0000432016-04-25 Geoffrey Garen <ggaren@apple.com>
44
45 bmalloc: Misc improvements to MallocBench
46 https://bugs.webkit.org/show_bug.cgi?id=157004
47
48 Reviewed by Darin Adler.
49
50 * MallocBench/run-malloc-benchmarks: Added --memory and --memory_warning
51 modes for focused memory testing.
52
53 * MallocBench/MallocBench/Benchmark.cpp:
54 (Benchmark::printReport): Clarified output.
55
56 (Benchmark::currentMemoryBytes): Added compressed memory because top
57 does the same. (It always happens to zero in the benchmarks we run. But
58 this is good for sanity.)
59
60 * MallocBench/MallocBench/CommandLine.cpp: Moved up to 8 runs to reduce
61 variance.
62
63 * MallocBench/MallocBench/alloc_free.cpp:
64 (benchmark_alloc_free): Cycle a single allocation in order to stress
65 the effect of merging on calls to madvise.
66
67 * MallocBench/MallocBench/big.cpp:
68 (benchmark_big): Graduated to 8kB-128kB because medium tests up to 8 and
69 our large allocator doesn't kick in until 64kB.
70
71 * MallocBench/MallocBench/medium.cpp:
72 (benchmark_medium): Test all the way down to 1kB because our large
73 allocator used to service 1kB allocations and 1kB is an interesting
74 middle size where memory is unusually large but allocation throughput
75 still matters.
76
77 * MallocBench/MallocBench/stress.cpp:
78 (benchmark_stress): Reduced the churn count to match stress_aligned
79 because this test was taking too long to complete.
80
81 * MallocBench/MallocBench/stress_aligned.cpp:
82 (benchmark_stress_aligned): Our new large allocator can handle even
83 more absurdly large values.
84
simon.fraser@apple.com58b852b2016-04-25 21:07:32 +0000852016-04-25 Simon Fraser <simon.fraser@apple.com>
86
87 Add a content animation test that uses SVG animation.
88 https://bugs.webkit.org/show_bug.cgi?id=156827
89
90 * Animation/svg-animation.html: Added.
91 * Skipped:
92
simon.fraser@apple.com1f7bb932016-04-22 21:25:37 +0000932016-04-22 Simon Fraser <simon.fraser@apple.com>
94
95 Skip two content animation tests which are only meant for iOS testing.
96
97 * Animation/css-animation.html: Added.
98 * Animation/raf-animation.html: Added.
99
100 * Skipped:
101
simon.fraser@apple.com046ac7d2016-04-21 04:56:57 +00001022016-04-20 Simon Fraser <simon.fraser@apple.com>
103
104 Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
105 https://bugs.webkit.org/show_bug.cgi?id=156827
106
simon.fraser@apple.combb726962016-04-21 05:01:42 +0000107 Add two files missing from the previous commit.
108
109 * Animation/css-animation.html: Added.
110 * Animation/raf-animation.html: Added.
111
1122016-04-20 Simon Fraser <simon.fraser@apple.com>
113
114 Add content animation tests to benchmark_runner, and allow the runner to collect device data as part of the results
115 https://bugs.webkit.org/show_bug.cgi?id=156827
116
simon.fraser@apple.com046ac7d2016-04-21 04:56:57 +0000117 Reviewed by Stephanie Lewis.
118
119 Two new files for the content-animation suite.
120
121 After patching for use in the benchmark, these tests are a little different to other benchmarks.
122 The test content itself does not collect performance data; the tests spit out a boilerplate JSON
123 result with a placeholder for framerate, which is collected in native code.
124
125 When run as a benchmark, test completion involves a couple of bounces between the test and MobileSafari.
126 Test completion is initiated by a setTimeout() in the test, at which point location.hash is set to "#done".
127 MobileSafari detects that, and asynchronously dumps performance data. Once this is complete, MobileSafari
128 changes the URL has to "#submit", which triggers the XHR to the test relay that indicates the test is
129 complete.
130
131 * Animation/css-animation.html: Added.
132 * Animation/raf-animation.html: Added.
133
jonlee@apple.comae588922016-04-16 01:02:59 +00001342016-04-15 Jon Lee <jonlee@apple.com>
135
136 Animometer test could report a NaN
137 https://bugs.webkit.org/show_bug.cgi?id=156646
138
139 Reviewed by Darin Adler.
140 Provisionally reviewed by Said Abou-Hallawa.
141
142 * Animometer/tests/resources/main.js:
143 (didFinishInterval): The ramp controller has a first phase where it ramps up the complexity and
144 reacts based on how well the system handles the load. The assumption was that it would handle at least
145 1 particle easily. That is not always the case. As a result, an interpolation calculation could
146 end up setting an upper bound of NaN.
147
148 This occurs because we never get out of the first tier, so this._lastTierComplexity is undefined.
149 Now that we guarantee a minimum complexity of 1, modify the conditional to check for this._lastTierComplexity
150 before interpolating the upper bound of the first ramp. In the case where the system struggles with
151 1 particle, set it to currentComplexity.
152
jonlee@apple.come4b587e2016-04-12 02:12:23 +00001532016-04-09 Jon Lee <jonlee@apple.com>
154
155 Update Animometer to accommodate different screens
156 https://bugs.webkit.org/show_bug.cgi?id=156449
157
158 Reviewed by Darin Adler.
159 Provisionally reviewed by Said Abou-Hallawa.
160
161 * Animometer/index.html: Wrap button in a container to add padding at the bottom.
162 * Animometer/resources/debug-runner/animometer.css:
163 (@media screen and (min-device-width: 1800px)): Deleted.
164 (@media screen and (min-width: 1800px)): Cannot use min-device-width since it may match incorrectly.
165 (screen and (max-device-height: 414px) and (orientation: landscape)): Some devices swap device width
166 and height with orientation change.
167 * Animometer/resources/runner/animometer.css: Similar.
168 (screen and (min-device-width: 1024px) and (orientation: landscape)):
169 (screen and (max-device-height: 414px) and (orientation: landscape)):
170 (.frame-container): On smaller iPhones, adding 1px prevents the navigation bars from appearing.
171 (@media screen and (min-device-width: 768px) and (max-device-width: 1024px)): Deleted.
172 (@media (min-device-height: 768px) and (max-device-height: 1024px)): Target iPad Airs and similar.
173 (@media screen and (min-device-width: 1024px) and (max-device-width: 1366px)): Deleted.
174 (@media screen and (max-device-width: 1024px) and (min-device-height: 1366px)): Target iPad Pro.
175 (#results footer): Add padding below the button for testing again.
176 * Animometer/tests/master/multiply.html: Remove the center text.
177 * Animometer/tests/master/resources/text.js: Update the test so that in every frame the text moves.
178 * Animometer/tests/master/text.html: Update the text sizing depending on the size of the device.
179
jonlee@apple.com11a48542016-04-08 20:19:26 +00001802016-04-08 Jon Lee <jonlee@apple.com>
181
jonlee@apple.com96284f52016-04-09 05:16:59 +0000182 Have Animometer benchmark always start with complexity of 1
183 https://bugs.webkit.org/show_bug.cgi?id=156432
184
185 Reviewed by Ryosuke Niwa.
186
187 * Animometer/tests/resources/main.js: Update the default Controller and RampController to
188 set its minimum complexities to 1 instead of 0.
189
1902016-04-08 Jon Lee <jonlee@apple.com>
191
jonlee@apple.com11a48542016-04-08 20:19:26 +0000192 Fix SVG benchmark test
193 https://bugs.webkit.org/show_bug.cgi?id=156410
194
195 Reviewed by Dean Jackson.
196
197 * Animometer/resources/extensions.js: Update Point.zero to be a static Point.
198 * Animometer/tests/simple/resources/tiled-canvas-image.js:
199 (Stage.call._setupTiles): Refactor.
200 * Animometer/tests/master/resources/particles.js:
201 (Particle.prototype.reset): Use Point.center.
202 (complexity): We are not using a gradient background anymore, so remove the +1.
203 * Animometer/tests/master/resources/svg-particles.js: Update to use SVG transform
204 instead of CSS transform.
205
jonlee@apple.com1e7e9a72016-04-07 01:47:53 +00002062016-04-06 Jon Lee <jonlee@apple.com>
207
208 Update master benchmark with SVG test
209 https://bugs.webkit.org/show_bug.cgi?id=156273
210
211 Reviewed by Dean Jackson.
212 Provisionally reviewed by Said Abou-Hallawa.
213
214 Switch masks tests for SVG path test.
215
216 * Animometer/resources/debug-runner/tests.js: Move mask test here.
217 * Animometer/resources/runner/tests.js: Add SVG test here.
218 * Animometer/tests/dom/particles.html: Renamed from PerformanceTests/Animometer/tests/master/particles.html.
219 * Animometer/tests/dom/resources/dom-particles.js: Renamed from PerformanceTests/Animometer/tests/master/resources/dom-particles.js.
220
221 * Animometer/tests/master/resources/particles.js: Add minPosition for bounds checking. Prevents particle from being
222 partially obscured.
223 * Animometer/tests/master/resources/svg-particles.js: Added.
224 (Particle): The particle is either a path object or a rect using a path as a clip. The
225 same path is used either way. For each particle create a linear gradient with a random
226 rotation.
227 (SVGParticlesStage): Look in #shapes to see how many different kinds of paths are available.
228 This makes the test more generic in case other shapes need to be tested.
229 * Animometer/tests/master/svg-particles.html: Added. Have two defs, one that houses each
230 particle's gradient, and one that holds the shape templates.
231
hs85.jeong@samsung.comce35e882016-03-28 05:59:51 +00002322016-03-27 Hunseop Jeong <hs85.jeong@samsung.com>
233
234 [EFL] REGRESSION(r188793): It made 200 layout tests and Bindings/event-target-wrapper.html performance test fail
235 https://bugs.webkit.org/show_bug.cgi?id=148470
236
237 Reviewed by Darin Adler.
238
239 * Skipped: Unskip the Bindings/event-target-wrapper test.
240
jonlee@apple.com0b5ab452016-03-24 02:08:13 +00002412016-03-23 Jon Lee <jonlee@apple.com>
242
jonlee@apple.com9a5c61f2016-03-24 02:40:36 +0000243 Update focus and leaves tests
244 https://bugs.webkit.org/show_bug.cgi?id=155825
245
246 Reviewed by Simon Fraser.
247
248 Particles would improperly disappear, before they were fully off stage. Update the calculation.
249 * Animometer/tests/dom/resources/leaves.js:
250 * Animometer/tests/master/resources/leaves.js:
251
252 * Animometer/tests/master/focus.html: Update the center element styling.
253 * Animometer/tests/master/resources/focus.js:
254 (FocusElement.Utilities.createClass): Give enough space in the container for each particle for the blur
255 to spread. It should be about 3x more space than the blur radius on each side.
256 (Stage.call.initialize): Ditto for the center element.
257
2582016-03-23 Jon Lee <jonlee@apple.com>
259
jonlee@apple.com3b3b05e2016-03-24 02:40:03 +0000260 Update support for other platforms
261 https://bugs.webkit.org/show_bug.cgi?id=155824
262
263 Reviewed by Simon Fraser.
264
265 * Animometer/resources/debug-runner/animometer.css: Remove extraneous media query. All of it should
266 be handled in the release stylesheet.
267 * Animometer/resources/debug-runner/animometer.js: Add support for browsers that return an HTMLCollection
268 when retrieving radio elements with a name, instead of the selected value.
269 * Animometer/resources/runner/animometer.css: Adjust the queries for devices of varying widths.
270 (.frame-container): Move overflow:hidden to #stage.
271 * Animometer/tests/master/resources/stage.css: Consolidate into tests/resources/stage.css.
272 * Animometer/tests/resources/stage.css:
273 (body): Remove overflow:hidden.
274 (#stage): Set overflow:hidden here.
275 (#center-text): Moved from master/resources/stage.css.
276
277 Update stylesheet hrefs.
278 * Animometer/tests/master/canvas-stage.html:
279 * Animometer/tests/master/focus.html:
280 * Animometer/tests/master/leaves.html:
281 * Animometer/tests/master/multiply.html:
282 * Animometer/tests/master/particles.html:
283 * Animometer/tests/master/text.html: Adjust text size to fit in the device screen.
284
2852016-03-23 Jon Lee <jonlee@apple.com>
286
jonlee@apple.com0b5ab452016-03-24 02:08:13 +0000287 Make the benchmark require device to be in landscape orientation
288 https://bugs.webkit.org/show_bug.cgi?id=155822
289 rdar://problem/25258650
290
291 Reviewed by Ryosuke Niwa.
292
293 Check that the device is in landscape orientation. If not, disable the button to start it,
294 and show a warning message.
295
296 * Animometer/developer.html: Add a message about how the browser should be set up. Include a
297 warning message that appears if the orientation is incorrect on mobile devices.
298 * Animometer/index.html: Ditto.
299
300 * Animometer/resources/debug-runner/animometer.css: Migrate the .hidden rule into the release
301 stylesheet. Update the style to accommodate the new UI.
302 * Animometer/resources/runner/animometer.css:
303
304 * Animometer/resources/runner/animometer.js:
305 (window.benchmarkController.initialize): Add the orientation listener is needed.
306 (window.benchmarkController.addOrientationListenerIfNecessary): Only mobile devices need this. Check
307 to see for support of window.orientation.
308 (window.benchmarkController._orientationChanged): Toggle the warning based on whether we match the
309 landscape query. Set a state variable, which is needed for the debug harness. Call updateStartButtonState.
310 (window.benchmarkController.updateStartButtonState):
311 * Animometer/resources/debug-runner/animometer.js: Change _updateStartButtonState to return
312 a boolean about whether at least one test is selected. That will be used in
313 benchmarkController.updateStartButtonState(). Move the load event listener to the release version.
314 (window.benchmarkController.updateStartButtonState): Override the release version, and also check
315 that at least one test is selected.
316
ggaren@apple.comb93bd0d2016-03-22 19:39:38 +00003172016-03-22 Geoffrey Garen <ggaren@apple.com>
318
319 MallocBench: consolidate regression testing for aligned allocation
320 https://bugs.webkit.org/show_bug.cgi?id=155762
321
322 Reviewed by Michael Saboff.
323
324 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
325 * MallocBench/MallocBench/Benchmark.cpp:
326 * MallocBench/MallocBench/memalign.cpp: Removed.
327 * MallocBench/MallocBench/memalign.h: Removed. The stress_aligned test
328 covers this and much more.
329
330 * MallocBench/MallocBench/stress_aligned.cpp:
331 (benchmark_stress_aligned): Include specific tests for extreme sizes
332 and alignments.
333
jonlee@apple.com07fa418162016-03-22 00:30:44 +00003342016-03-21 Jon Lee <jonlee@apple.com>
335
336 Update benchmark tests
337 https://bugs.webkit.org/show_bug.cgi?id=155723
338
339 Reviewed by Darin Adler.
340 Provisionally reviewed by Said Abou-Hallawa.
341
342 Add quadratic and bezier segments to the canvas path test.
343
344 * Animometer/resources/runner/tests.js: Some of the query strings are unnecessary.
345 Rename the test.
346 * Animometer/tests/master/resources/canvas-stage.js:
347 (tune): Update to be able to take an array of possible constructors. Choose one randomly.
348 * Animometer/tests/master/resources/canvas-tests.js:
349 (CanvasLinePoint.Utilities.createClass): Move the point selection out to a separate
350 function called randomPoint() for reuse. Move X_LOOPS, Y_LOOPS, and offsets into the
351 class definition.
352 (randomPoint): Scale the grid down a little bit so that the lines along the edge of the
353 canvas are not cut off when the stroke size is thick.
354 (CanvasQuadraticSegment): Added.
355 (CanvasBezierSegment): Added.
356 (SimpleCanvasStage): Pass in an array of the different segment types. Since line segments
357 are short compared to the curved ones, make it twice as likely to render a line segment.
358 (SimpleCanvasStage.animate): Update the drawing code so that we render all line segments.
359
360 Add a helper method that selects a random element from an array.
361
362 * Animometer/tests/resources/main.js:
363 (Stage.randomElementInArray): Select a random element from the provided array.
364
365 * Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js: Refactor.
366 * Animometer/tests/dom/resources/leaves.js: Ditto.
367 * Animometer/tests/master/resources/dom-particles.js: Ditto.
368 * Animometer/tests/master/resources/image-data.js: Ditto.
369 * Animometer/tests/master/resources/leaves.js: Ditto.
370 * Animometer/tests/simple/resources/simple-canvas-paths.js: Ditto.
371
372 Add canvas tests that includes all stroke and fill paths. This makes it possible to avoid having to
373 include the full simple canvas suite for perf testing.
374
375 * Animometer/resources/debug-runner/tests.js: Add new tests. Move the canvas test into the Canvas
376 suite.
377 * Animometer/tests/simple/resources/simple-canvas-paths.js: Add a CanvasStroke and CanvasFill particle
378 that random selects an object to render.
379
380 * Animometer/resources/debug-runner/tests.js: Move 3D suite before basic canvas suite.
381 When updating the perf bot script, we will include the suites up to this one, but exclude
382 the basic canvas suite.
383
384 Move compositing transforms test to HTML suite and remove the empty Miscellaneous suite.
385
386 * Animometer/resources/debug-runner/tests.js:
387 * Animometer/tests/dom/compositing-transforms.html: Renamed from PerformanceTests/Animometer/tests/misc/compositing-transforms.html.
388 * Animometer/tests/dom/resources/compositing-transforms.js: Renamed from PerformanceTests/Animometer/tests/misc/resources/compositing-transforms.js.
389
390 Clean up miscellaneous test suite. Add a canvas ellipse test, and remove the other
391 canvas tests.
392
393 * Animometer/resources/debug-runner/tests.js: Add ellipse tests to the simple suite.
394 * Animometer/tests/misc/canvas-electrons.html: Removed.
395 * Animometer/tests/misc/canvas-stars.html: Removed.
396 * Animometer/tests/misc/resources/canvas-electrons.js: Removed.
397 * Animometer/tests/misc/resources/canvas-stars.js: Removed.
398 * Animometer/tests/simple/resources/simple-canvas-paths.js: Add ellipse primitives.
399
400 Merge text tests together into one.
401
402 * Animometer/resources/runner/tests.js: Remove international.html.
403 * Animometer/tests/master/international.html: Removed.
404 * Animometer/tests/master/resources/text.js:
405 (animate): Update styling. Manually calculate gradients for the shadow particles.
406 Reduce the step size for y direction to avoid cutting text off at the margins. Increase
407 step for x since there will be a little more room.
408 * Animometer/tests/master/text.html: Add more translations and lay it out in a table.
409
jonlee@apple.com8b6ff292016-03-21 18:09:12 +00004102016-03-20 Jon Lee <jonlee@apple.com>
411
412 Add a link to show debug data
413 https://bugs.webkit.org/show_bug.cgi?id=155724
414
415 Reviewed by Simon Fraser.
416
417 * Animometer/developer.html: Attach the onclick handler to the score.
418 * Animometer/index.html: Ditto.
419
dino@apple.come11dc932016-03-18 20:48:39 +00004202016-03-18 Dean Jackson <dino@apple.com>
421
422 Add a basic WebGL test to Animometer
423 https://bugs.webkit.org/show_bug.cgi?id=155475
424 <rdar://problem/25156860>
425
426 Reviewed by Simon Fraser and Jon Lee.
427
428 Add a pretty simple WebGL test to Animometer
429 which tries to draw a number of animated triangles.
430 The result still needs a bit of tuning.
431
432 * Animometer/resources/debug-runner/tests.js: Add a new
433 Suite for "3D" tests.
434 * Animometer/tests/3d/resources/webgl.js: Added.
435 * Animometer/tests/3d/webgl.html: Added.
436
jonlee@apple.com5d3a27e2016-03-18 17:58:11 +00004372016-03-18 Jon Lee <jonlee@apple.com>
438
439 Add support for statically linking to a specific test
440 https://bugs.webkit.org/show_bug.cgi?id=155631
441
442 Rubber-stamped by Darin Adler.
443
444 * Animometer/developer.html: Update to call restartBenchmark instead so that it works for
445 both the preset and the manually set test sessions.
446 * Animometer/resources/debug-runner/animometer.css:
447 (.tree .link): Style the "link" UI.
448 * Animometer/resources/debug-runner/animometer.js: Move updateDisplay from suitesManager
449 to optionsManager since this is a visual option and has nothing to do with the suites
450 settings. Update the construction of the test UI by including a "link" after each test.
451 Clicking on that link brings up a JS prompt with a URL and a query string with the current
452 parameters of the controller, and selected test. Pasting this URL into the location bar will
453 automatically start running the selected test.
454 (suitesManager.suitesFromQueryString): Iterate through the Suites and tests and find the one
455 that matches the provided parameters. Returns an object similar to the form in
456 suitesManager.updateLocalStorageFromUI.
457 (benchmarkController.initialize): After settings up the events and options, try parsing the
458 query string and running the benchmark immediately. Otherwise, fall back to the form.
459 (benchmarkController.startBenchmark): Store the options and suites into member variables for
460 reuse in restartBenchmark.
461 (benchmarkController.startBenchmarkImmediatelyIfEncoded): Convert the query string to an object.
462 If that's successful, find the suite and test referenced in the query string. Start the benchmark if
463 the search for the test succeeded.
464 * Animometer/resources/extensions.js:
465 (Utilities.stripNonASCIICharacters): Helper method to convert the name of the suite and test
466 into a query-string-friendly version.
467 (Utilities.convertObjectToQueryString): Helper method to convert an object to query string
468 format.
469 (Utilities.convertQueryStringToObject): Helper method to convert query string into an object
470 with properties and values.
471
jonlee@apple.com96891ed2016-03-17 02:49:16 +00004722016-03-16 Jon Lee <jonlee@apple.com>
473
474 Add a new benchmark test
475 https://bugs.webkit.org/show_bug.cgi?id=155570
476
477 Reviewed by Simon Fraser.
478
479 New Leaves test includes various image sizes and opacity.
480
481 * Animometer/resources/debug-runner/tests.js: Add it to the HTML test suite.
482 * Animometer/tests/dom/leaves.html: Added.
483 * Animometer/tests/dom/resources/leaves.js: Added. Override the
484 (Particle.call.reset): Uses a range of sizes, and opacity.
485 (Particle.call.animate): Opacity goes up then down. When it hits 0, reset the particle.
486 (Particle.call.move): Set transform and opacity.
487 * Animometer/tests/master/resources/leaves.js: Get rid of the closure so that it
488 can be used in this test. Update the relative path so that it works in both the master
489 and dom test suite.
490
simon.fraser@apple.com95847912016-03-15 22:46:58 +00004912016-03-15 Simon Fraser <simon.fraser@apple.com>
492
493 Add developer Animometer test that bounces P3-tagged images
494 https://bugs.webkit.org/show_bug.cgi?id=155511
495
496 Reviewed by Tim Horton.
497
498 Add a test for rendering performance of tagged images. The 5 images are tagged
499 with the Display P3 colorspace.
500
501 * Animometer/resources/debug-runner/tests.js:
502 * Animometer/tests/bouncing-particles/bouncing-tagged-images.html: Added.
503 * Animometer/tests/bouncing-particles/resources/bouncing-tagged-images.js: Added.
504 * Animometer/tests/bouncing-particles/resources/image1.jpg: Added.
505 * Animometer/tests/bouncing-particles/resources/image2.jpg: Added.
506 * Animometer/tests/bouncing-particles/resources/image3.jpg: Added.
507 * Animometer/tests/bouncing-particles/resources/image4.jpg: Added.
508 * Animometer/tests/bouncing-particles/resources/image5.jpg: Added.
509
jonlee@apple.com37b97e02016-03-10 01:35:18 +00005102016-03-09 Jon Lee <jonlee@apple.com>
511
jonlee@apple.come7680da2016-03-10 01:38:50 +0000512 Enhance existing Animometer tests
513 https://bugs.webkit.org/show_bug.cgi?id=155261
514
515 Reviewed by Simon Fraser.
516
517 * Animometer/tests/master/resources/canvas-tests.js: Add a gradient to
518 the filled circles. To expose more of the gradient, add another circle.
519 (SimpleCanvasStage.call.animate): For each frame, create a gradient with
520 undulating stop points and colors. Fill the circles twice; once with
521 the solid color, and once with the gradient.
522
523 * Animometer/tests/master/resources/dom-particles.js: Refactor the
524 emission variables into a separate stage for this test. Add a colorOffset
525 variable to make the colors of each particle slightly different, since
526 the ramp controller can add large numbers of particles all at once, which
527 would otherwise get all the same color.
528 * Animometer/tests/master/resources/particles.js:
529 (initialize): Remove the code specific to the SVG mask test.
530
531 * Animometer/tests/master/resources/image-data.js:
532 (initialize): Remove unused local variable.
533 * Animometer/tests/master/resources/multiply.js:
534 (initialize): Make the test harder by adding more total particles.
535
5362016-03-09 Jon Lee <jonlee@apple.com>
537
jonlee@apple.come0a4af02016-03-10 01:37:35 +0000538 Add text tests
539 https://bugs.webkit.org/show_bug.cgi?id=155257
540
541 Reviewed by Simon Fraser.
542
543 * Animometer/resources/extensions.js:
544 (UnitBezier.Utilities.createClass): Add a class that computes Bezier points
545 assuming that two of the control points are at (0,0) and (1,1). Taken from
546 WebCore/platform/graphics/UnitBezier.h
547 * Animometer/resources/runner/tests.js: Add a test for English text and one
548 for international text.
549 * Animometer/tests/master/international.html: Added.
550 * Animometer/tests/master/resources/text.js: Added. The test assumes there is
551 #template div which it will copy. The copies are placed behind the template, and
552 are set with different colors each frame. They are moved around with CSS transform.
553 * Animometer/tests/master/text.html: Added.
554
555 Remove the other text tests, since these ones cover the same techniques.
556 * Animometer/tests/text/layering-text.html: Removed.
557 * Animometer/tests/text/resources/layering-text.js: Removed.
558 * Animometer/tests/text/resources/text-boxes.js: Removed.
559 * Animometer/tests/text/text-boxes.html: Removed.
560 * Animometer/resources/debug-runner/tests.js:
561
5622016-03-09 Jon Lee <jonlee@apple.com>
563
jonlee@apple.com37b97e02016-03-10 01:35:18 +0000564 Add a new image test
565 https://bugs.webkit.org/show_bug.cgi?id=155232
566
567 Reviewed by Dean Jackson.
568 Provisionally reviewed by Said Abou-Hallawa.
569
570 The image test renders PNGs and moves them with translate and rotate
571 transforms. Each particle has a lifetime, and when the lifetime ends or
572 the particle goes offscreen, it resets itself somewhere on the stage.
573
574 * Animometer/resources/debug-runner/tests.js: Remove the CSS bouncing PNG
575 images test, because this one tests the same technique.
576 * Animometer/resources/runner/tests.js: Added here as "Leaves".
577 * Animometer/tests/master/leaves.html: Added.
578 * Animometer/tests/master/resources/particles.js: Refactor out the parts
579 specific to the DOM particles test. Consequently make velocity a public
580 member.
581 (initialize): The options parameter is never used, so remove it.
582 (animate): Remove unused local variable.
583 * Animometer/tests/master/resources/leaves.js: Maintains a focal point that
584 moves back and forth across the canvas. That point affects the velocity
585 of the particles. When the focal point is on the leftmost side, it is
586 between [-6, -2], and set in reset(). When the focal point is on the rightmost
587 side, it will be from [2, 6].
588 * Animometer/tests/master/resources/dom-particles.js: Move JS specific to
589 this test here from particles.js.
590
591 New images.
592 * Animometer/tests/master/resources/compass100.png: Added.
593 * Animometer/tests/master/resources/console100.png: Added.
594 * Animometer/tests/master/resources/contribute100.png: Added.
595 * Animometer/tests/master/resources/debugger100.png: Added.
596 * Animometer/tests/master/resources/inspector100.png: Added.
597 * Animometer/tests/master/resources/layout100.png: Added.
598 * Animometer/tests/master/resources/performance100.png: Added.
599 * Animometer/tests/master/resources/script100.png: Added.
600 * Animometer/tests/master/resources/shortcuts100.png: Added.
601 * Animometer/tests/master/resources/standards100.png: Added.
602 * Animometer/tests/master/resources/storage100.png: Added.
603 * Animometer/tests/master/resources/styles100.png: Added.
604 * Animometer/tests/master/resources/timeline100.png: Added.
605
jonlee@apple.com8a7b6052016-03-03 20:26:46 +00006062016-03-03 Jon Lee <jonlee@apple.com>
607
jonlee@apple.comb4b0bd42016-03-08 03:45:49 +0000608 Add ability to retrieve raw data from release harness
609 https://bugs.webkit.org/show_bug.cgi?id=155026
610
611 Reviewed by Simon Fraser.
612
613 * Animometer/developer.html: Remove the special UI in the debug
614 harness.
615 * Animometer/resources/runner/animometer.css: Add styles for the
616 overlay.
617 * Animometer/resources/runner/animometer.js: Let 'j' show the JSON
618 results, but only if the overlay doesn't exist. Add 'esc' key to dismiss
619 the overlay.
620 (window.benchmarkController.selectResults): Cycle the cases around
621 so that the first 's' press selects both the benchmark score and
622 the individual test scores.
623 * Animometer/resources/debug-runner/animometer.css: Remove
624 unneeded rules.
625 * Animometer/resources/debug-runner/animometer.js: Make the same
626 call to handleKeyPress.
627
6282016-03-03 Jon Lee <jonlee@apple.com>
629
jonlee@apple.comcf661882016-03-07 02:40:16 +0000630 Make sure multiply test particles have at least some opacity
631 https://bugs.webkit.org/show_bug.cgi?id=155027
632
633 Reviewed by Simon Fraser.
634
635 * Animometer/tests/master/resources/multiply.js:
636 (initialize): Have the elements spin a little faster to make it
637 more obvious when the system is being stressed.
638 (_addTile):
639 (animate): Make sure each element being animated has at least 1%
640 opacity.
641
6422016-03-03 Jon Lee <jonlee@apple.com>
643
jonlee@apple.com8a7b6052016-03-03 20:26:46 +0000644 Update image test
645 https://bugs.webkit.org/show_bug.cgi?id=154962
646
647 Rubber-stamped by Darin Adler.
648
649 * Animometer/tests/master/image-data.html: Make each canvas have a compositing layer.
650 * Animometer/tests/master/resources/image-data.js:
651 (initialize): Update to load multiple images serially.
652 (_loadImage):
653 (tune): Use display instead of visibility. When showing an element anew, move it somewhere else.
654 (_createTestElement): Set up the element, refactor out placement of element to _refreshElement.
655 (_refreshElement): Place element in a tile grid.
656 (animate):
657 (_getRandomNeighboringPixelIndex): Use a more conservative distribution to make the effect last a little longer.
658 * Animometer/tests/master/resources/compass.svg: Added.
659 * Animometer/tests/master/resources/console.svg: Added.
660 * Animometer/tests/master/resources/contribute.svg: Added.
661 * Animometer/tests/master/resources/debugger.svg: Added.
662 * Animometer/tests/master/resources/inspector.svg: Added.
663 * Animometer/tests/master/resources/layout.svg: Added.
664 * Animometer/tests/master/resources/performance.svg: Added.
665 * Animometer/tests/master/resources/script.svg: Added.
666 * Animometer/tests/master/resources/shortcuts.svg: Added.
667 * Animometer/tests/master/resources/standards.svg: Added.
668 * Animometer/tests/master/resources/storage.svg: Added.
669 * Animometer/tests/master/resources/styles.svg: Added.
670 * Animometer/tests/master/resources/timeline.svg: Added.
671
jonlee@apple.com04493df2016-03-03 08:15:35 +00006722016-03-02 Jon Lee <jonlee@apple.com>
673
674 Add some new controllers, and refine tests
675 https://bugs.webkit.org/show_bug.cgi?id=154914
676
677 Reviewed by Simon Fraser.
678
jonlee@apple.com0871a282016-03-03 08:22:32 +0000679 Improve tests.
680
681 * Animometer/tests/master/focus.html: Move each particle into a layer. Put the particle
682 in a container element. Expand the container element by the max blur radius, and clip
683 overflow. This way, when the blur is applied, it avoids causing layer resizes.
684 * Animometer/tests/master/resources/focus.js:
685 (FocusElement.Utilities.createClass): Create a container element, and put the particle
686 inside.
687 (hide): Set display:none.
688 (show): Set display:block.
689 (animate): Apply filters to the container element.
690 (FocusStage.call.initialize): Instead of inserting and removing elements from the DOM,
691 keep them in the stage, but set the display style instead. Use this._offsetIndex to
692 keep track of which elements are displayed.
693 (FocusStage.call.animate): Move some calculations around to avoid doing unneeded math.
694 (FocusStage.call.getBlurValue): Make sure elements are always blurred.
695 (FocusStage.call.getOpacityValue): Make sure elements have some opacity.
696 * Animometer/tests/master/resources/multiply.js: Have the particles on the edge of the
697 stage appear less black when the complexity gets large enough.
698 (tune): Have this._distanceFactor calculate the factor. Avoid calculating square root each
699 frame.
700
7012016-03-02 Jon Lee <jonlee@apple.com>
702
703 Add some new controllers, and refine tests
704 https://bugs.webkit.org/show_bug.cgi?id=154914
705
706 Reviewed by Simon Fraser.
707
jonlee@apple.com04493df2016-03-03 08:15:35 +0000708 Add a controller that centers around 30 fps instead of 60 fps.
709
710 * Animometer/developer.html: Add a new option.
711 * Animometer/resources/debug-runner/animometer.js:
712 * Animometer/resources/runner/animometer.js:
713 (this._processData.findRegression): When calculating the complexity-frameLength regression,
714 check the controller, and use a 30 fps baseline if needed.
715 * Animometer/resources/statistics.js:
716 (Regression.Utilities.createClass): Update to allow clients to specify the baseline
717 frame length.
718 * Animometer/tests/resources/main.js:
719 (tune): Override some of the constants in RampController. Move those constants out for
720 easier reading.
721
722 Add a fixed controller, with no step.
723
724 * Animometer/developer.html: Add a controller that takes no step.
725 * Animometer/resources/debug-runner/animometer.js:
726 * Animometer/tests/resources/main.js:
727 (Rotater.Utilities.createClass):
728
729 Switch to ramp controller as default.
730
731 * Animometer/developer.html: Increase the test length to 20 seconds.
732 * Animometer/resources/debug-runner/animometer.js: Rename the "adjustment" field to "controller"
733 since that is a more accurate description.
734 * Animometer/resources/debug-runner/graph.js:
735 * Animometer/resources/runner/animometer.js: Update preferences for release suite.
736
jonlee@apple.comc7156432016-02-27 04:43:57 +00007372016-02-26 Jon Lee <jonlee@apple.com>
738
739 Address Dean's comments in 154673.
740
741 * Animometer/developer.html:
742 * Animometer/resources/debug-runner/animometer.js:
743 * Animometer/resources/debug-runner/graph.js:
744
jonlee@apple.com1ca6bae2016-02-27 04:33:30 +00007452016-02-25 Jon Lee <jonlee@apple.com>
746
747 Update animation benchmark and tests
748 https://bugs.webkit.org/show_bug.cgi?id=154673
749
750 Reviewed by Dean Jackson.
751
752 Update test visuals.
753
754 * Animometer/tests/master/resources/canvas-tests.js:
755 (CanvasLineSegment.Utilities.createClass): Line segments near the edge of the stage get clipped.
756 Update circle position and radius to minimize impact.
757 * Animometer/tests/master/resources/particles.js: Get rid of rotating gradient background, and
758 have 3 locations for emitting particles.
759 * Animometer/tests/master/resources/multiply.js: Update distance metric so that fringe tiles get
760 more color.
761 (initialize): Fix some of the math for laying out the tiles.
762 (animate): When a tile isn't used, set visibility: hidden.
763
jonlee@apple.com164a15b2016-02-27 04:32:09 +00007642016-02-24 Jon Lee <jonlee@apple.com>
765
766 Update animation benchmark and tests
767 https://bugs.webkit.org/show_bug.cgi?id=154673
768
769 Reviewed by Dean Jackson.
770
771 Update the ramp controller.
772
773 The controller refines the complexity interval to test across.
774
775 * Animometer/resources/statistics.js: Add functions that estimate cumulative distribution function.
776 (Regression): For the flat regression, force the first segment to be at 60 fps.
777 (valueAt): Add convenience function to return interpolated value based on the regression used.
778 (_calculateRegression): Include the number of points included for both segments, and the piecewise
779 errors.
780 * Animometer/tests/resources/math.js: Make the Kalman estimator subclass Experiment, and allow it
781 to be reset.
782
783 * Animometer/tests/resources/main.js: Initialize the tier such that it starts at 10^0 = 1.
784 Increase the number of ramps. Maintain three FPS thresholds-- the frame rate of interest, a limit
785 on the lowest FPS we care to go for later interpolation, and a minimum FPS threshold we want to
786 aim for each ramp. Also keep three estimators: a running average of the change point, a minimum
787 boundary for each ramp, and an estimator for all the frames within an interval. The first two
788 are used to determine the parameters of the next ramp, and the latter allows us to refine the
789 parameters.
790 (update): During the tier phase, it is possible that the highest complexity possible for a test
791 won't stress the system enough to trigger stopping the tier phase and transitioning to the ramps.
792 If the complexity doesn't change when going to the next tier, we've maxed the test out, and move
793 on. When the tier phase completed, turn off Controller.frameLengthEstimator, which estimates the
794 FPS at each tier.
795 (tune): At each interval, look at the confidence distribution of being on the 60 FPS side or the
796 slow side. If the slowest FPS we achieve at the ramp's maximum complexity is not at least
797 _fpsRampSlowThreshold, then increase the maximum complexity. If we ever achieve 60 FPS, increase
798 the ramp's minimum complexity to that level. If, at an even lower complexity, a glitch causes the
799 FPS to drop, we reset the minimum complexity.
800
801 Have the bootstrap calculation occur between tests. Clean up harness.
802
803 * Animometer/resources/debug-runner/animometer.js: Run bootstrap after a test has
804 completed to avoid doing all of it at the end before showing the results. Clean up
805 parameters being passed around.
806 * Animometer/resources/debug-runner/tests.js:
807 (text):
808 * Animometer/resources/runner/animometer.js:
809 (this._processData.calculateScore): Save the results to the same object holding the data.
810 (this._processData._processData): In the case where a file is dragged, calculate the score
811 serially. Grab the results object and move it to the results variable and remove it from
812 the data object. This avoids serializing the results into the JSON.
813 (this._processData.findRegression): Include the samples used for bootstrapping. Reduce the
814 resample size to shorten the wait.
815 * Animometer/resources/runner/benchmark-runner.js:
816 * Animometer/resources/statistics.js:
817 (bootstrap): Update how bootstrapData is sorted. In some regression results the mix of
818 floats and integers causes an alphabetical sort to occur.
819 * Animometer/resources/strings.js:
820
821 Add meta charset so that encodings between harness and test match.
822
823 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
824 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
825 * Animometer/tests/bouncing-particles/bouncing-css-images.html:
826 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
827 * Animometer/tests/bouncing-particles/bouncing-svg-images.html:
828 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
829 * Animometer/tests/master/canvas-stage.html:
830 * Animometer/tests/master/focus.html:
831 * Animometer/tests/master/image-data.html:
832 * Animometer/tests/master/multiply.html:
833 * Animometer/tests/master/particles.html:
834 * Animometer/tests/misc/canvas-electrons.html:
835 * Animometer/tests/misc/canvas-stars.html:
836 * Animometer/tests/misc/compositing-transforms.html:
837 * Animometer/tests/simple/simple-canvas-paths.html:
838 * Animometer/tests/simple/tiled-canvas-image.html:
839 * Animometer/tests/template/template-canvas.html:
840 * Animometer/tests/template/template-css.html:
841 * Animometer/tests/template/template-svg.html:
842 * Animometer/tests/text/layering-text.html:
843 * Animometer/tests/text/text-boxes.html:
844
845 Update test harness reporting.
846
847 * Animometer/developer.html: Add missing meta charset.
848 * Animometer/index.html: Remove unnecessary utf-8 declaration.
849 * Animometer/resources/debug-runner/animometer.css: Add convenience classes for
850 formatting the results table.
851 * Animometer/resources/debug-runner/animometer.js: Adjust which stats are shown.
852 * Animometer/resources/debug-runner/tests.js: Display bootstrapping statistics.
853 * Animometer/resources/strings.js: Move strings not used by the release harness.
854
855 Switch to a pseudo-random number generator.
856
857 * Animometer/resources/statistics.js: Add a Pseudo class, with a simple
858 pseudo-random number generator.
859 (_calculateRegression): Reset the generator before running bootstrap.
860 (bootstrap): Deleted.
861
862 Replace Math.random with Pseudo.random.
863 * Animometer/tests/master/resources/canvas-tests.js:
864 * Animometer/tests/master/resources/focus.js:
865 * Animometer/tests/master/resources/particles.js:
866 * Animometer/tests/resources/main.js:
867
868 Use bootstrapping to get confidence interval in the breakpoint.
869
870 For the ramp controller, calculate the piecewise regression, and then use
871 bootstrapping in order to find the 95% confidence interval. Use the raw data.
872
873 * Animometer/developer.html: Default to the complexity graph. Add a legend
874 checkbox to toggle visibility of the bootstrap score and histogram.
875 * Animometer/resources/debug-runner/animometer.css: Make some more space to show
876 the old raw and average scores in the legend. Add new styles for the data.
877 * Animometer/resources/debug-runner/graph.js:
878 (_addRegressionLine): Allow passing an array for the variance bar tied to the
879 regression line. Now |stdev| is |range|.
880 (createComplexityGraph): Add bootstrap median, and overlay a histogram of
881 the bootstrap samples. Switch raw samples from circles to X's.
882 (onComplexityGraphOptionsChanged): Allow toggling of the bootstrap data.
883 (onGraphTypeChanged): Move the regressions for the raw and average samples to the
884 legend. In the subtitle use the bootstrap median, and include the 95% confidence
885 interval.
886 * Animometer/resources/runner/animometer.js:
887 (this._processData.findRegression): Factor out the code that determines which
888 samples to include when calculating the piecewise regression. For series that have
889 many samples, or a wider range of recorded complexities, throw away the 2.5%
890 lowest and highest samples before calculating the regression. Keep all samples
891 if the number of samples to regress is small or the range of complexities is
892 narrow.
893 (this._processData._calculateScore): Factor out regression calculation to
894 findRegression(). Bootstrap the change point of the regression. The score is the
895 median.
896 * Animometer/resources/statistics.js:
897 (_calculateRegression): Correct an issue in the calculation of the regression, where
898 the denominator can be 0.
899 (bootstrap): Template for bootstrapping. Create a bootstrap sample array, Create
900 re-samples by random selection with replacement. Return the 95% confidence samples,
901 the bootstrap median, mean, and the data itself.
902 * Animometer/resources/strings.js: Add bootstrap.
903 * Animometer/tests/resources/main.js:
904 (processSamples): Don't prematurely cut the sample data.
905
906 Fix graph drawing.
907
908 * Animometer/resources/debug-runner/animometer.js: Add spacing in the JSON output.
909 Multiple tests output a lot of JSON and can hang when selecting JSON with no whitespace.
910 * Animometer/resources/debug-runner/animometer.css:
911 (#complexity-graph .series.raw circle): Update the color.
912 * Animometer/resources/debug-runner/graph.js: Use the FPS axis instead of the
913 complexity axis, which can vary in domain. For determining the complexity domain,
914 only use samples after samplingTimeOffset.
915
916 Allow dropping results JSON.
917
918 * Animometer/developer.html: Add a button.
919 * Animometer/resources/debug-runner/animometer.css:
920 * Animometer/resources/debug-runner/animometer.js: Read the data and go straight
921 to the dashboard. With JSON output, write out only the options and the raw data.
922
923 Teach the harness to evaluate the samples and determine the test score.
924
925 This will allow us to update how the score is calculated separately from the samples recorded.
926 This also prepares the harness to be able to accept JSON of prior runs.
927
928 * Animometer/resources/strings.js: Clean up and remove unneeded strings and reduce some of the
929 hierarchy.
930 * Animometer/resources/debug-runner/tests.js: Update to use the new strings.
931
932 * Animometer/tests/resources/main.js: Allow all controllers to show a complexity-FPS graph.
933 (_processComplexitySamples): Factor out some of the sample processing done in the ramp
934 controller for the benefit of the other controllers. |complexitySamples| contains a list of
935 samples. Sort the samples by complexity. Optionally remove the top x% of samples.
936 Group them, and calculate distribution of samples within the same complexity, and add those as
937 new entries into |complexityAverageSamples|.
938 (Controller.processSamples): Move the code responsible for determining the complexity and FPS
939 scores out to ResultsDashboard. The structure of the data returned by the controller is:
940
941 {
942 controller: [time-regression, time-regression, ...], // optional, data specific to controller
943 marks: [...],
944 samples: { // all of the sample data
945 controller: [...],
946 complexity: [...], // processed from controller samples
947 complexityAverage: [...], // processed from complexity samples
948 }
949 }
950
951 (AdaptiveController.processSamples): Adding the target frame length is no longer necessary; we
952 now pass the test options to the graph.
953 (Regression): Move to statistics.js.
954 * Animometer/resources/statistics.js: Move Regression to here. Add a check if the sampling range
955 only contains one sample, since we cannot calculate a regression from one sample point.
956
957 Teach the test harness to evaluate the data.
958 * Animometer/resources/runner/animometer.js:
959 (ResultsDashboard): Store the options used to run the test and the computed results/score separately
960 from the data. The results are stored as:
961
962 {
963 score: /* geomean of iteration score */,
964 iterationsResults: [
965 {
966 score: /* geomean of tests */,
967 testsResults: {
968 suiteName: {
969 testName: {
970 controller: {
971 average:
972 concern:
973 stdev:
974 percent:
975 },
976 frameLength: { ... },
977 complexity: {
978 complexity:
979 stdev:
980 segment1:
981 segment2:
982 },
983 complexityAverage: { ... }
984 },
985 testName: { ... },
986 },
987 ... next suite ...
988 }
989 },
990 { ...next iteration... }
991 ]
992 }
993
994 * Animometer/resources/debug-runner/animometer.js: Pass options around instead of relying
995 on what was selected in the form. This will later allow for dropping previous results, and
996 using those runs' options when calculating scores.
997 (ResultsTable._addGraphButton): Simplify button action by using attached test data.
998 * Animometer/resources/debug-runner/graph.js: Refactor to use the data.
999
1000 Consolidate JS files, and move statistics out to a separate JS.
1001
1002 Preparation for having the Controller only handle recording and storage of the samples,
1003 and leave the evaluation of the test score out to the harness. Move Experiment to
1004 a new statistics.js, where Regression will also eventually go. Get rid of algorithm.js
1005 and move it to utilities.js since the Heap is used only for Experiments.
1006
1007 * Animometer/tests/resources/algorithm.js: Removed. Heap is in utilities.js.
1008 * Animometer/tests/resources/sampler.js: Removed. Experiment is in statistics.js,
1009 Sampler in main.js.
1010 * Animometer/tests/resources/main.js: Move Sampler here.
1011 * Animometer/resources/statistics.js: Added. Move Statistics and Experiment here.
1012 * Animometer/resources/extensions.js: Move Heap here. Attach static method to create
1013 a max or min heap to Heap, instead of a new Algorithm object.
1014
1015 Update JS files.
1016 * Animometer/developer.html:
1017 * Animometer/index.html:
1018 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
1019 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
1020 * Animometer/tests/bouncing-particles/bouncing-css-images.html:
1021 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
1022 * Animometer/tests/bouncing-particles/bouncing-svg-images.html:
1023 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
1024 * Animometer/tests/master/canvas-stage.html:
1025 * Animometer/tests/master/focus.html:
1026 * Animometer/tests/master/image-data.html:
1027 * Animometer/tests/master/multiply.html:
1028 * Animometer/tests/master/particles.html:
1029 * Animometer/tests/misc/canvas-electrons.html:
1030 * Animometer/tests/misc/canvas-stars.html:
1031 * Animometer/tests/misc/compositing-transforms.html:
1032 * Animometer/tests/simple/simple-canvas-paths.html:
1033 * Animometer/tests/simple/tiled-canvas-image.html:
1034 * Animometer/tests/template/template-canvas.html:
1035 * Animometer/tests/template/template-css.html:
1036 * Animometer/tests/template/template-svg.html:
1037 * Animometer/tests/text/layering-text.html:
1038 * Animometer/tests/text/text-boxes.html:
1039
1040 Fix the cursor in the graph analysis when the min
1041 complexity is not 0.
1042
1043 * Animometer/resources/debug-runner/graph.js:
1044 (_addRegression):
1045 (createComplexityGraph):
1046
ggaren@apple.com66d5c662016-02-26 17:58:58 +000010472016-02-23 Geoffrey Garen <ggaren@apple.com>
1048
1049 Fix some issues in MallocBench
1050 https://bugs.webkit.org/show_bug.cgi?id=154600
1051
1052 Reviewed by Oliver Hunt.
1053
1054 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Make nimlang.ops
1055 a part of the build so that it copies to the right place for execution.
1056
1057 * MallocBench/MallocBench/Interpreter.cpp:
1058 (Interpreter::Interpreter): Don't try to open .ops files for writing
1059 because we're only going to read and we might need extra permissions to
1060 write.
1061
1062 (Interpreter::~Interpreter): Give more context when opening a file fails
1063 to help with debugging.
1064
1065 * MallocBench/MallocBench/stress.cpp:
1066 (benchmark_stress): Reduce iterations to complete in less than 10 seconds.
1067
msaboff@apple.comf304e452016-02-23 17:42:12 +000010682016-02-23 Michael Saboff <msaboff@apple.com>
1069
1070 Unreviewed change to revert extraneous changes made part of change set 196955.
1071
1072 * MallocBench/MallocBench/Interpreter.cpp:
1073 (Interpreter::doMallocOp):
1074 (Interpreter::Thread::switchTo):
1075 (writeData): Deleted.
1076
msaboff@apple.com6a075dd2016-02-22 22:02:24 +000010772016-02-19 Michael Saboff <msaboff@apple.com>
1078
1079 MallocBench: Added recording for nimlang website, new recording details and added new options
1080 https://bugs.webkit.org/show_bug.cgi?id=154485
1081
1082 Reviewed by Geoff Garen.
1083
1084 Added new capabilities to MallocBench. These include:
1085 Added a recording of http://nim-lang.org/docs/lib.html.
1086 Added thread id to the recording and the ability to playback switching threads in MallocBench
jonlee@apple.com164a15b2016-02-27 04:32:09 +00001087 Added aligned allocations to recordings and the ability to playback
msaboff@apple.com6a075dd2016-02-22 22:02:24 +00001088 Added --use-thread-id option to honor recorded thread ids
1089 Added --detailed-report to output remaining allocations by size after playback
1090 Added --no-warmup to not run the warm up iteration
1091
1092 Changed the way that options are passed down to the benchmarks. Instead of passing individual
1093 boolean or numeric option values, just pass a reference the CommandLine itself. Each benchmark
1094 can access the options that are appropriate. The Benchmark class also uses the options for
1095 is parallel, run counts and warm up.
1096
1097 Added thread id and aligned malloc to the Op by noticing that structure padding and Opcode allowed
1098 for another 32 bits of data. Breaking that unused 32 bits into a 16 bit thread id value and a
1099 16 bit log base 2 of the alignment for aligned malloc allowed for existing recordings to playback
1100 without any incompatibilities.
1101
1102 Threaded operation is simulated by creating threads as needed. As long as the next Op's thread id
1103 is the same as the last, operation continues as normal. When the next Op has a different thread id,
1104 we switch to that thread using the shared Op stream to continue playing back. There is a mutex to
1105 assure that only one thread is really running at a time and a condition variable used to wait
1106 that the current thread id matches each block thread's thread id. This doesn't simulate true
1107 concurrent threading, but is instead plays back Ops recorded for multiple thread faithfully.
1108
1109 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1110 * MallocBench/MallocBench/Benchmark.cpp:
1111 (deallocateHeap):
1112 (Benchmark::Benchmark):
1113 (Benchmark::runOnce):
1114 (Benchmark::run):
1115 * MallocBench/MallocBench/Benchmark.h:
1116 (Benchmark::isValid):
1117 * MallocBench/MallocBench/CommandLine.cpp:
1118 (CommandLine::printUsage):
1119 * MallocBench/MallocBench/CommandLine.h:
1120 (CommandLine::isValid):
1121 (CommandLine::benchmarkName):
1122 (CommandLine::isParallel):
1123 (CommandLine::useThreadID):
1124 (CommandLine::detailedReport):
1125 (CommandLine::warmUp):
1126 (CommandLine::heapSize):
1127 (CommandLine::runs):
1128 * MallocBench/MallocBench/Interpreter.cpp:
1129 (Interpreter::Interpreter):
1130 (Interpreter::run):
1131 (Interpreter::readOps):
1132 (Interpreter::doOnSameThread):
1133 (Interpreter::switchToThread):
1134 (Interpreter::detailedReport):
1135 (compute2toPower):
1136 (writeData):
1137 (Interpreter::doMallocOp):
1138 (Interpreter::Thread::Thread):
1139 (Interpreter::Thread::stop):
1140 (Interpreter::Thread::~Thread):
1141 (Interpreter::Thread::runThread):
1142 (Interpreter::Thread::waitToRun):
1143 (Interpreter::Thread::switchTo):
1144 * MallocBench/MallocBench/Interpreter.h:
1145 (Interpreter::Thread::isMainThread):
1146 * MallocBench/MallocBench/alloc_free.cpp: Added.
1147 (benchmark_alloc_free):
1148 * MallocBench/MallocBench/alloc_free.h: Added.
1149 * MallocBench/MallocBench/balloon.cpp:
1150 (benchmark_balloon):
1151 * MallocBench/MallocBench/balloon.h:
1152 * MallocBench/MallocBench/big.cpp:
1153 (benchmark_big):
1154 * MallocBench/MallocBench/big.h:
1155 * MallocBench/MallocBench/churn.cpp:
1156 (benchmark_churn):
1157 * MallocBench/MallocBench/churn.h:
1158 * MallocBench/MallocBench/facebook.cpp:
1159 (benchmark_facebook):
1160 * MallocBench/MallocBench/facebook.h:
1161 * MallocBench/MallocBench/flickr.cpp:
1162 (benchmark_flickr):
1163 (benchmark_flickr_memory_warning):
1164 * MallocBench/MallocBench/flickr.h:
1165 * MallocBench/MallocBench/fragment.cpp:
1166 (validate):
1167 (benchmark_fragment):
1168 (benchmark_fragment_iterate):
1169 * MallocBench/MallocBench/fragment.h:
1170 * MallocBench/MallocBench/list.cpp:
1171 (benchmark_list_allocate):
1172 (benchmark_list_traverse):
1173 * MallocBench/MallocBench/list.h:
1174 * MallocBench/MallocBench/main.cpp:
1175 (main):
1176 * MallocBench/MallocBench/medium.cpp:
1177 (benchmark_medium):
1178 * MallocBench/MallocBench/medium.h:
1179 * MallocBench/MallocBench/memalign.cpp:
1180 (test):
1181 (benchmark_memalign):
1182 * MallocBench/MallocBench/memalign.h:
1183 * MallocBench/MallocBench/message.cpp:
1184 (benchmark_message_one):
1185 (benchmark_message_many):
1186 * MallocBench/MallocBench/message.h:
1187 * MallocBench/MallocBench/nimlang.cpp: Added.
1188 (benchmark_nimlang):
1189 * MallocBench/MallocBench/nimlang.h: Added.
1190 * MallocBench/MallocBench/nimlang.ops: Added.
1191 * MallocBench/MallocBench/realloc.cpp:
1192 (benchmark_realloc):
1193 * MallocBench/MallocBench/realloc.h:
1194 * MallocBench/MallocBench/reddit.cpp:
1195 (benchmark_reddit):
1196 (benchmark_reddit_memory_warning):
1197 * MallocBench/MallocBench/reddit.h:
1198 * MallocBench/MallocBench/stress.cpp:
1199 (deallocate):
1200 (benchmark_stress):
1201 * MallocBench/MallocBench/stress.h:
1202 * MallocBench/MallocBench/stress_aligned.cpp:
1203 (benchmark_stress_aligned):
1204 * MallocBench/MallocBench/stress_aligned.h:
1205 * MallocBench/MallocBench/theverge.cpp:
1206 (benchmark_theverge):
1207 (benchmark_theverge_memory_warning):
1208 * MallocBench/MallocBench/theverge.h:
1209 * MallocBench/MallocBench/tree.cpp:
1210 (benchmark_tree_allocate):
1211 (benchmark_tree_traverse):
1212 (benchmark_tree_churn):
1213 * MallocBench/MallocBench/tree.h:
1214 * MallocBench/run-malloc-benchmarks:
1215
jonlee@apple.com7d855e92016-02-11 08:11:35 +000012162016-02-11 Jon Lee <jonlee@apple.com>
1217
1218 Fix a missing refactoring.
1219
1220 * Animometer/tests/master/resources/multiply.js:
1221 (animate): Move to Utilities.lerp.
1222 (_lerp): Deleted.
1223
jonlee@apple.com706bc1b2016-02-11 07:42:00 +000012242016-02-10 Jon Lee <jonlee@apple.com>
1225
1226 Add new benchmark tests.
1227 https://bugs.webkit.org/show_bug.cgi?id=154063
1228
1229 Provisionally reviewed by Said Abou-Hallawa.
1230
1231 Add tests for get/put image data, filters, opacity, and css transforms.
1232
1233 * Animometer/resources/runner/benchmark-runner.js:
1234 (_runBenchmarkAndRecordResults): Update the body background color to match that of
1235 the stage.
1236 (this._runNextIteration): Clear the background color style for the results page.
1237 * Animometer/resources/runner/tests.js:
1238 * Animometer/tests/master/focus.html: Added.
1239 * Animometer/tests/master/image-data.html: Added.
1240 * Animometer/tests/master/multiply.html: Added.
1241 * Animometer/tests/master/resources/focus.js: Added.
1242 * Animometer/tests/master/resources/image-data.js: Added.
1243 * Animometer/tests/master/resources/multiply.js: Added.
1244 * Animometer/tests/master/resources/stage.css: Move common styles out.
1245 * Animometer/tests/resources/main.js: Update Stage.randomBool to use Math.random.
1246 Add Stage.randomSign for randomly setting a direction. Add the notion of the
1247 current timestamp of the test to Benchmark, since some animations cycle through
1248 colors and rely on an incremental counter like the time.
1249
said@apple.comf6562062016-02-10 20:45:01 +000012502016-02-09 Said Abou-Hallawa <sabouhallawa@apple.com>
1251
1252 Add internal benchmark tests for CSS mix-blend-modes and filters
1253 https://bugs.webkit.org/show_bug.cgi?id=154058
1254
1255 Provisionally reviewed by Jon Lee.
1256
1257 * Animometer/resources/debug-runner/tests.js: Include the new tests in the
1258 "HTML suite" of the debug runner.
jonlee@apple.com706bc1b2016-02-11 07:42:00 +00001259
said@apple.comf6562062016-02-10 20:45:01 +00001260 * Animometer/resources/extensions.js:
1261 (Utilities.browserPrefix):
1262 (Utilities.setElementPrefixedProperty): Utility functions to allow setting
1263 prefixed style properties.
jonlee@apple.com706bc1b2016-02-11 07:42:00 +00001264
said@apple.comf6562062016-02-10 20:45:01 +00001265 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
1266 Set the mix-blend-mode and the filter to some random values if the options
1267 of the test requested that.
jonlee@apple.com706bc1b2016-02-11 07:42:00 +00001268
said@apple.comf6562062016-02-10 20:45:01 +00001269 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
1270 (parseShapeParameters): Parse the url options "blend" and "filter" and set
1271 the corresponding flags.
jonlee@apple.com706bc1b2016-02-11 07:42:00 +00001272
said@apple.comf6562062016-02-10 20:45:01 +00001273 * Animometer/tests/resources/main.js:
1274 (randomStyleMixBlendMode):
1275 (randomStyleFilter): Return random mix-blend-mode and filter.
1276
jonlee@apple.com7603a0b2016-02-09 05:26:20 +000012772016-02-08 Jon Lee <jonlee@apple.com>
1278
jonlee@apple.combae2ad12016-02-10 19:22:08 +00001279 Add a ramp controller
1280 https://bugs.webkit.org/show_bug.cgi?id=154028
1281
1282 Provisionally reviewed by Said Abou-Hallawa.
1283
1284 Enhance the graph to include a complexity-fps graph, in addition
1285 to the time graph.
1286
1287 * Animometer/developer.html: Add a ramp option.
1288 * Animometer/resources/debug-runner/animometer.css: Update the style.
1289 * Animometer/resources/strings.js: Flatten the Strings.text constants.
1290 * Animometer/resources/debug-runner/animometer.js:
1291 (ResultsTable.call._addGraphButton): Refactor.
1292 (ResultsTable.call._addTest): Add regression data.
1293 (benchmarkController): Add a form that allows the user to switch between the two forms,
1294 Add a form that allows the user to toggle different data. Hide certain header columns
1295 depending on the selected controller.
1296 * Animometer/resources/debug-runner/graph.js: Add the complexity regressions.
1297 * Animometer/resources/debug-runner/tests.js: Add headers for the ramp results.
1298 * Animometer/resources/runner/animometer.js:
1299 (ResultsTable): If a header is disabled don't include them in _flattenedHeaders.
1300 * Animometer/tests/resources/main.js:
1301 (Controller): Allow options to specify the capacity for sample arrays.
1302 (Regression): A piecewise regression that tries to fit a slope and a flat profile.
1303 (_calculateRegression): Options can fix the slope and bias when calculating the minimal
1304 error. Sweep across the samples in time (which could be backward depending on the controller)
1305 and calculate the intersection point.
1306 (RampController): This controller assumes that the target frame rate is below
1307 58 FPS. It runs in two stages. The first stage quickly determines the order of
1308 magnitude of objects needed to stress the system by the setting the complexity
1309 to increasingly difficult tiers. Perform a series of ramps descending from a
1310 high-water mark of complexity. The complexity needed to reach the target frame
1311 length is done by performing a piecewise regression on each ramp, and track a
1312 running average of these values. For the next ramp, make that running average
1313 the center of the ramp. With a minimum complexity of 0, the high-water mark is
1314 twice that average. The score is based on the highest complexity that can
1315 reach 60 fps.
1316
13172016-02-08 Jon Lee <jonlee@apple.com>
1318
jonlee@apple.com7603a0b2016-02-09 05:26:20 +00001319 Address Said's comments on the benchmark, and do some clean up.
1320
1321 * Animometer/developer.html:
1322 * Animometer/resources/debug-runner/animometer.css: Add styles for averages.
1323 * Animometer/resources/debug-runner/animometer.js: Use the right
1324 Strings constants.
1325 * Animometer/resources/debug-runner/graph.js:
1326 (_addRegressionLine): Add missing code to draw the line and standard
1327 deviation highlight.
1328 (onGraphTypeChanged): Remove unneeded variables
1329 (onTimeGraphOptionsChanged):
1330 * Animometer/resources/runner/benchmark-runner.js:
1331 (_runBenchmarkAndRecordResults): Rename samplers to suiteResults and
1332 _suitesSamplers to _suitesResults.
1333 * Animometer/tests/resources/main.js:
1334 (results): Call processSamples().
1335 (update): Change sampling timestamp comparison.
1336 (_animateLoop): Move shouldStop call to before the update.
1337 * Animometer/tests/resources/sampler.js:
1338 (process): Rename to processSamples().
1339
jonlee@apple.comfc13e232016-02-09 03:25:39 +000013402016-02-07 Jon Lee <jonlee@apple.com>
1341
jonlee@apple.com59100a42016-02-09 03:30:52 +00001342 Teach Controller to measure intervals, and turn off the frame length estimator.
1343
1344 * Animometer/tests/resources/main.js: Default interval length is 100 ms.
1345 (start): Set the first interval.
1346 (_measureAndResetInterval): Reports the average frame length of the interval that just
1347 completed, and sets up the next interval.
1348 (update): If there is no length, then just use the estimator per frame, otherwise the
1349 estimator measures per interval. Add a didFinishInterval for subclasses to process
1350 prior to recording the sample. Update tune() to include whether an interval had
1351 finished.
1352 (StepController): Step controllers don't measure on an interval basis.
1353
13542016-02-07 Jon Lee <jonlee@apple.com>
1355
jonlee@apple.com8d075592016-02-09 03:30:49 +00001356 Minor refactoring. Rename Controller._estimator to Controller._frameLengthEstimator
1357 and switch the parameters for start(), update(), and tune(), so that the timestamp
1358 is first and stage is second.
1359
1360 * Animometer/tests/resources/main.js:
1361
13622016-02-07 Jon Lee <jonlee@apple.com>
1363
jonlee@apple.come5847b72016-02-09 03:30:47 +00001364 Move ResultsTable functionality not needed for release tests out.
1365 Move reporting of score and mean to selection of the time-based graph.
1366
1367 * Animometer/developer.html: Rename graph-options to time-graph-options.
1368 * Animometer/resources/debug-runner/animometer.js:
1369 (DeveloperResultsTable): Moved from runner/animometer.js. Switch from mean
1370 values to "average" objects which can hold stdev. Move graph button and
1371 calculation of noisy measurements here. Sophisticated header processing
1372 is not needed in release suite.
1373 (populateTable): Use DeveloperResultsTable.
1374 * Animometer/resources/debug-runner/graph.js: Pull time graph creation to
1375 its own function, and add a new onGraphTypeChanged handler in preparation
1376 of a complexity graph to be added later.
1377 * Animometer/resources/runner/animometer.js:
1378 (ResultsTable): Simplify to just handle test names and scores.
1379
13802016-02-07 Jon Lee <jonlee@apple.com>
1381
jonlee@apple.com89903bc2016-02-09 03:30:44 +00001382 Tests: reuse objects already made.
1383
1384 Avoid thrash of object creation and removal by maintaining an index that
1385 moves along the array as the adjust values change. If the tune value
1386 requires more objects than the maximum size of the object array, then create
1387 new objects. This means that the object array size never decreases.
1388
1389 * Animometer/tests/master/resources/canvas-stage.js: Maintain a separate
1390 offsetIndex. For these tests, we want to avoid drawing the oldest objects,
1391 so the scene will draw the object at offsetIndex to the end of the array.
1392 (tune): Reverse the logic since "removal" of objects is much simpler and
1393 involves simply changing the offsetIndex.
1394 (animate): Update the for loop to draw from offsetIndex to the end.
1395 (complexity): Update the definition.
1396 * Animometer/tests/master/resources/canvas-tests.js: Maintain a separate
1397 offsetIndex. For these tests, we want to avoid drawing the newest objects,
1398 so the scene will draw the object at index 0 to the object at offsetIndex.
1399 (SimpleCanvasStage.animate): Fly-by removal of local stage variable,
1400 which is unneeded. Update the for loop to draw from offsetIndex to the end.
1401 * Animometer/tests/simple/resources/simple-canvas-paths.js:
1402 (SimpleCanvasStage.animate): Update the for loop to draw from 0 to
1403 offsetIndex.
1404 * Animometer/tests/simple/resources/simple-canvas.js:
1405 (tune): Update logic. Here, offsetIndex represents the boundary of the last
1406 index to render.
1407 (animate): Update the for loop to draw from 0 to offsetIndex.
1408 (complexity): Update the definition.
1409
14102016-02-07 Jon Lee <jonlee@apple.com>
1411
jonlee@apple.combf3569e2016-02-09 03:30:42 +00001412 Tests: refactor and update styles.
1413
1414 * Animometer/tests/resources/main.js: Add helper methods that return
1415 a color that hue rotates based on the date, and a counter value that
1416 increases based on the date. Fix randomInt() to not bias against the min and
1417 max values.
1418
1419 * Animometer/tests/master/resources/canvas-tests.js: Use new helper methods.
1420 * Animometer/tests/master/resources/dom-particles.js: Ditto.
1421 * Animometer/tests/master/resources/particles.js: Ditto.
1422 * Animometer/tests/simple/resources/simple-canvas-paths.js: Refactor to
1423 use a rotating color instead of a random color. The fast switching of color
1424 is too vivid to watch.
1425
1426 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
1427 (BouncingSvgParticlesStage.call.createGradient): Fix the gradient so
1428 that the last stop is located at the end.
1429
14302016-02-07 Jon Lee <jonlee@apple.com>
1431
jonlee@apple.com2512c5d2016-02-09 03:30:38 +00001432 Refactor tune() to not return the complexity of the scene.
1433
1434 We have stage.complexity() now, so returning the complexity through tune
1435 is unnecessary.
1436
1437 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
1438 * Animometer/tests/master/resources/canvas-stage.js:
1439 * Animometer/tests/master/resources/particles.js:
1440 * Animometer/tests/misc/resources/canvas-electrons.js:
1441 * Animometer/tests/misc/resources/canvas-stars.js:
1442 * Animometer/tests/resources/main.js:
1443 * Animometer/tests/simple/resources/simple-canvas.js:
1444 * Animometer/tests/simple/resources/tiled-canvas-image.js:
1445 * Animometer/tests/template/resources/template-canvas.js:
1446 * Animometer/tests/template/resources/template-css.js:
1447 * Animometer/tests/template/resources/template-svg.js:
1448 * Animometer/tests/text/resources/layering-text.js:
1449
14502016-02-07 Jon Lee <jonlee@apple.com>
1451
jonlee@apple.com2e3f9f12016-02-09 03:30:32 +00001452 Make the fixed controller a step controller instead. Halfway through the test
1453 it will bump up the complexity 4-fold. Calculate the step timestamp using options
1454 instead of a separate parameter to the Controller constructor.
1455
1456 * Animometer/developer.html: Change value to "step"
1457 * Animometer/resources/debug-runner/animometer.js:
1458 (window.suitesManager.updateEditsElementsState): Show number inputs when set to "step".
1459 * Animometer/tests/resources/main.js:
1460 (update): Provide a hook for subclasses to tune.
1461 (StepController): Maintain a flag determining whether we've stepped, and the time
1462 we should step.
1463 (Benchmark): Use the new StepController.
1464
14652016-02-07 Jon Lee <jonlee@apple.com>
1466
jonlee@apple.com51e4a6a2016-02-09 03:30:29 +00001467 Adjust the FPS graph scale.
1468
1469 Instead of making the FPS graph linearly scale, scale it based on the frame length,
1470 but show the data in terms of FPS. Because it is inversely proportional, and most
1471 of the data never gets below 20, concentrate the axis from 20-60 FPS, since otherwise
1472 over half of the available graph space ends up blank.
1473
1474 This means we should convert all of the FPS data to frame length data.
1475
1476 * Animometer/resources/debug-runner/graph.js: Update the domain to be based on
1477 frame length in milliseconds instead of FPS. Update the cursor to consider all of the
1478 values being shown, and then pick the min and max values to represent the length of the
1479 cursor.
1480 * Animometer/resources/runner/animometer.js:
1481 * Animometer/resources/strings.js:
1482 * Animometer/tests/resources/main.js:
1483 (processSamples): Add the ability to only sample a range of the data instead of everything
1484 after an offset index. Update sampler to record the frame lengths instead of the frame
1485 rate.
1486
14872016-02-07 Jon Lee <jonlee@apple.com>
1488
jonlee@apple.com5d6969e2016-02-09 03:30:26 +00001489 Add option to use different methods for retrieving a timestamp.
1490
1491 * Animometer/developer.html: Add performance.now and Date.now options.
1492 * Animometer/resources/runner/animometer.js: Default to performance.now.
1493 (window.benchmarkController.startBenchmark):
1494 * Animometer/tests/resources/main.js: Tie the desired method to _getTimestamp.
1495 (run): Use _getTimestamp.
1496 (_animateLoop): Ditto.
1497
14982016-02-07 Jon Lee <jonlee@apple.com>
1499
jonlee@apple.comaaf479e2016-02-09 03:30:23 +00001500 Allow adding any number of markers to the graph. The markers can be labeled
1501 and contain timestamp and sample index data. Make it a part of the controller
1502 rather than keeping it in the sampler.
1503
1504 * Animometer/resources/debug-runner/animometer.css: Add styles for markers
1505 * Animometer/resources/debug-runner/graph.js: Create the markers and add
1506 text labels.
1507 * Animometer/resources/runner/animometer.js: Assume the samplingTimeOffset
1508 is just one of the marks provided.
1509 * Animometer/resources/strings.js: Add Strings.json.marks.
1510 * Animometer/tests/resources/main.js:
1511 (Controller): Keep marks here. They are keyed by the marker name, so no two
1512 markers should have the same name.
1513 (recordFirstSample): Refactor to use mark.
1514 (mark): Allows for arbitrary data if needed later. The timestamp maintained
1515 is relative to the absolute start timestamp.
1516 (containsMark): Checks whether a mark with a specific comment exists.
1517 (processSamples): Removes the _startTimestamp offset from the marks before
1518 setting it in results.
1519 * Animometer/tests/resources/sampler.js: Remove marks.
1520
15212016-02-07 Jon Lee <jonlee@apple.com>
1522
jonlee@apple.comd5713812016-02-09 03:30:18 +00001523 Get rid of options member variable in Benchmark.
1524
1525 Options are only needed when initializing the stage or benchmark, so there's no
1526 need to also keep a reference to it.
1527
1528 * Animometer/tests/resources/main.js: Get rid of options variable in Benchmark.
1529 Pass options to Controllers and Stages.
1530 (Controller.Utilities.createClass):
1531 (Benchmark.Utilities.createClass):
1532 (get options): Deleted.
1533
1534 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
1535 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
1536 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
1537 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
1538 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
1539 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
1540 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
1541 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
1542 * Animometer/tests/master/resources/canvas-stage.js:
1543 * Animometer/tests/master/resources/canvas-tests.js:
1544 * Animometer/tests/master/resources/particles.js:
1545 * Animometer/tests/misc/resources/canvas-electrons.js:
1546 * Animometer/tests/misc/resources/canvas-stars.js:
1547 * Animometer/tests/misc/resources/compositing-transforms.js:
1548 * Animometer/tests/simple/resources/simple-canvas-paths.js:
1549 * Animometer/tests/simple/resources/tiled-canvas-image.js:
1550 * Animometer/tests/template/resources/template-canvas.js:
1551 * Animometer/tests/template/resources/template-css.js:
1552 * Animometer/tests/template/resources/template-svg.js:
1553 * Animometer/tests/text/resources/layering-text.js:
1554
15552016-02-07 Jon Lee <jonlee@apple.com>
1556
jonlee@apple.comfc13e232016-02-09 03:25:39 +00001557 Update how the benchmark is run
1558 https://bugs.webkit.org/show_bug.cgi?id=153960
1559
1560 Provisionally reviewed by Said Abou-Hallawa.
1561
1562 Introduce the notion of a Controller. It is responsible for recording, updating,
1563 and processing the statistics and complexity of the benchmark. This allows
1564 plugging in different Controllers.
1565
1566 This strips most of the functionality from Animator and BenchmarkState, so fold
1567 what's left into Benchmark. Now, Benchmarks only own a stage and a controller, but
1568 are responsible for driving the animation loop.
1569
1570 Rewrite Animator._shouldRequestAnotherFrame into two different Controllers. One
1571 maintains a fixed complexity, and the other adapts the complexity to meet a
1572 fixed FPS.
1573
1574 Fix the Kalman estimator to be modeled on a scalar variable with no model.
1575
1576 * Animometer/tests/resources/main.js: Remove BenchmarkState and Animator, and
1577 replace it with a Controller. Add a FixedController and refactor the previous controller
1578 to an AdaptiveController.
1579
1580 (Controller): Controllers own the estimator and the sampler. When a new frame is
1581 displayed, the animation loop calls update(). The estimator and sampler record
1582 stats, then tune. Samplers can track multiple series of data. The basic controller
1583 tracks timestamp, complexity, and estimated frame rate.
1584 The Kalman estimation is based on the frame length rather than the frame
1585 rate. Because FPS is inverse proportional to frame length, in the case where the measured
1586 frame length is very small, the FPS ends up being a wildly large number (in the order of
1587 600-1000 "FPS"), and it pulls the estimator up drastically enough that it takes a while
1588 for it to settle back down. Using frame length reduces the impact of these spikes.
1589 Converging the estimation takes enough time to avoid initializing it immediately
1590 when the benchmark starts. Instead, the benchmark runs for a brief period of time (100ms)
1591 before running it in earnest. Allow controllers an opportunity to set the complexity
1592 before starting recording.
1593 When the benchmark is complete, the controller has an opportunity to process
1594 the samples. The default implementation calculates the raw FPS based on the time
1595 difference of the samples, and calculates the complexity score. This is moved from
1596 Benchmark.processSamples.
1597
1598 (Controller): Initialize timestamps. These are at first relative to the start of the
1599 benchmark, but are offset by the absolute start time during start(). By default maintain
1600 3 data series, but subclasses can override.
1601 (start): Calls recordFirstSample() for subclasses to override if needed.
1602 (recordFirstSample): For basic controller, start sampling at the beginning.
1603 (update): Update the frame length estimator and sample.
1604 (shouldStop): Checks that the time is before _endTimestamp.
1605 (results): Returns the processed samples.
1606 (processSamples): Iterate through the sample data and collate them. Include scores.
1607
1608 (FixedComplexityController): Controller that tunes the stage to the desired complexity
1609 prior to starting, and keeps it at that complexity.
1610
1611 (AdaptiveController): Have the estimator estimate the interval frame rate instead of the
1612 raw frame rate.
1613 The previous version of this controller ignored the frame that came after the
1614 adjustment. The raw FPS show that whatever noise the scene change adds is negligible
1615 compared to the noise of the system overall. Stop ignoring that frame and include all
1616 frames in the measurements.
1617
1618 (Benchmark): Remove dependency on animator, and instantiate a runner based on what is
1619 selected. Most of the loop's functionality is in Controller, so remove here.
1620 (Benchmark.run): Remove start() since it is only called from run(), and fold it in here.
1621 (Benchmark._animateLoop): Fold in from Animator.animateLoop. Let the benchmark run for
1622 a brief period before calling Controller.start().
1623
1624 * Animometer/tests/resources/math.js: Fix the Kalman estimator. The filter estimates
1625 a scalar variable, and makes basic assumptions regarding the model. As a result
1626 none of the linear algebra classes are needed, so remove Matrix, Vector3, and Matrix3.
1627 (SimpleKalmanEstimator): Calculate the gain based on the provided process and
1628 measurement errors.
1629 (KalmanEstimator): Deleted.
1630 (IdentityEstimator): Deleted.
1631 (PIDController): Refactor to use the Utilities.createClass() helper.
1632
1633 The Kalman filter algorithm is explained here http://greg.czerniak.info/guides/kalman1/.
1634 The state, represented by a scalar, is the estimated frame length. There is no user
1635 transition of the state, and the state is the same as the measurement. With this model,
1636 the estimation error converges, so calculate the gain ahead of time.
1637
1638 * Animometer/developer.html: Remove fixed-after-warmup since it is not useful.
1639 Replace the option to toggle the estimator, and make it possible to customize the
1640 estimator's error parameters. Show raw FPS by default, and remove interval FPS,
1641 which will be shown instead of the filtered raw FPS.
1642 * Animometer/resources/debug-runner/animometer.css: Put the header behind the graph.
1643 Remove #intervalFPS rules; move the color to #filteredFPS.
1644 * Animometer/resources/debug-runner/graph.js:
1645 (updateGraphData): Update the hr style to force the layout to be calculated
1646 correctly. Change the tick format to be in terms of seconds, since the timestamps
1647 are in milliseconds. Remove interval data.
1648 * Animometer/resources/runner/animometer.js:
1649 (window.benchmarkController.startBenchmark): Set Kalman parameters.
1650 * Animometer/resources/runner/benchmark-runner.js:
1651 (_runBenchmarkAndRecordResults): When a benchmark completes, expect it to return
1652 the final data, rather than passing a sampler from the controller. This avoids
1653 needing to expose the sampler variable in the benchmark.
1654 * Animometer/tests/resources/sampler.js:
1655 (process): Move the setting of the target frame rate to AdaptiveController.
1656
jonlee@apple.com192e02e2016-02-06 23:31:51 +000016572016-02-06 Jon Lee <jonlee@apple.com>
1658
jonlee@apple.com69bfacd2016-02-07 00:45:43 +00001659 Code clean up: Move Rotater function closer to Stage static methods.
1660 The Rotater is used together with those methods; keep them close.
1661
1662 * Animometer/tests/resources/main.js:
1663
16642016-02-06 Jon Lee <jonlee@apple.com>
1665
jonlee@apple.com08283832016-02-07 00:39:20 +00001666 Update the JS includes due to ResultsTable move.
1667
1668 * Animometer/developer.html:
1669 * Animometer/index.html:
1670
16712016-02-06 Jon Lee <jonlee@apple.com>
1672
jonlee@apple.com96152f92016-02-07 00:34:31 +00001673 Move createElement and createSVGElement to Utilities.
1674
1675 * Animometer/resources/extensions.js:
1676 (Utilities.createElement): Added.
1677 (Utilities.createSVGElement): Added.
1678 (DocumentExtension.createElement): Deleted.
1679 (DocumentExtension.createSvgElement): Deleted.
1680
1681 * Animometer/resources/debug-runner/animometer.js:
1682 * Animometer/resources/runner/animometer.js:
1683 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
1684 * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js:
1685 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
1686
16872016-02-06 Jon Lee <jonlee@apple.com>
1688
jonlee@apple.com67090172016-02-07 00:27:12 +00001689 Add a convenience function for creating a class.
1690
1691 The pattern for creating a class is common enough to add as a Utilities
1692 helper function. It also makes it easy to collapse class definitions when
1693 editing.
1694
1695 * Animometer/resources/debug-runner/animometer.js: Move ProgressBar definition,
1696 since it is only used here.
1697 * Animometer/resources/runner/animometer.js: Move ResultsDashboard and
1698 ResultsTable definition, since it is only used here.
1699 * Animometer/resources/extensions.js: Move Utilities definition to the top. Convert
1700 Point, Insets, SimplePromise.
1701 (ProgressBar): Moved to animometer.js.
1702 (ResultsDashboard): Moved to animometer.js.
1703 (ResultsTable): Moved to animometer.js.
1704 * Animometer/resources/runner/benchmark-runner.js: Convert BenchmarkRunnerState,
1705 BenchmarkRunner.
1706 * Animometer/tests/resources/main.js: Convert Rotater, Stage, Animator, Benchmark.
1707 * Animometer/tests/resources/sampler.js: Convert Experiment, Sampler.
1708
1709 Convert test primitives.
1710 * Animometer/tests/master/resources/canvas-tests.js: Convert CanvasLineSegment,
1711 CanvasArc, CanvasLinePoint.
1712 * Animometer/tests/simple/resources/simple-canvas-paths.js: Convert CanvasLineSegment,
1713 CanvasLinePoint, CanvasQuadraticSegment, CanvasQuadraticPoint, CanvasBezierSegment,
1714 CanvasBezierPoint, CanvasArcToSegment, CanvasArcToSegmentFill, CanvasArcSegment,
1715 CanvasArcSegmentFill, CanvasRect, CanvasRectFill.
1716 * Animometer/tests/simple/resources/tiled-canvas-image.js: Convert CanvasImageTile.
1717
17182016-02-06 Jon Lee <jonlee@apple.com>
1719
jonlee@apple.comd5baafd2016-02-06 23:36:27 +00001720 Minor improvements to debug harness.
1721
1722 * Animometer/developer.html:
1723 * Animometer/resources/debug-runner/animometer.css:
1724 (#suites): Put the complexity text boxes closer to the test names.
1725 (#options):
1726 (#rawFPS circle): Make the interval FPS appear as a separate data series, with a line.
1727 (#intervalFPS path):
1728 (#intervalFPS circle):
1729 * Animometer/resources/debug-runner/animometer.js:
1730 (window.optionsManager.updateLocalStorageFromUI): Convert number inputs from text.
1731 (window.suitesManager._onChangeTestCheckbox): Refactor to take a checkbox.
1732 (window.suitesManager._createTestElement): Enhance such that typing into the complexity
1733 input will automatically select that test for running.
1734 (window.suitesManager.updateLocalStorageFromJSON): Make the harness work for private
1735 browsing.
1736 * Animometer/resources/debug-runner/graph.js: Separate the intervalFPS data, and show
1737 more accuracy in timestamps.
1738
17392016-02-06 Jon Lee <jonlee@apple.com>
1740
jonlee@apple.com192e02e2016-02-06 23:31:51 +00001741 Refactor helper methods for getting random values for a stage.
1742
1743 Instead of requiring a Stage instance, just attach it to the Stage object.
1744
1745 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
1746 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
1747 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
1748 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
1749 * Animometer/tests/master/resources/canvas-tests.js:
1750 * Animometer/tests/master/resources/particles.js:
1751 * Animometer/tests/misc/resources/canvas-electrons.js:
1752 * Animometer/tests/misc/resources/canvas-stars.js:
1753 * Animometer/tests/misc/resources/compositing-transforms.js:
1754 * Animometer/tests/resources/main.js:
1755 * Animometer/tests/simple/resources/simple-canvas-paths.js:
1756
commit-queue@webkit.orgdbda6682016-02-06 06:21:37 +000017572016-02-05 Said Abou-Hallawa <sabouhallawa@apple.com>
1758
1759 Add a new graphics test for CanvasRenderingContext2D functions: getImageData and putImageData
1760 https://bugs.webkit.org/show_bug.cgi?id=151716
1761
1762 Reviewed by Darin Adler.
1763
1764 The purpose of this test is to measure the performance of getImageData
1765 and putImageData functions. This test draws a background on the canvas
1766 and then gets some random tiles from this background and draw them in
1767 destinations different from their original sources.
jonlee@apple.com67090172016-02-07 00:27:12 +00001768
commit-queue@webkit.orgdbda6682016-02-06 06:21:37 +00001769 * Animometer/resources/debug-runner/tests.js: Adding the new test to the canvas simple tests suite.
jonlee@apple.com67090172016-02-07 00:27:12 +00001770
commit-queue@webkit.orgdbda6682016-02-06 06:21:37 +00001771 * Animometer/resources/extensions.js:
1772 (Array.prototype.shuffle): Shuffles the elements of an array.
jonlee@apple.com67090172016-02-07 00:27:12 +00001773
commit-queue@webkit.orgdbda6682016-02-06 06:21:37 +00001774 (Point.zero): Returns a new Point object whose x and y are equal zero.
1775 (Point.prototype.str): Used for debugging the Point object.
jonlee@apple.com67090172016-02-07 00:27:12 +00001776
commit-queue@webkit.orgdbda6682016-02-06 06:21:37 +00001777 * Animometer/tests/simple/resources/tiled-canvas-image.js: Added.
1778 (CanvasImageTile):
1779 (CanvasImageTile.prototype.getImageData):
1780 (CanvasImageTile.prototype.putImageData):
1781 (Stage.call.initialize):
1782 (Stage.call._createTiles):
1783 (Stage.call._nextTilePosition):
1784 (Stage.call.tune):
1785 (Stage.call._drawBackground):
1786 (Stage.call.animate):
1787 (Stage.call.complexity):
1788 (Stage.call):
1789 * Animometer/tests/simple/tiled-canvas-image.html: Added.
1790
jonlee@apple.com93f76e82016-01-08 04:28:12 +000017912016-01-07 Jon Lee <jonlee@apple.com>
1792
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00001793 Fix new test.
1794
1795 * Animometer/resources/runner/tests.js: Wrong URL from an
1796 old patch.
1797 * Animometer/tests/master/particles.html:
1798 * Animometer/tests/master/resources/dom-particles.js:
1799 (Particle.call.reset): Figured out a simpler way to set up
1800 the particles.
1801 (this.move.reset): Deleted.
1802 (this.move._applyAttributes): Deleted.
1803 * Animometer/tests/master/resources/particles.js:
1804 (Particle): Call move() after reset().
1805
18062016-01-07 Jon Lee <jonlee@apple.com>
1807
jonlee@apple.com93f76e82016-01-08 04:28:12 +00001808 Update benchmark test suite
1809 https://bugs.webkit.org/show_bug.cgi?id=152679
1810
1811 Reviewed by Simon Fraser.
1812
1813 Add a new test. The test has a rotating background
1814 gradient, and does a better job physically simulating
1815 particles.
1816
1817 * Animometer/resources/extensions.js: Teach Point to take constants as well as other Points.
1818 (Point.prototype.length): Added.
1819 (Point.prototype.normalize): Added.
1820 * Animometer/resources/runner/tests.js: Add the test to the master suite.
1821 * Animometer/tests/master/particles.html: Added.
1822 * Animometer/tests/master/resources/particles.js: Added. Parent class for different kinds of particles.
1823 (Particle):
1824 (Particle.prototype.reset): If the particle starts slowing down in terms of its animation,
1825 reset it.
1826 (Particle.prototype.animate): Bounce off the walls elastically, and include gravity.
1827 (Particle.prototype.move): Subclasses should override.
1828 (ParticlesStage): Stage includes a rotating gradient background.
1829 * Animometer/tests/master/resources/dom-particles.js: Added. Creates a <div> and adds it to
1830 the stage.
1831 * Animometer/tests/resources/star.svg: Added.
1832
jonlee@apple.comc2ac0a92016-01-08 03:58:33 +000018332016-01-03 Jon Lee <jonlee@apple.com>
1834
1835 Update benchmark test suite
1836 https://bugs.webkit.org/show_bug.cgi?id=152679
1837
1838 Reviewed by Simon Fraser.
1839
1840 Move algorithm.js and sampler.js to tests/ and benchmark-runner.js to runner/.
1841
1842 Needed by both harnesses.
1843 * Animometer/resources/runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/resources/debug-runner/benchmark-runner.js.
1844 * Animometer/developer.html:
1845 * Animometer/index.html:
1846
1847 Needed only by the tests. Move to tests/. Statistics, in sampler.js, is used by ResultsDashboard, so move that
1848 into extensions.js.
1849 * Animometer/resources/extensions.js:
1850 * Animometer/tests/resources/algorithm.js: Renamed from PerformanceTests/Animometer/resources/algorithm.js.
1851 * Animometer/tests/resources/sampler.js: Renamed from PerformanceTests/Animometer/resources/sampler.js.
1852 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
1853 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
1854 * Animometer/tests/bouncing-particles/bouncing-css-images.html:
1855 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
1856 * Animometer/tests/bouncing-particles/bouncing-svg-images.html:
1857 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
1858 * Animometer/tests/master/canvas-stage.html:
1859 * Animometer/tests/misc/canvas-electrons.html:
1860 * Animometer/tests/misc/canvas-stars.html:
1861 * Animometer/tests/misc/compositing-transforms.html:
1862 * Animometer/tests/simple/simple-canvas-paths.html:
1863 * Animometer/tests/template/template-canvas.html:
1864 * Animometer/tests/template/template-css.html:
1865 * Animometer/tests/template/template-svg.html:
1866 * Animometer/tests/text/layering-text.html:
1867 * Animometer/tests/text/text-boxes.html:
1868
jonlee@apple.comf5cbdd92016-01-08 00:10:01 +000018692016-01-07 Jon Lee <jonlee@apple.com>
1870
jonlee@apple.comec8f66f2016-01-08 03:54:36 +00001871 Update benchmark test suite
1872 https://bugs.webkit.org/show_bug.cgi?id=152679
1873
1874 Reviewed by Simon Fraser.
1875
1876 Fix tests for other browsers.
1877
1878 * Animometer/resources/extensions.js:
1879 (Point.elementClientSize): Some browsers return 0 for SVG clientWidth and clientHeight.
1880 Use getBoundingClientRect() instead.
1881 * Animometer/tests/misc/resources/canvas-electrons.js:
1882 (CanvasElectron.prototype._draw): Some browsers don't support ellipse.
1883
18842016-01-07 Jon Lee <jonlee@apple.com>
1885
jonlee@apple.comf5cbdd92016-01-08 00:10:01 +00001886 Add a waitUntilReady() step
1887 https://bugs.webkit.org/show_bug.cgi?id=152862
1888
1889 Reviewed by Simon Fraser.
1890
1891 Add a waitUntilReady() callback that lets the benchmark complete
1892 its setup before running the benchmark.
1893
1894 * Animometer/tests/resources/main.js:
1895 (Benchmark.prototype.run): First call waitUntilReady, which returns
1896 a promise. When the promise resolves, run everything that was in this
1897 function.
1898 (Benchmark.prototype.waitUntilReady): Default implementation returns
1899 a resolved promise.
1900 (Benchmark.prototype.resolveWhenFinished): Deleted.
1901 * Animometer/tests/template/resources/template-canvas.js:
1902 (new.TemplateCanvasStage.waitUntilReady): Example on how to override.
1903
jonlee@apple.com255da372016-01-04 02:36:57 +000019042016-01-03 Jon Lee <jonlee@apple.com>
1905
1906 Update data reporting and analysis
1907 https://bugs.webkit.org/show_bug.cgi?id=152670
1908
1909 Reviewed by Simon Fraser.
1910
1911 Show new graph data. Provide controls to show different series data. Provide an
1912 interactive cursor that shows the data at a given sample.
1913
1914 * Animometer/developer.html: Add a nav section in #results. Each part of the graph
1915 has a checkbox for visual toggling, as well as companion spans to contain the data.
1916 The numbers will always be shown even if the SVG isn't.
1917 * Animometer/resources/debug-runner/animometer.css:
1918 (#suites): Adjust spacing when doing fixed complexity.
1919 (#test-graph nav): Place the nav in the upper right corner.
1920 (#test-graph-data > svg): Fix the FPS scale from 0-60. It makes the raw FPS goes past
1921 that scale. Allow it to show.
1922 (.target-fps): Add a dotted line for where the benchmark is supposed to settle for FPS.
1923 (#cursor line): The cursor contains a line and highlight circles for the data being shown.
1924 (#cursor circle):
1925 (#complexity path): This and rules afterward are named by series type.
1926 (#complexity circle):
1927 (#filteredFPS path):
1928 (#filteredFPS circle):
1929 (#rawFPS path):
1930 (#intervalFPS circle):
1931 (.left-samples): Deleted.
1932 (.right-samples): Deleted.
1933 * Animometer/resources/debug-runner/animometer.js:
1934 (initialize): Add a "changed" listener when the checkboxes change in the nav.
1935 (onBenchmarkOptionsChanged): Renamed.
1936 (showTestGraph): All graph data is passed in as graphData instead of as arguments.
1937 * Animometer/resources/debug-runner/graph.js: Extend BenchmarkController. When showing
1938 a new graph, call updateGraphData(). It creates all of the d3 graphs. onGraphOptionsChanged()
1939 toggles the data on and off.
1940 (updateGraphData): Add the axes. Add the average lines and markers for sample time and
1941 target FPS. Add the cursor group. Use helper function addData() to add the data. On top of
1942 everything add a transparent area which will catch all of the mouse events. When the mouse
1943 moves in the graph, find the closest data point, show the data in the nav area, and highlight
1944 the data points.
1945 (addData): Adds a line and circle for each data point. Also adds a highlight cursor with a
1946 size a little larger than the circle radius for the data points.
1947 (onGraphOptionsChanged): Called when data is visually toggled.
1948 (showOrHideNodes): Helper function to toggle the .hidden class.
1949 * Animometer/resources/extensions.js:
1950 (ResultsDashboard.prototype.get data): Get rid of the arguments for _processData.
1951 (ResultsTable.prototype._addGraphButton): Shove all of the graph data into a singular object.
1952
1953 Producing the JSON can take a while with all of the data. Make it on-demand with a
1954 button.
1955
1956 * Animometer/resources/debug-runner/animometer.js:
1957 (showResults): When showing the results, don't serialize the JSON data. Move that to...
1958 (showJSONResults): ...here. Remove the button.
1959
1960 * Animometer/developer.html: Add a button. The button will remove itself and populate
1961 the textarea with the JSON data.
1962 * Animometer/resources/debug-runner/animometer.css:
1963 (.hidden): Add a universal hidden class.
1964 (#results button.small-button): Promote the small-button styles to the whole results
1965 section for use in the JSON button.
1966 (#results button.small-button:active):
1967 (#results-data button.small-button): Deleted.
1968 (#results-data button.small-button:active): Deleted.
1969
1970 Refactor how Animator does its recording.
1971
1972 * Animometer/tests/resources/math.js: Create a new, simple estimator that just returns
1973 the same interval frame rate for adjustment.
1974 * Animometer/tests/resources/main.js:
1975 (Animator): Remove _dropFrameCount, and make variables more accurate described.
1976 (Animator.prototype.initialize): Use the identity estimator instead of using a bool.
1977 (Animator.prototype._intervalTimeDelta): Rename, only used internally.
1978 (Animator.prototype._shouldRequestAnotherFrame): Assume we drop one frame for adjustment
1979 of the scene. If we are within the number of frames to measure for the interval, just
1980 record the timestamp. Otherwise we are ready to evaluate and adjust the scene. Record
1981 the interval frame rate and the estimator's frame rate.
1982
1983 Avoid processing the data through the Experiment while the test is running. Reconfigure
1984 the sampler to just record the raw samples. After the test is done, run the samples through
1985 the Experiment to get the score.
1986
1987 * Animometer/resources/sampler.js:
1988 (Experiment): Fold _init() into the constructor since nobody else will call it. This is not
1989 needed until the test concludes, so remove startSampling(). Clients should just call sample().
1990 (Sampler): Pre-allocate arrays given the number of data points being recorded, and a capacity
1991 of how many samples will be used. The processor is a called when it's time to process the data
1992 since that is the client also telling the Sampler what to record.
1993 Introduce the notion of marks as well, which allows the client to mark when an
1994 event occurs. When we mark sample start, we can attach the timestamp there, instead of storing
1995 it separately.
1996 (Sampler.prototype.startSampling): Deleted. Clients should just call record().
1997 (Sampler.prototype.record): The data to record is passed in as variable arguments.
1998 (Sampler.prototype.mark): When adding a mark, a client needs to provide a unique string, and
1999 can provide extra data object for later retrieval.
2000 (Sampler.prototype.process): Renamed from toJSON. Trim the sampling arrays to what was used.
2001 Call the processor to process the samples.
2002 * Animometer/resources/debug-runner/benchmark-runner.js:
2003 (BenchmarkRunner.prototype._runBenchmarkAndRecordResults): Call process().
2004
2005 * Animometer/resources/strings.js: Add some new strings, remove the graph ones since they are
2006 not used.
2007 * Animometer/tests/resources/main.js:
2008 (Benchmark): Create a sampler with 4 series. The maximum number of points expected is the
2009 number of seconds multiplied by 60 fps. Benchmark, as a client of the Sampler, knows about all
2010 of the data being added to the Sampler. It is added through record(), and processed through
2011 processSamples().
2012 (Benchmark.prototype.update): Mark when we've passed warmup and are starting to sample. Include
2013 the timestamp in the custom data for the mark. This avoids the need to store is separately in
2014 the Sampler. Fold what was in record() here, since nothing else needs this functionality.
2015 record() now just relays the information to the sampler.
2016 (Benchmark.prototype.record): Called by Animator, which provides the data to the sampler.
2017 Animator's calls to this is part of a later patch. Requires each stage to return its complexity.
2018 (Benchmark.prototype.processSamples): If the sampling mark exists, add it to the results.
2019 Go through all of the samples. All samples contain a timestamp and complexity. We
2020 calculate "raw FPS" which is the time differential from the previous sample. At regular intervals
2021 the Kalman-filtered FPS and the interval average FPS are also recorded. We also create two
2022 experiments, to get the scores for the complexity and smoothed FPS, and add those samples to
2023 the experiments. Grab those scores and add them into results also.
2024
2025 Add complexity() to the tests for Benchmark.record().
2026 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
2027 * Animometer/tests/misc/resources/canvas-electrons.js:
2028 * Animometer/tests/misc/resources/canvas-stars.js:
2029 * Animometer/tests/text/resources/layering-text.js:
2030
jonlee@apple.com0b563e62016-01-03 23:02:56 +000020312015-12-27 Jon Lee <jonlee@apple.com>
2032
2033 Simplify the test harness
2034 https://bugs.webkit.org/show_bug.cgi?id=152562
2035
2036 Reviewed by Simon Fraser.
2037
jonlee@apple.com33fb1d72016-01-03 23:05:41 +00002038 Update the simple canvas tests. For the paths, start from the center instead of the
2039 top-left corner. Instead of using a coordinate limit, use a canonized factor, and
2040 use that along both the x and y axes, so that more capable tests use more of the
2041 canvas.
2042
2043 * Animometer/tests/simple/resources/simple-canvas-paths.js:
2044 (CanvasLinePoint): Rewrite to use the coordinate maximum factor.
2045 (CanvasQuadraticPoint): Ditto.
2046 (CanvasBezierPoint): Ditto.
2047 * Animometer/tests/simple/resources/simple-canvas.js:
2048 (tune): Calculate a factor instead of a maximum coordinate.
2049
20502015-12-27 Jon Lee <jonlee@apple.com>
2051
2052 Simplify the test harness
2053 https://bugs.webkit.org/show_bug.cgi?id=152562
2054
2055 Reviewed by Simon Fraser.
2056
jonlee@apple.com0b563e62016-01-03 23:02:56 +00002057 All of the benchmarks use the default Animator(). Don't require new tests
2058 to pass a new instance, and instead just make one in the Benchmark constructor.
2059
2060 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
2061 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
2062 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
2063 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
2064 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
2065 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
2066 * Animometer/tests/master/resources/canvas-tests.js:
2067 * Animometer/tests/misc/resources/canvas-electrons.js:
2068 * Animometer/tests/misc/resources/canvas-stars.js:
2069 * Animometer/tests/misc/resources/compositing-transforms.js:
2070 * Animometer/tests/resources/main.js:
2071 * Animometer/tests/simple/resources/simple-canvas-paths.js:
2072 * Animometer/tests/template/resources/template-canvas.js:
2073 * Animometer/tests/template/resources/template-css.js:
2074 * Animometer/tests/template/resources/template-svg.js:
2075 * Animometer/tests/text/resources/layering-text.js:
2076 * Animometer/tests/text/resources/text-boxes.js:
2077
2078 Refactor the template.
2079
2080 * Animometer/tests/template/resources/template-canvas.js:
2081 * Animometer/tests/template/resources/template-css.js:
2082 * Animometer/tests/template/resources/template-svg.js:
2083 * Animometer/tests/template/template-canvas.html:
2084 * Animometer/tests/template/template-css.html:
2085 * Animometer/tests/template/template-svg.html:
2086
2087 Refactor the SVG suite.
2088
2089 * Animometer/tests/bouncing-particles/bouncing-svg-images.html: Move scripts to the end.
2090 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Ditto.
2091
2092 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Remove extraneous includes
2093 to stage.js.
2094 * Animometer/tests/text/text-boxes.html: Ditto.
2095
2096 BouncingCanvasParticlesBenchmark is not necessary. Use Benchmark directly when subclassing.
2097 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Remove
2098 BouncingCanvasParticlesBenchmark.
2099 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Use Benchmark.
2100 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Ditto.
2101
2102 * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js: Require the shape
2103 in the constructor instead of having subclasses set the private variable.
2104
2105 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js: Refactor.
2106 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
2107
2108 Refactor the HTML suite.
2109
2110 Move scripts to the end.
2111 * Animometer/tests/bouncing-particles/bouncing-css-images.html:
2112 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
2113 * Animometer/tests/text/layering-text.html:
2114 * Animometer/tests/text/text-boxes.html:
2115
2116 Refactor to use the new variables.
2117 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
2118 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
2119 * Animometer/tests/text/resources/layering-text.js:
2120 * Animometer/tests/text/resources/text-boxes.js:
2121
2122 Refactor the bouncing canvas tests.
2123
2124 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Move scripts to the end.
2125 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Move scripts to the end.
2126
2127 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js: Promote a few
2128 properties to "public" since they are used by subclasses.
2129 (BouncingParticlesStage): Fix the constructor, which was missing "this". Make particles
2130 "public" for subclasses.
2131 (BouncingParticlesStage.initialize): Fix the max velocity, which was accidentally changed.
2132 * Animometer/tests/misc/resources/compositing-transforms.js: Refactor.
2133
2134 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
2135 BouncingCanvasParticlesAnimator is no longer needed.
2136 (BouncingCanvasParticle): Change constructor to take a shape as a parameter instead of
2137 having subclasses set the variable.
2138
2139 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Refactor.
2140 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Refactor.
2141
2142 Move example/ files into misc/.
2143
2144 * Animometer/tests/misc/canvas-electrons.html: Renamed from PerformanceTests/Animometer/tests/examples/canvas-electrons.html.
2145 * Animometer/tests/misc/canvas-stars.html: Renamed from PerformanceTests/Animometer/tests/examples/canvas-stars.html.
2146 * Animometer/tests/misc/resources/canvas-electrons.js: Renamed from PerformanceTests/Animometer/tests/examples/resources/canvas-electrons.js.
2147 * Animometer/tests/misc/resources/canvas-stars.js: Renamed from PerformanceTests/Animometer/tests/examples/resources/canvas-stars.js.
2148
2149 * Animometer/resources/debug-runner/tests.js: Update test URLs.
2150
2151 Refactor miscellaneous suite.
2152
2153 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
2154 Remove BouncingParticlesAnimator and BouncingParticleBenchmark, which are
2155 not needed.
2156 (tune): Remove console assert.
2157 * Animometer/tests/resources/main.js: Add Rotater back in from stage.js.
2158
2159 * Animometer/tests/examples/resources/canvas-electrons.js: Remove CanvasElectronsAnimator.
2160 * Animometer/tests/examples/resources/canvas-stars.js: Remove CanvasStarsAnimator.
2161 * Animometer/tests/misc/resources/compositing-transforms.js:
2162 * Animometer/tests/examples/canvas-electrons.html: Move scripts to the end.
2163 * Animometer/tests/examples/canvas-stars.html: Ditto.
2164 * Animometer/tests/misc/compositing-transforms.html: Ditto.
2165
2166 Refactor the simple suite.
2167
2168 * Animometer/tests/master/resources/canvas-stage.js:
2169 (tune): Remove coordinateMaximum since it is not needed in any
2170 of the master tests.
2171 * Animometer/tests/simple/resources/simple-canvas.js:
2172 SimpleCanvasAnimator and SimpleCanvasBenchmark are no longer
2173 needed.
2174 (tune): Manage the objects differently, but instead of duplicating
2175 all of SimpleCanvasStage here, just replace tune(). Include
2176 coordinateMaximum, and remove items from the end of the list
2177 instead of the beginning.
2178 (StageBenchmark.call.createAnimator): Deleted.
2179 (StageBenchmark.call): Deleted.
2180 * Animometer/tests/simple/resources/simple-canvas-paths.js:
2181 * Animometer/tests/simple/simple-canvas-paths.html: Move
2182 scripts to the end.
2183
2184 Get rid of stage.js, StageAnimator, and StageBenchmark. Don't have the progress bar update during the test.
2185
2186 * Animometer/resources/debug-runner/animometer.js:
2187 (initialize): Move the setting of testsCount to the debug runner.
2188 (didRunTest): Nicer name.
2189 * Animometer/resources/debug-runner/benchmark-runner.js:
2190 (BenchmarkRunner.prototype._runBenchmarkAndRecordResults): Don't pass in the progress bar to benchmarks.
2191 * Animometer/resources/extensions.js:
2192 (ProgressBar): Refactor. Make variables "private". Resetting the progress when instantiating.
2193 (ProgressBar.prototype.incrementRange): This is called every time a benchmark completes.
2194 * Animometer/resources/runner/animometer.js:
2195 (window.benchmarkRunnerClient.initialize): Remove unneeded setting of testsCount.
2196 * Animometer/resources/strings.js: These are no longer needed.
2197 * Animometer/tests/master/canvas-stage.html: Remove script inclusion. Other tests will follow.
2198 * Animometer/tests/master/resources/canvas-tests.js: Use Benchmark instead of StageBenchmark.
2199 * Animometer/tests/resources/main.js: Messages are no longer needed
2200 (Animator.prototype._shouldRequestAnotherFrame): Rename from animate(), since this method returns a boolean
2201 indicating whether another frame should be requested. Collapse the logic from StageAnimator into animateLoop.
2202 (BenchmarkState.prototype.currentStage): Deleted.
2203 (BenchmarkState.prototype.currentMessage): Deleted.
2204 (BenchmarkState.prototype.currentProgress): Deleted.
2205 (Animator.prototype.animate): Deleted.
2206 (Animator.prototype.animateLoop): The stage is animated only when we have another frame to draw.
2207 (Benchmark.prototype.record): No need to update the progress bar.
2208 * Animometer/tests/resources/stage.js: Removed. Rotater will appear in a later patch, in main.js.
2209
2210 * Animometer/resources/debug-runner/benchmark-runner.js:
2211 (BenchmarkRunner.prototype._runBenchmarkAndRecordResults): Each test is run as a benchmark.
2212 Remove the call to runBenchmark by merging the options here, and calling benchmark.run()
2213 directly.
2214
2215 Make the class relationships more easily understandable. The benchmark owns the stage,
2216 animator, and options. Make the stage and animator no longer have their own references to
2217 the options. Make Stage a first-class citizen by promoting it to main.js. Later patches
2218 will try to get rid of stage.js altogether.
2219 * Animometer/tests/resources/main.js:
2220 (Stage): Moved from stage.js.
2221 (Animator): Don't pass in benchmark and options in its constructor. It will get initialized
2222 by benchmark-related parameters in initialize().
2223 (Animator.prototype.initialize): Add a back-reference to benchmark and cache an option.
2224 (Animator.prototype.get benchmark):
2225 (Animator.prototype.animate): Refactor to use the cached option, to remove its dependency on
2226 the options dictionary.
2227 (Benchmark): Require all benchmarks to have a stage and animator. The instance will initialize
2228 them.
2229 (Benchmark.prototype.get options):
2230 (Benchmark.prototype.get stage): BenchmarkStates.stages will need to be renamed to avoid confusion.
2231 (Benchmark.prototype.get animator):
2232 (Benchmark.prototype.start):
2233 (Benchmark.prototype.update): Ask the stage directly to tune or clear instead of adding another
2234 level of indirection.
2235 (window.runBenchmark): Deleted. Remove the need for a benchmarkClient. Also remove the standalone
2236 path, since tests can be individually selected, and remove the need for runBenchmark since that is
2237 handled in BenchmarkRunner._runBenchmarkAndRecordResults.
2238 * Animometer/tests/resources/stage.js:
2239 (Stage): Deleted. Moved to main.js.
2240 (StageBenchmark): What's left is updating the progress bar; to be removed.
2241 (StageAnimator): What's left can be folded in Animator.
2242
2243 Refactor master suite.
2244 * Animometer/tests/master/resources/canvas-stage.js: This now only has SimpleCanvasStage.
2245 (animate): Push the clearRect() into each stage.
2246 (complexity):
2247 (StageBenchmark.call.createAnimator): Deleted.
2248 (StageBenchmark.call): Deleted.
2249 * Animometer/tests/master/resources/canvas-tests.js: SimpleCanvasPathStrokeStage is no longer needed.
2250 (CanvasLineSegment.prototype.draw):
2251 (CanvasArc):
2252 (CanvasLinePoint): Remove the draw call because depending on its index it either needs to be moveTo
2253 or lineTo, and it is otherwise a very small draw operation that doesn't need the overhead of the
2254 function call. Do all of the drawing through the stage.
2255
2256 Refactor the subclass pattern. Introduce Utilities.createSubclass().
2257
2258 * Animometer/resources/debug-runner/benchmark-runner.js:
2259 * Animometer/resources/extensions.js:
2260 (window.Utilities.createSubclass): Takes the super class, a function representing
2261 the class's constructor, and additional methods to attach to the new class's
2262 prototype object.
2263 * Animometer/tests/text/text-boxes.html: Remove unneeded reference to utilities.js.
2264
2265 Refactor tests.
2266 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
2267 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
2268 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
2269 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
2270 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
2271 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
2272 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
2273 * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js:
2274 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
2275 * Animometer/tests/examples/resources/canvas-electrons.js:
2276 * Animometer/tests/examples/resources/canvas-stars.js:
2277 * Animometer/tests/master/resources/canvas-stage.js:
2278 * Animometer/tests/master/resources/canvas-tests.js:
2279 * Animometer/tests/misc/resources/compositing-transforms.js:
2280 * Animometer/tests/resources/stage.js:
2281 * Animometer/tests/simple/resources/simple-canvas-paths.js:
2282 * Animometer/tests/simple/resources/simple-canvas.js:
2283 * Animometer/tests/template/resources/template-canvas.js:
2284 * Animometer/tests/template/resources/template-css.js:
2285 * Animometer/tests/template/resources/template-svg.js:
2286 * Animometer/tests/text/resources/layering-text.js: Reorder some of the methods
2287 and properties since they rely on each other.
2288 * Animometer/tests/text/resources/text-boxes.js:
2289
2290 * Animometer/resources/debug-runner/animometer.js: Arrange calls
2291 in the order they are evoked.
2292 * Animometer/resources/debug-runner/benchmark-runner.js:
2293 (BenchmarkRunnerState.prototype.next): Get rid of return value since
2294 no caller to next() uses it.
2295 (BenchmarkRunnerState.prototype.prepareCurrentTest): Refactor the
2296 promise to resolve simply when onload() is called instead of
2297 looking for #stage.
2298 (BenchmarkRunner.prototype._runTestAndRecordResults): Suite.run
2299 simply calls runBenchmark(). Call it directly rather than through
2300 the Suite.
2301 (BenchmarkRunner.prototype.step): Remove unused parameter in
2302 resolve callback.
2303 (BenchmarkRunner.prototype.runMultipleIterations): Use this instead
2304 of self since it is outside of the closure which needed the self
2305 variable.
2306 (resolveIfReady): Deleted.
2307 (BenchmarkRunner.prototype.waitForElement): Deleted.
2308 * Animometer/resources/runner/tests.js: prepare() and run() are
2309 no longer needed.
2310 (Suite.prototype.prepare): Deleted.
2311 (Suite.prototype.run): Deleted.
2312 * Animometer/tests/master/canvas-stage.html: Move all scripts to
2313 the end of the page.
2314
simon.fraser@apple.com2dec3a32015-12-24 04:26:36 +000023152015-12-23 Simon Fraser <simon.fraser@apple.com>
2316
2317 Add an Animometer developer test which animates text-rich boxes
2318 https://bugs.webkit.org/show_bug.cgi?id=152544
2319
2320 Reviewed by Zalan Bujtas.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002321
simon.fraser@apple.com2dec3a32015-12-24 04:26:36 +00002322 Add a test that draws lots of international text. This is a particle test,
2323 moving the boxes around with absolution positioning.
2324
2325 * Animometer/resources/debug-runner/tests.js:
2326 * Animometer/tests/text/resources/text-boxes.js: Added.
2327 (BouncingTextBox):
2328 (BouncingTextBox.prototype._move):
2329 (BouncingTextBox.prototype.animate):
2330 (BouncingTextBoxStage):
2331 (BouncingTextBoxStage.prototype.createParticle):
2332 (BouncingTextBoxStage.prototype.particleWillBeRemoved):
2333 (BouncingTextBoxsBenchmark):
2334 (BouncingTextBoxsBenchmark.prototype.createStage):
2335 (window.benchmarkClient.create):
2336 * Animometer/tests/text/text-boxes.html: Added.
2337
jonlee@apple.come4704a72015-12-24 01:31:47 +000023382015-12-23 Jon Lee <jonlee@apple.com>
2339
2340 Split benchmark into two different pages
2341 https://bugs.webkit.org/show_bug.cgi?id=152458
2342
2343 Reviewed by Simon Fraser.
2344
jonlee@apple.com49f57db2015-12-24 01:36:43 +00002345 Add tests to 'animometer' suite.
2346
2347 * Animometer/resources/runner/tests.js:
2348 * Animometer/tests/master/canvas-stage.html: Added.
2349 * Animometer/tests/master/resources/canvas-stage.js: Added.
2350 * Animometer/tests/master/resources/canvas-tests.js: Added.
2351 * Animometer/tests/master/resources/stage.css: Added.
2352
23532015-12-23 Jon Lee <jonlee@apple.com>
2354
2355 Split benchmark into two different pages
2356 https://bugs.webkit.org/show_bug.cgi?id=152458
2357
2358 Reviewed by Simon Fraser.
2359
jonlee@apple.come4704a72015-12-24 01:31:47 +00002360 Address comments.
2361
2362 * Animometer/resources/debug-runner/benchmark-runner.js:
2363 (BenchmarkRunner.prototype._runTestAndRecordResults): When the testing is complete the frame owning the
2364 sampler goes away, and a later call to get the JSON data is no longer available. Process the data
2365 right here, instead, and just reference it when displaying the results in ResultsDashboard.prototype._processData.
2366 * Animometer/resources/extensions.js:
2367 (Array.prototype.fill.Array.prototype.fill): Add a null check. Remove braces around single-line clause.
2368 (Array.prototype.find.Array.prototype.find): Update the null check.
2369 (ResultsDashboard.prototype._processData): Use the already-processed data.
2370 * Animometer/resources/runner/animometer.css:
2371 (.frame-container > iframe): Remove calc().
2372
2373 Move Array functions to extensions.js since that is included by the harness.
2374 Add ES6 Array polyfills.
2375
2376 * Animometer/resources/algorithm.js:
2377 (Array.prototype.swap): Moved to extensions.js.
2378 * Animometer/resources/extensions.js:
2379 (Array.prototype.swap):
2380 (Array.prototype.fill): Added.
2381 (Array.prototype.find): Added.
2382
2383 Adjust styles for iPad.
2384
2385 * Animometer/resources/runner/animometer.css:
2386 (@media screen and (min-device-width: 768px)): Apply to iPad as well.
2387 (@media screen and (max-device-width: 1024px)): Update width for iPads.
2388
2389 Adjustment styles for iOS.
2390
2391 * Animometer/developer.html: Different divs contain the iframe, so use a class instead and
2392 update the style rules.
2393 * Animometer/index.html:
2394 * Animometer/resources/debug-runner/animometer.css: Remove extraneous rules.
2395 (@media screen and (min-device-width: 1800px)): Move this up.
2396 * Animometer/resources/runner/animometer.css: Add rules to accomodate iOS.
2397
2398 Get rid of prefixed flex properties for now.
2399
2400 * Animometer/resources/debug-runner/animometer.css:
2401 * Animometer/resources/runner/animometer.css:
2402
2403 Update the structure of the harness. Remove the JSON-per-test but keep
2404 the JSON of the whole test run. Use the full page in order to display
2405 the graph.
2406
2407 * Animometer/developer.html: Update several of the JS file includes to UTF-8. Remove header and footer. Test results screen includes score,
2408 average, and worst 5% statistics.
2409 * Animometer/index.html: Make structure similar to developer.html.
2410 * Animometer/resources/debug-runner/animometer.css: Remove most of the
2411 button rules since they are superfluous. Move the progress bar to the
2412 top, fixed. Update the results page rules.
2413 * Animometer/resources/debug-runner/animometer.js: Remove most of the
2414 additions to sectionsManager since they are no longer needed.
2415 (setSectionHeader): Updates header of the section.
2416 (window.suitesManager._updateStartButtonState): Update selector.
2417 (showResults): Add keypress event for selecting different data for
2418 copy/paste. Update how the results are populated. Include full test
2419 JSON in a textarea, rather than requiring a button press.
2420 (showTestGraph):
2421 * Animometer/resources/debug-runner/tests.js: Update structure of Headers. Define different kinds of headers. Headers can control their
2422 title, and the text used as the cell contents, including class name.
2423 * Animometer/resources/extensions.js:
2424 (ResultsTable): Update to include a flattened version of the headers,
2425 used while populating table contents. Remove unneeded helper functions
2426 for creating the table. Rename "show" to "add".
2427 * Animometer/resources/runner/animometer.css: Update rules to
2428 accommodate the new structure.
2429 * Animometer/resources/runner/animometer.js:
2430 (window.sectionsManager.setSectionScore): Helper function to set the
2431 score and mean for a section.
2432 (window.sectionsManager.populateTable): Helper function to set the table.
2433 (window.benchmarkController.showResults): Refactor.
2434 (window.benchmarkController.selectResults): Update selectors.
2435 * Animometer/resources/runner/tests.js: Set Headers. Debug harness
2436 extends it.
2437
2438 Update debug runner to have similar names to the basic runner. Include
2439 that page's CSS and remove extraneous CSS rules.
2440
2441 Get rid of the statistics table #record.
2442
2443 * Animometer/developer.html: Rename #home to #intro. Rename .spacer to hr.
2444 * Animometer/resources/debug-runner/animometer.css: Set to flexbox when selected.
2445 * Animometer/resources/debug-runner/animometer.js: Remove recordTable.
2446 (window.suitesManager._updateStartButtonState): Update selector to #intro.
2447 (setupRunningSectionStyle): Deleted.
2448
2449 * Animometer/resources/runner/animometer.css:
2450 (#test-container.selected): Change to flex-box only when visible.
2451
2452 Remove recordTable.
2453 * Animometer/resources/debug-runner/benchmark-runner.js:
2454 (BenchmarkRunner.prototype._runTestAndRecordResults):
2455 * Animometer/resources/runner/tests.js:
2456 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js:
2457 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
2458 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
2459 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js:
2460 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
2461 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
2462 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
2463 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
2464 * Animometer/tests/examples/resources/canvas-electrons.js:
2465 * Animometer/tests/examples/resources/canvas-stars.js:
2466 * Animometer/tests/misc/resources/compositing-transforms.js:
2467 * Animometer/tests/resources/main.js:
2468 * Animometer/tests/resources/stage.js:
2469 (StageBenchmark): Remove _recordTable.
2470 * Animometer/tests/simple/resources/simple-canvas-paths.js:
2471 * Animometer/tests/simple/resources/simple-canvas.js:
2472 * Animometer/tests/template/resources/template-canvas.js:
2473 * Animometer/tests/template/resources/template-css.js:
2474 * Animometer/tests/template/resources/template-svg.js:
2475 * Animometer/tests/text/resources/layering-text.js:
2476
2477 * Animometer/resources/debug-runner/animometer.js:
2478 (willStartFirstIteration): Fix selector, since results-table is used
2479 in multiple places, so it cannot be an id.
2480
2481 Make it possible to select the scores, or the whole table data,
2482 by cycling through different selections through key press of 's'.
2483
2484 * Animometer/resources/runner/animometer.js:
2485 (window.benchmarkController.showResults): Attach a keypress handler
2486 if it hasn't been added already.
2487 (window.benchmarkController.selectResults):
2488 * Animometer/resources/runner/tests.js: Cycle through different
2489 ranges.
2490
2491 Fix a few fly-by errors.
2492
2493 * Animometer/resources/debug-runner/benchmark-runner.js:
2494 (BenchmarkRunnerState.prototype.prepareCurrentTest): Update the frame relative path
2495 since the files are now in the top directory instead of inside runner/.
2496 (BenchmarkRunner.prototype._runTestAndRecordResults): Incorrect reference to function.
2497 (BenchmarkRunner.prototype.step): Member variable is never used.
2498
2499 A little stylistic cleanup.
2500
2501 * Animometer/resources/debug-runner/benchmark-runner.js:
2502 * Animometer/resources/extensions.js:
2503 (window.DocumentExtension.createElement):
2504 * Animometer/tests/resources/main.js:
2505 (Benchmark.prototype.record):
2506 * Animometer/tests/resources/stage.js:
2507 (StageBenchmark.prototype.showResults): Reverse progress and message.
2508 The message appears less frequently than the progress.
2509 * Animometer/tests/simple/resources/simple-canvas.js:
2510 (SimpleCanvasBenchmark): Remove unused options.
2511
2512 Add newer version of harness in a new page. Consolidate differences between the two
2513 pages.
2514
2515 * Animometer/developer.html: Include runner/animometer.js. Rename the JS function
2516 to run the benchmark to startBenchmark() instead of startTest(). Rename #running to
2517 #test-container.
2518 * Animometer/index.html: Added. Similarly calls startBenchmark() and has #test-container.
2519 * Animometer/resources/debug-runner/animometer.css: Make the canvas 2:1 (1200px x 800px)
2520 instead of 4:3.
2521
2522 Split out benchmarkRunnerClient and benchmarkController.
2523
2524 * Animometer/resources/debug-runner/animometer.js: Move needed functions out of
2525 benchmarkRunnerClient, and leave the rest here to extend that object. Get rid of _resultsTable
2526 and move populating the results table into benchmarkController. Rename _resultsDashboard
2527 to results and make it accessible for other objects to use.
2528 (willAddTestFrame): This is unnecessary. Remove.
2529
2530 (window.sectionsManager.showScore): Grab it from the results object instead of
2531 benchmarkRunnerClient.
2532 (window.sectionsManager.showSection): Deleted. Moved to runner/animometer.js.
2533
2534 (window.benchmarkController._runBenchmark): Deleted. Mostly moved into _startBenchmark.
2535 (window.benchmarkController.startBenchmark): Refactor to call _startBenchmark.
2536 (window.benchmarkController.showResults): Include most of benchmarkRunnerClient.didFinishLastIteration()
2537 here.
2538
2539 * Animometer/resources/debug-runner/benchmark-runner.js:
2540 (BenchmarkRunner.prototype._appendFrame): Remove unneeded call to willAddTestFrame.
2541 * Animometer/resources/extensions.js:
2542 (ResultsDashboard): Change the class to process the sampler data on-demand and hold onto that data
2543 for later referencing.
2544 (ResultsDashboard.prototype.toJSON): Deleted.
2545 (ResultsDashboard.prototype._processData): Rename toJSON to _processData since it's not really
2546 outputting JSON. Store the processed data into a member variable that can be referenced later.
2547 (ResultsDashboard.prototype.get data): Process the data if it hasn't already.
2548 (ResultsDashboard.prototype.get score): Process the data if it hasn't already, then return the
2549 aggregate score.
2550 (ResultsTable.prototype._showHeader): When outputting the results to a table, don't force the
2551 need for an empty children array. This was to allow for a header row in the table that spanned
2552 multiple columns. In the simpler harness, this is not needed.
2553 (ResultsTable.prototype._showEmptyCells):
2554 (ResultsTable.prototype._showTest): This hardcoded the columns. At least for the name and score,
2555 which is the bare minimum needed for the simpler harness, key off of the header name provided.
2556 * Animometer/resources/runner/animometer.css: Added. Use a similar 2:1 ratio. The score tables are
2557 split into the data and the headers, and are also displayed RTL so that a later patch allows a
2558 user to copy-paste the data easily.
2559 * Animometer/resources/runner/animometer.js: Added. Use a simpler version of benchmarkRunnerClient.
2560 The debug harness will extend these classes.
2561 (window.benchmarkController._startBenchmark): Used by both harnesses.
2562 (window.benchmarkController.startBenchmark): Set hard-coded options.
2563 (window.benchmarkController.showResults): Includes most of benchmarkRunnerClient.didFinishLastIteration()
2564 here.
2565
2566 Get rid of utilities.js. Move it all into extensions.js.
2567
2568 * Animometer/resources/extensions.js:
2569 * Animometer/tests/resources/utilities.js: Removed.
2570
2571 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Remove script link.
2572 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Ditto.
2573 * Animometer/tests/bouncing-particles/bouncing-css-images.html: Ditto.
2574 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html: Ditto.
2575 * Animometer/tests/bouncing-particles/bouncing-svg-images.html: Ditto.
2576 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Ditto.
2577 * Animometer/tests/examples/canvas-electrons.html: Ditto.
2578 * Animometer/tests/examples/canvas-stars.html: Ditto.
2579 * Animometer/tests/misc/compositing-transforms.html: Ditto.
2580 * Animometer/tests/simple/simple-canvas-paths.html: Ditto.
2581 * Animometer/tests/template/template-canvas.html: Ditto.
2582 * Animometer/tests/template/template-css.html: Ditto.
2583 * Animometer/tests/template/template-svg.html: Ditto.
2584 * Animometer/tests/text/layering-text.html: Ditto.
2585
2586 Split tests.js into two. Add a new suite to runner/tests.js.
2587
2588 * Animometer/developer.html: Update the script order. Scripts from
2589 debug-runner/ will always build on those from runner/, and have the
2590 same name.
2591 * Animometer/resources/debug-runner/tests.js: Move "complex examples"
2592 suite into "miscellaneous tests".
2593 (Suite): Deleted.
2594 (Suite.prototype.prepare): Deleted.
2595 (Suite.prototype.run): Deleted.
2596 (suiteFromName): Deleted.
2597 * Animometer/resources/runner/tests.js: Added. Take definitions and
2598 functions needed by the test harness. Leave the test suites behind.
2599 (Suite): Moved from debug script.
2600 (Suite.prototype.prepare): Ditto.
2601 (Suite.prototype.run): Ditto.
2602 (suiteFromName): Ditto.
2603 (testFromName): Ditto.
2604
2605 Move benchmark resources out into resources/debug-runner, and update URLs.
2606
2607 * Animometer/developer.html: Renamed from PerformanceTests/Animometer/runner/animometer.html.
2608 * Animometer/resources/debug-runner/animometer.css: Renamed from PerformanceTests/Animometer/runner/resources/animometer.css.
2609 * Animometer/resources/debug-runner/animometer.js: Renamed from PerformanceTests/Animometer/runner/resources/animometer.js.
2610 * Animometer/resources/debug-runner/benchmark-runner.js: Renamed from PerformanceTests/Animometer/runner/resources/benchmark-runner.js.
2611 * Animometer/resources/debug-runner/d3.min.js: Renamed from PerformanceTests/Animometer/runner/resources/d3.min.js.
2612 * Animometer/resources/debug-runner/graph.js: Renamed from PerformanceTests/Animometer/runner/resources/graph.js.
2613 * Animometer/resources/debug-runner/tests.js: Renamed from PerformanceTests/Animometer/runner/resources/tests.js.
2614
jonlee@apple.com247eb932015-12-11 21:47:31 +000026152015-12-11 Jon Lee <jonlee@apple.com>
2616
2617 Improve Animometer on iOS
2618 https://bugs.webkit.org/show_bug.cgi?id=152180
2619
2620 Reviewed by Simon Fraser.
2621
2622 Improve experience on phones. Make the canvas take
2623 up the whole screen.
2624
2625 * Animometer/runner/animometer.html: Add meta viewport.
2626 Remove the container div.
2627 * Animometer/runner/resources/animometer.css: Have buttons lay
2628 out vertically. Update detail arrow glyph. Make the suites and
2629 options section lay out vertically. Remove the top spacers since
2630 we want the canvas to take over the whole screen. Minimal display
2631 is recommended for use.
2632
jonlee@apple.coma0fc0812015-12-07 22:14:25 +000026332015-12-07 Jon Lee <jonlee@apple.com>
2634
jonlee@apple.comb0eb9462015-12-08 03:23:42 +00002635 Update suites for benchmark
2636 https://bugs.webkit.org/show_bug.cgi?id=151957
2637
2638 Reviewed by Simon Fraser.
2639
2640 * Animometer/runner/animometer.html: Use spacers instead of relying on
2641 justify-content center to center the content. That allows the opening screen
2642 to grow downward when expanding the list of choices, otherwise it expands
2643 from the center, and off the top edge of the screen.
2644 * Animometer/runner/resources/animometer.css:
2645 (.tree): Don't overflow scroll.
2646 (.tree > li > label.tree-label:before): Use better glyphs.
2647 (.tree > li > :checked ~ label.tree-label:before):
2648 (main): Using flex-start for justify-content so that if the section grows too
2649 big it gets pinned to the top edge of the document instead of growing past it.
2650 (.spacer): Make the spacers have a minimum 20px and grow evenly.
2651 (section#home): Add a min-height so that the border will expand if the suite
2652 tests shown make the section grow past the height.
2653 * Animometer/runner/resources/animometer.js: Update the selectors.
2654 (window.suitesManager._treeElement):
2655 (window.suitesManager._suitesElements):
2656 (window.suitesManager._editsElements):
2657
26582015-12-07 Jon Lee <jonlee@apple.com>
2659
jonlee@apple.coma0fc0812015-12-07 22:14:25 +00002660 Update options for benchmark
2661 https://bugs.webkit.org/show_bug.cgi?id=151956
2662
2663 Reviewed by Simon Fraser.
2664
2665 Move "Fix test complexity" and "Adaptive" checkboxes into a radio group.
2666
2667 Move "Show running results" into a radio group, and add options to remove the HUD.
2668
2669 * Animometer/runner/animometer.html: Get rid of the preamble. Wrap the options
2670 in a form for easier referencing in JS.
2671 * Animometer/runner/resources/animometer.css: Show the surrounding border if the
2672 body's display-minimal class name is set.
2673 * Animometer/runner/resources/animometer.js:
2674
2675 Update the way optionsManager gets and sets default values. Include support for
2676 radio groups.
2677 (window.optionsManager.valueForOption):
2678 (window.optionsManager.updateUIFromLocalStorage):
2679 (window.optionsManager.updateLocalStorageFromUI):
2680
2681 (window.benchmarkRunnerClient.willStartFirstIteration):
2682 (window.sectionsManager.setupRunningSectionStyle):
2683 (window.suitesManager._treeElement): Fly-by whitespace fix.
2684 (window.suitesManager._suitesElements): Ditto.
2685 (window.suitesManager.updateEditsElementsState): Update options check.
2686 (window.suitesManager.updateDisplay): Add a new update function for the HUD.
2687 Attach a class to the body depending on the user's choice.
2688 (window.benchmarkController.initialize): Add an event listener when the form
2689 radio buttons update.
2690 (window.benchmarkController.onFormChanged):
2691 (window.optionsManager._optionsElements): Deleted.
2692 (window.optionsManager._adaptiveTestElement): Deleted.
2693 (window.benchmarkController.onChangeAdaptiveTestCheckbox): Deleted.
2694 * Animometer/tests/resources/main.js:
2695 (Benchmark.prototype.update): Update options checks.
2696 * Animometer/tests/resources/stage.js: Update option check.
2697 (StageBenchmark.prototype.showResults):
2698
simon.fraser@apple.com4774de32015-12-03 19:34:21 +000026992015-12-01 Simon Fraser <simon.fraser@apple.com>
2700
2701 Add a basic compositing Animometer test
2702 https://bugs.webkit.org/show_bug.cgi?id=151724
2703
2704 Reviewed by Dean Jackson.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002705
simon.fraser@apple.com4774de32015-12-03 19:34:21 +00002706 Add a "bouncing particles" test that moves composited layers around, optionally with a filter.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002707
simon.fraser@apple.com4774de32015-12-03 19:34:21 +00002708 This is added under a new "Miscellaneous" category.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002709
simon.fraser@apple.com4774de32015-12-03 19:34:21 +00002710 Remove the test templates category from the UI.
2711
2712 * Animometer/runner/resources/tests.js:
2713 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js:
2714 (BouncingCssShape.prototype.animate):
2715 * Animometer/tests/misc/compositing-transforms.html: Added.
2716 * Animometer/tests/misc/resources/compositing-transforms.js: Added.
2717 (BouncingCompositedImage):
2718 (BouncingCompositedImage.prototype._move):
2719 (BouncingCompositedImage.prototype.animate):
2720 (CompositingTransformsStage):
2721 (CompositingTransformsStage.prototype.createParticle):
2722 (CompositingTransformsStage.prototype.particleWillBeRemoved):
2723 (CompositedTransformsBenchmark):
2724 (CompositedTransformsBenchmark.prototype.createStage):
2725 (window.benchmarkClient.create):
2726
commit-queue@webkit.orga55f3412015-11-30 22:15:27 +000027272015-11-30 Said Abou-Hallawa <sabouhallawa@apple.com>
2728
commit-queue@webkit.orge921bb72015-11-30 23:06:27 +00002729 Fix the graphics benchmark complexity bounds adjustment
2730 https://bugs.webkit.org/show_bug.cgi?id=151670
2731
2732 Reviewed by Simon Fraser.
2733
2734 Make sure the graphics benchmark complexity bounds adjustment is applied
2735 to the absolute lower bound.
2736
2737 * Animometer/tests/resources/math.js:
2738 (PIDController.prototype._saturate):
2739
27402015-11-30 Said Abou-Hallawa <sabouhallawa@apple.com>
2741
commit-queue@webkit.orga55f3412015-11-30 22:15:27 +00002742 Add an option to select the results form the graphics benchmark
2743 https://bugs.webkit.org/show_bug.cgi?id=151666
2744
2745 Reviewed by Ryosuke Niwa.
2746
2747 We need an easy way to select the graphics benchmark results table such
2748 that when it is copied to the clipboard, rich text format is set to the
2749 clipboard.
2750
2751 * Animometer/runner/animometer.html: Add a new button to select the results table or JSON.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002752
commit-queue@webkit.orga55f3412015-11-30 22:15:27 +00002753 * Animometer/runner/resources/animometer.js:
2754 (window.sectionsManager._sectionDataElement): Selects the container <data> element.
2755 (window.sectionsManager._sectionDataDivElement): Replace a literal string with a string table entry.
2756 (window.sectionsManager.showTestName): Replace a literal string with a string table entry.
2757 (window.sectionsManager.selectData): Selects the container <data> element in a selection.
2758 (window.sectionsManager.selectDataContents): Select the contents of container <data> element in a selection.
2759 (window.benchmarkController.selectResults): Selects the results table.
2760 (window.benchmarkController.showJSON): Function rename.
2761 (window.benchmarkController.selectJSON): Selects the contents of the results JSON.
2762 (window.benchmarkController.showJson): Deleted.
2763
simon.fraser@apple.com88ec81b2015-11-21 03:05:50 +000027642015-11-20 Simon Fraser <simon.fraser@apple.com>
2765
2766 Animometer: graphs should not do interpolation
2767 https://bugs.webkit.org/show_bug.cgi?id=151526
2768
2769 Reviewed by Simon Fraser.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002770
simon.fraser@apple.com88ec81b2015-11-21 03:05:50 +00002771 Having the graphs do interpolation is misleading, because you can't see the actual data.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002772
simon.fraser@apple.com88ec81b2015-11-21 03:05:50 +00002773 Also remove "shape-rendering: crispEdges;" so the lines get antialiased.
2774
2775 * Animometer/runner/resources/animometer.css:
2776 (section#test-graph > data > svg): Deleted.
2777 * Animometer/runner/resources/graph.js:
2778 (graph): Deleted.
2779
commit-queue@webkit.orgd71cac32015-11-20 01:20:48 +000027802015-11-19 Said Abou-Hallawa <sabouhallawa@apple.com>
2781
2782 Calculate the graphics benchmark test gain adaptively
2783 https://bugs.webkit.org/show_bug.cgi?id=151208
2784
2785 Reviewed by Darin Adler.
2786
2787 We need to calculate the gain of the graphics benchmark tests adaptively
2788 and get rid of the gain and limits parameters we have to choose manually
2789 for every test. We are going to use the classic Ziegler–Nichols method for
2790 calculating the gain and integral and derivative times. We are going to
2791 try moving on a cubic curve during the manual stage from y0 to reach ysp.
2792 We also going to use a saturation actuator to ensure the system does not
2793 fluctuate.
2794
2795 * Animometer/resources/extensions.js:
2796 (ResultsTable.prototype._isNoisyMeasurement): Fix a parameter name.
2797 (ResultsTable.prototype._isNoisyTest): Since score is a member of testResults, we need to limit our search to frame rate and complexity.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002798 (ResultsTable.prototype._showTest): Pass the correct parameter to _isNoisyMeasurement().
2799
commit-queue@webkit.orgd71cac32015-11-20 01:20:48 +00002800 * Animometer/resources/strings.js: Fix the indentation and name and value of a string.
2801
2802 * Animometer/runner/resources/tests.js: Remove all the manual gains and limits parameters which had to be passed to every test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002803
commit-queue@webkit.orgd71cac32015-11-20 01:20:48 +00002804 * Animometer/tests/resources/main.js:
2805 (BenchmarkState.prototype.currentStage): Fix an enum name.
2806 (Benchmark): Get rid of manual gain and limits.
2807 (Benchmark.prototype.update): Simplify the calculation by having all the times in ms.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002808
commit-queue@webkit.orgd71cac32015-11-20 01:20:48 +00002809 * Animometer/tests/resources/math.js:
2810 (PIDController): Get rid of the manual gain and limits and the magic numbers for Ti and Td.
2811 (PIDController.prototype._yPosition): Tells whether the test current output is moving towards the set-point or away from it.
2812 (PIDController.prototype._distanceUltimate): Calculates the ultimate distance from y0 after time t using a cubic formula.
2813 (PIDController.prototype._distance): Calculates the distance of y relative to y0.
2814 (PIDController.prototype._gainIncrement): Decides how much the proportional gain should be increased during the manual gain stage.
2815 (PIDController.prototype._updateStage): Updates the stage of the controller based on its current stage and the system output.
2816 (PIDController.prototype._tuneP): Tunes the system before calculating the PID controller gains.
2817 (PIDController.prototype._tunePID): PID tuning function.
2818 (PIDController.prototype._tune):
2819 (PIDController.prototype._saturate):
2820 (PIDController.prototype.tune): Manages calculating the controller parameters. It then returns a PID tuning value.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002821 (PIDController.prototype._sat): Deleted. We may need to return it back but the limits have to be calculated adaptively not manually.
commit-queue@webkit.orgd71cac32015-11-20 01:20:48 +00002822
commit-queue@webkit.org708e0ec2015-11-18 00:08:38 +000028232015-11-17 Said Abou-Hallawa <sabouhallawa@apple.com>
2824
commit-queue@webkit.org2fc25f22015-11-18 01:29:15 +00002825 Reorganize the graphics benchmark string table
2826 https://bugs.webkit.org/show_bug.cgi?id=151334
2827
2828 Reviewed by Simon Fraser.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002829
commit-queue@webkit.org2fc25f22015-11-18 01:29:15 +00002830 Make the graphics benchmark string table be an object of sub-objects. Each
2831 sub-object represents an associative array, the key is the string name and
2832 the value is the string data.
2833
2834 * Animometer/resources/extensions.js:
2835 (ResultsDashboard.prototype.toJSON):
2836 (ResultsTable.prototype._showGraph):
2837 (ResultsTable.prototype._showJSON):
2838 (ResultsTable.prototype._isNoisyMeasurement):
2839 (ResultsTable.prototype._isNoisyTest):
2840 (ResultsTable.prototype._showTest):
2841 (ResultsTable.prototype._showSuite):
2842 (ResultsTable.prototype._showIteration):
2843 * Animometer/resources/sampler.js:
2844 (Sampler.prototype.toJSON):
2845 * Animometer/resources/strings.js:
2846 * Animometer/runner/resources/animometer.js:
2847 (window.benchmarkRunnerClient.didFinishLastIteration):
2848 (window.suitesManager.updateLocalStorageFromJSON):
2849 (window.benchmarkController.showResults):
2850 (window.benchmarkController.showJson):
2851 (window.benchmarkController.showTestGraph):
2852 (window.benchmarkController.showTestJSON):
2853 * Animometer/runner/resources/tests.js:
2854 * Animometer/tests/resources/main.js:
2855
28562015-11-17 Said Abou-Hallawa <sabouhallawa@apple.com>
2857
said@apple.com9667f332015-11-18 00:16:56 +00002858 Disable flattening the stage iframe of the graphics benchmark when running on iOS
2859 https://bugs.webkit.org/show_bug.cgi?id=151361
2860
2861 Reviewed by Simon Fraser.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002862
said@apple.com9667f332015-11-18 00:16:56 +00002863 Use fixed size for stage iframe of the graphics benchmark to disable
2864 flattening the iframe while animating the particles. Also ensure the
2865 bouncing particles do not go outside the iframe's boundaries.
2866
2867 * Animometer/runner/resources/animometer.css:
2868 (section#running > #running-test > iframe):
2869 (@media screen and (min-device-width: 1800px)):
2870 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
2871 (BouncingParticle.prototype.animate):
2872
28732015-11-17 Said Abou-Hallawa <sabouhallawa@apple.com>
2874
commit-queue@webkit.org708e0ec2015-11-18 00:08:38 +00002875 Use the media queries to dynamically set the stage for the graphics benchmark
2876 https://bugs.webkit.org/show_bug.cgi?id=151327
2877
2878 Reviewed by Simon Fraser.
2879
2880 Clean setting the benchmark css rules by using the media queries. Accessing
2881 document.stylesheets.cssRules seems to be unreliable. Fix the test harness
2882 load event listener invocation. And also remove the options for normalizing
2883 the stage resolution for retina display.
2884
2885 * Animometer/resources/extensions.js:
2886 (window.DocumentExtension.insertCssRuleAfter): Deleted.
2887 * Animometer/runner/animometer.html:
2888 * Animometer/runner/resources/animometer.css:
2889 (@media screen and (min-device-width: 1800px)):
2890 * Animometer/runner/resources/animometer.js:
2891 (window.sectionsManager.setupRunningSectionStyle):
2892 (window.benchmarkController.initialize):
2893 (window.sectionsManager.setupSectionStyle): Deleted.
2894 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
2895 (BouncingParticlesStage):
2896 * Animometer/tests/text/layering-text.html:
2897 * Animometer/tests/text/resources/layering-text.js:
2898 (LayeringTextStage):
2899 (LayeringTextStage.prototype._setFontSize): Deleted.
2900
commit-queue@webkit.org4ac83a22015-11-16 23:22:16 +000029012015-11-16 Said Abou-Hallawa <sabouhallawa@apple.com>
2902
commit-queue@webkit.orgb8ffff72015-11-17 03:29:43 +00002903 Remove the option for animating using setInterval from the graphics benchmark
2904 https://bugs.webkit.org/show_bug.cgi?id=151283
2905
2906 Reviewed by Darin Adler.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002907
commit-queue@webkit.orgb8ffff72015-11-17 03:29:43 +00002908 Get rid of the option to run animation using setInterval().
2909
2910 * Animometer/tests/resources/main.js:
2911 (Animator.prototype.animate):
2912 (Benchmark):
2913 (Benchmark.prototype.start):
2914 (Animator.prototype.start): Deleted.
2915
29162015-11-16 Said Abou-Hallawa <sabouhallawa@apple.com>
2917
commit-queue@webkit.orgdb7a98b2015-11-16 23:52:46 +00002918 Highlight the alarming test results in the graphics benchmark results page
2919 https://bugs.webkit.org/show_bug.cgi?id=151286
2920
2921 Reviewed by Simon Fraser.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002922
commit-queue@webkit.orgdb7a98b2015-11-16 23:52:46 +00002923 When showing the results of a test in the graphics benchmark the following
2924 criteria is going to be applied:
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00002925
commit-queue@webkit.orgdb7a98b2015-11-16 23:52:46 +00002926 1. If the standard deviation of the test complexity or the frame rate is
2927 equal to or more than 10%, the standard deviation and the test name
2928 will be displayed in red.
2929 2. If the average frame rate is not in the range = [(desired_frame_rate - 2)
2930 .. (desired_frame_rate + 2)], the average frame rate and the test name will
2931 be displayed in red.
2932
2933 * Animometer/resources/extensions.js:
2934 (ResultsTable.prototype._showHeaderRow):
2935 (ResultsTable.prototype._showHeader):
2936 (ResultsTable.prototype._showEmptyCell):
2937 (ResultsTable.prototype._showText):
2938 (ResultsTable.prototype._showFixedNumber):
2939 (ResultsTable.prototype.):
2940 (ResultsTable.prototype._showGraph):
2941 (ResultsTable.prototype._showJSON):
2942 (ResultsTable.prototype._isAlarmingMeasurement):
2943 (ResultsTable.prototype._isAlarmingTestResults):
2944 (ResultsTable.prototype._showEmptyCells):
2945 (ResultsTable.prototype._showEmptyRow):
2946 (ResultsTable.prototype._showTest):
2947 (ResultsTable.prototype._showSuite):
2948 (ResultsTable.prototype._showIteration):
2949 (ResultsTable.prototype.showRecord):
2950 (ResultsTable.prototype.showIterations):
2951 (ResultsTable.prototype._showEmpty): Deleted.
2952 * Animometer/runner/resources/animometer.js:
2953 (window.benchmarkRunnerClient.didFinishLastIteration):
2954 * Animometer/tests/resources/stage.js:
2955 (StageBenchmark.prototype.showResults):
2956
29572015-11-16 Said Abou-Hallawa <sabouhallawa@apple.com>
2958
commit-queue@webkit.org4ac83a22015-11-16 23:22:16 +00002959 Clean referencing the options object in the graphics benchmark
2960 https://bugs.webkit.org/show_bug.cgi?id=151284
2961
2962 Reviewed by Simon Fraser.
2963
2964 Get rid of the Benchmark.options member and rely only on the private member
2965 Benchmark._options. The animator need to have its own options member instead
2966 of accessing it from its reference to Benchmark object.
2967
2968 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
2969 (BouncingCanvasParticlesAnimator):
2970 (BouncingCanvasParticlesBenchmark.prototype.createAnimator):
2971 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
2972 (BouncingParticle.prototype.animate):
2973 (BouncingParticlesAnimator):
2974 (BouncingParticlesBenchmark.prototype.createAnimator):
2975 * Animometer/tests/examples/resources/canvas-electrons.js:
2976 (CanvasElectronsStage.prototype.animate):
2977 (CanvasElectronsAnimator):
2978 (CanvasElectronsBenchmark.prototype.createAnimator):
2979 (window.benchmarkClient.create):
2980 * Animometer/tests/examples/resources/canvas-stars.js:
2981 (CanvasStarsStage.prototype.animate):
2982 (CanvasStarsAnimator):
2983 (CanvasStarsBenchmark.prototype.createAnimator):
2984 (window.benchmarkClient.create):
2985 * Animometer/tests/resources/main.js:
2986 (BenchmarkState.prototype.currentProgress):
2987 (Animator):
2988 (Animator.prototype.animate):
2989 (Benchmark):
2990 (Benchmark.prototype.update):
2991 * Animometer/tests/resources/stage.js:
2992 (Stage.prototype.clear):
2993 (StageAnimator):
2994 (StageBenchmark.prototype.createAnimator):
2995 (StageBenchmark.prototype.tune):
2996 (StageBenchmark.prototype.showResults):
2997 * Animometer/tests/simple/resources/simple-canvas.js:
2998 (SimpleCanvasStage.prototype.animate):
2999 (SimpleCanvasAnimator):
3000 (SimpleCanvasAnimator.prototype.animate):
3001 (SimpleCanvasBenchmark.prototype.createAnimator):
3002 * Animometer/tests/template/resources/template-canvas.js:
3003 (TemplateCanvasStage.prototype.animate):
3004 (TemplateCanvasBenchmark.prototype.createAnimator):
3005 (window.benchmarkClient.create):
3006
commit-queue@webkit.orgceefdd02015-11-14 05:51:27 +000030072015-11-13 Said Abou-Hallawa <sabouhallawa@apple.com>
3008
3009 Eliminate a request for layout every time an item is added to the stage of the graphics benchmark
3010 https://bugs.webkit.org/show_bug.cgi?id=151289
3011
3012 Reviewed by Simon Fraser.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003013
commit-queue@webkit.orgceefdd02015-11-14 05:51:27 +00003014 Cache the stage size when it is created instead of requesting every time
3015 an object is added via clientWidth and clientHeight.
3016
3017 * Animometer/resources/extensions.js:
3018 (Insets.elementPadding):
3019 * Animometer/tests/resources/stage.js:
3020 (Stage):
3021 (Stage.prototype.get size):
3022
commit-queue@webkit.org11703642015-11-06 17:55:08 +000030232015-11-06 Said Abou-Hallawa <sabouhallawa@apple.com>
3024
3025 Initialize the graphics benchmark's Kalman filter with estimated 60 FPS
3026 https://bugs.webkit.org/show_bug.cgi?id=150965
3027
3028 Reviewed by Darin Adler.
3029
3030 This should give the benchmark more accurate reading at warmup time. And
3031 hence we can safely reduce the test running time to be 10 seconds.
3032
3033 * Animometer/runner/animometer.html:
3034 Add "defer" back when loading resources/animometer.js since this script
3035 depends on many other scripts and we need to wait till the page is parsed.
3036 Also change the default test interval to be 10 seconds.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003037
commit-queue@webkit.org11703642015-11-06 17:55:08 +00003038 * Animometer/runner/resources/graph.js:
3039 (graph): Make the test results curves smoother.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003040
commit-queue@webkit.org11703642015-11-06 17:55:08 +00003041 * Animometer/tests/resources/main.js:
3042 (Animator): Initialize the Kalman filter with 60 FPS which should be true
3043 if the test page is empty.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003044
commit-queue@webkit.org11703642015-11-06 17:55:08 +00003045 (Animator.prototype.animate):
3046 * Animometer/tests/resources/math.js:
3047 (KalmanEstimator): Fix the initial value of _vecX_est.
3048 _vecX_est[0] = current FPS (= 60FPS when the test page is empty)
3049 _vecX_est[1] = first time derivative of FPS (=0; FPS has been constant).
3050 _vecX_est[2] = second time derivative of FPS (=0; since _vecX_est[1]=0).
3051 (KalmanEstimator.prototype.estimate): Add some comments.
3052
commit-queue@webkit.orge6e859a2015-11-05 03:16:07 +000030532015-11-04 Said Abou-Hallawa <sabouhallawa@apple.com>
3054
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003055 Remove "defer" from the scripts' references in the graphics benchmark home page
commit-queue@webkit.orge6e859a2015-11-05 03:16:07 +00003056 https://bugs.webkit.org/show_bug.cgi?id=150915
3057
3058 Reviewed by Simon Fraser.
3059
3060 It causes the benchmark to be very flakey.
3061
3062 * Animometer/runner/animometer.html:
3063
commit-queue@webkit.org72302f02015-11-01 08:26:46 +000030642015-11-01 Said Abou-Hallawa <sabouhallawa@apple,com>
3065
commit-queue@webkit.orgcea98722015-11-02 02:31:02 +00003066 Add an option to make the graphics benchmark runs a specific test with fixed complexity
3067 https://bugs.webkit.org/show_bug.cgi?id=150529
3068
3069 Reviewed by Darin Adler.
3070
3071 Beside each test in the suites tree, we are going to show the complexity
3072 arithmetic mean of the of the last run in an edit control. Based on a
3073 new option these edit controls will all be visible or hidden. If they are
3074 visible their values can be changed. The benchmark runner if it run in
3075 the non-adaptive mode will set the complexity of the test to the passed
3076 value and will not change it ever. The animator will animate the test and
3077 frame rate will also be measured.
3078
3079 * Animometer/runner/animometer.html: Add a new option for the non-adaptive mode.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003080
commit-queue@webkit.orgcea98722015-11-02 02:31:02 +00003081 * Animometer/runner/resources/animometer.css:
3082 (section#home input[type="number"]): Define the width of all the edit control in the <home> section.
3083 (section#home > suites input[type="number"]): The edit controls in the <suites> box will be right aligned and hidden by default.
3084 (section#home > suites input[type="number"].selected): When the class "selected" is added, the edit controls will be visible.
3085 (section#home > options > label > input[type="number"]): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003086
commit-queue@webkit.orgcea98722015-11-02 02:31:02 +00003087 * Animometer/runner/resources/animometer.js:
3088 (window.benchmarkRunnerClient.didFinishLastIteration): Update the local storage with the results of each test.
3089 (window.optionsManager._adaptiveTestElement): Returns the checkbox for setting the adaptive test option.
3090 (window.suitesManager._editElement): Returns the edit element associated with each test element in the suites tree.
3091 (window.suitesManager._editsElements): Returns a list of all the elements in the <suites> box.
3092 (window.suitesManager._localStorageNameForTest): Change this function to take strings.
3093 (window.suitesManager._createTestElement): Adds an edit control beside each test.
3094 (window.suitesManager.updateEditsElementsState): Adds/Removes the 'selected' class to/from all the tests edit elements.
3095 (window.suitesManager.updateUIFromLocalStorage): Reads the edit control value from the local storage.
3096 (window.suitesManager.updateLocalStorageFromUI): Saves the edit control value to the local storage.
3097 (window.suitesManager.updateLocalStorageFromJSON): Saves the last run results to the local storage.
3098 (window.benchmarkController.initialize): Shows/Hides the test edit controls based on the adaptive test option.
3099 (window.benchmarkController.onChangeAdaptiveTestCheckbox): An onchange event handler for the adaptive test checkbox.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003100
3101 * Animometer/tests/resources/main.js:
commit-queue@webkit.orgcea98722015-11-02 02:31:02 +00003102 (Benchmark.prototype.update): Fix the complexity of the test if the running mode is non-adaptive test and desired complexity is not zero.
3103 (window.runBenchmark): Add the test complexity as a new benchmark option.
3104
31052015-11-01 Said Abou-Hallawa <sabouhallawa@apple,com>
3106
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003107 Make the size of the benchmark canvas adaptive to the screen size and screen resolution
3108 https://bugs.webkit.org/show_bug.cgi?id=150530
3109
3110 Reviewed by Darin Adler.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003111
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003112 We want to set the size of the benchmark stage dynamically such that it
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003113 depends on the screen resolution and the device scale factor. This patch
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003114 does more than that because the home page css was not done properly. To
3115 use the flex box layout, the animometer.css has to be rewritten almost from
3116 scratch. The suites tree has to be rewritten also because it was not collapsing
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003117 and with the flex box layout it was going outside of the window area. The
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003118 options handling and the local storage handling had to be rewritten to
3119 allow more flexibility with this patch and the future patches. The code
3120 in animometer.js was reorganized into objects to allow distributing the code
3121 nicely among separate entities.
3122
3123 * Animometer/resources/extensions.js:
3124 (Point.elementClientSize): Returns the client size of an HTMLElement as a Point object.
3125 (Insets.prototype.get width): Follow the function opening brace style guidelines.
3126 (Insets.prototype.get height):
3127 (Insets.prototype.get size): Returns the size of an Insets as a Point object.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003128
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003129 (window.DocumentExtension): Provides document helper functions. It should be assailable from the runner and the tests.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003130 (window.DocumentExtension.createElement): Creates an HTMLElement given its name, attributes and parentElement.
3131 (window.DocumentExtension.createSvgElement): Creates an SVGElement given its name, attributes and parentElement (moved from utilities.js).
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003132 (window.DocumentExtension.insertCssRuleAfter): Inserts a CSS rule after an exiting rule given its text.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003133
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003134 (ResultsTable.prototype._showHeader): Use DocumentExtension functions.
3135 (ResultsTable.prototype._showGraph): Use DocumentExtension functions and create a real button for "Graph..." option.
3136 (ResultsTable.prototype._showJSON): Use DocumentExtension functions and create a real button for "JSON..." option.
3137 (Options): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003138
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003139 * Animometer/runner/animometer.html: Restructure the page to use the flex box layout.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003140
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003141 * Animometer/runner/resources/animometer.css:
3142 (html,body):
3143 (button):
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003144
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003145 (button.large-button):The large button appears in the animometer.html.
3146 (button.large-button:active):
3147 (button.large-button:disabled):
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003148
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003149 (button.small-button): The small button appears in the results table.
3150 (button.small-button:active):
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003151
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003152 (.tree): The tree class is used to list the suites and their tests.
3153 (.tree .expand-button): This button expands a tree element.
3154 (.tree .expand-button ~ ul): Hide the children (<ul>...</ul>) of a parent node by default.
3155 (.tree .expand-button:checked ~ ul): Show the children of a parent node only when checked.
3156 (.tree ul): Hide the list bullets.
3157 (.tree li): Indent every node in the tree relative to its parent.
3158 (.tree ul li): Indent all the non top level nodes only (the tests nodes in our case).
3159 (.tree > li:last-child): Do not indent the bottom of the last child node.
3160 (.tree-label): Style for all the labels in the tree.
3161 (label.tree-label): Style for the labels in the top level only (the suites nodes in our case).
3162 (label.tree-label:before): Style the unchecked case of the expand-button.
3163 (:checked ~ label.tree-label:before): Style the checked case of the expand-button.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003164
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003165 (table.results-table): The results table appears while running the test and at the end.
3166 (.results-table td):
3167 (.results-table th):
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003168
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003169 (div.results-json): The JSON div appears per test or for the whole run.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003170
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003171 (main): This is the flex box container.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003172
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003173 (section): A section is displayed exclusively inside the <main>. It is hidden by default.
3174 (section.selected): When it is selected, its layout is flex layout.
3175 (section > footer): The header or the footer of a section should not take more than 15% of the container.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003176
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003177 (section#home): The home section has <suites> and <options> parts to be laid out in the middle.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003178 (section#home > options):
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003179 (section#home > suites): The <suites> should not take more than 40% of the width.
3180 (section#home > options > label): The benchmark title.
3181 (section#home > header > h2): The benchmark title.
3182 (section#home > options > label > input[type="number"]): Sets the width of the option edit control.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003183
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003184 (section#running): The running section contain the runner <iframe> which takes the whole area of the <main>.
3185 (section#running > #running-test): This is the <iframe> container.
3186 (section#running > #running-test > iframe): The <iframe> is created by the runner for each test.
3187 (section#running > #progress): This is the progress bar.
3188 (section#running > #progress > #progress-completed): This is another element which grows while the runner is progressing.
3189 (section#running > #record): This the container of the record results table which is shown while running a test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003190
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003191 (section#results):
3192 (section#json):
3193 (section#test-json):
3194 (section#test-graph): All these sections have the same layout. A <data> element is laid out between <header> and <footer>.
3195
3196 (section#results > data):
3197 (section#json > data):
3198 (section#test-json > data):
3199 (section#test-graph > data): The <data> element should take 70% of the <section>.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003200
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003201 (section#test-graph > data > svg):
3202 (.axis line):
3203 (.left-samples): These styles are for the d3 graph.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003204
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003205 (section#test-json > data): This is the style of the JSON <data> element.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003206
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003207 (iframe): Deleted.
3208 (label, p): Deleted.
3209 (section > p): Deleted.
3210 (section#home > p): Deleted.
3211 (section#home > p:first-child): Deleted.
3212 (#testContainer): Deleted.
3213 (section#running #progress-completed): Deleted.
3214 (section#results > table): Deleted.
3215 (section#results > table td, th): Deleted.
3216 (section#results > table tr.alt, td): Deleted.
3217 (section#results > table th): Deleted.
3218 (section#json > textarea): Deleted.
3219 (.options): Deleted.
3220 (.options p): Deleted.
3221 (#suites ul): Deleted.
3222 (#suites ul ul): Deleted.
3223 (#suites ul ul input, #suites ul ul label): Deleted.
3224 (#suites.showTests ul ul): Deleted.
3225 (.column): Deleted.
3226 (input[type="number"]): Deleted.
3227 (.buttons): Deleted.
3228 (.small-button): Deleted.
3229 (#graphContainer): Deleted.
3230 (.right-samples): Deleted.
3231 (.sample-time): Deleted.
3232 (.left-mean): Deleted.
3233 (.right-mean): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003234
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003235 * Animometer/runner/resources/animometer.js:
3236 (window.benchmarkRunnerClient.initialize): Initialize the client object with the options and the suites.
3237 (window.benchmarkRunnerClient.willStartFirstIteration): Use new css selectors for results and the record table.
3238 (window.benchmarkRunnerClient.didFinishLastIteration): Move the code which sets the JSON text to sectionsManager.showJSON().
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003239
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003240 (window.sectionsManager): Responsible of managing the <section>s elements inside animometer.html.
3241 (window.sectionsManager._sectionHeaderH1Element): Return the <h1> inside the <header> of a given section.
3242 (window.sectionsManager._sectionDataDivElement): Return the <div> inside the <data> of a given section.
3243 (window.sectionsManager.showScore): Show the score of the last benchmark run.
3244 (window.sectionsManager.showTestName): Show the test name for detailed results <section>.
3245 (window.sectionsManager.showJSON): Shows the JSON text of the last benchmark or for a specific test.
3246 (window.sectionsManager.showSection): Shows a specific <section> in the <main> container.
3247 (window.sectionsManager.setupSectionStyle): Sets css attributes for all the <section>s.
3248 (window.sectionsManager.setupRunningSectionStyle): Sets the css attributes for the running <section> only.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003249
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003250 (window.optionsManager): Responsible of managing the user options and streaming them to/form the localStorage.
3251 (window.optionsManager._optionsElements): Returns the children <input> elements of the <options>.
3252 (window.optionsManager.updateUIFromLocalStorage): Restore the values of the <options> UI elements from the local storage.
3253 (window.optionsManager.updateLocalStorageFromUI): Saves the values of the <options> UI elements to the local storage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003254
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003255 (window.suitesManager): Responsible of managing the user suites and streaming them to/form the localStorage.
3256 (window.suitesManager._treeElement): Returns the suites tree container element.
3257 (window.suitesManager._suitesElements): Returns a list of the suites elements.
3258 (window.suitesManager._checkboxElement): Returns the checkbox element of a given suite.
3259 (window.suitesManager._localStorageNameForTest): Generates a string for the tuple <suite, test> to be saved in the localStorage.
3260 (window.suitesManager._updateSuiteCheckboxState): Updates the state of a suite checkbox from the state of its tests' checkboxes.
3261 (window.suitesManager._updateStartButtonState): Updates the state of the start button from the state of the suites' checkboxes.
3262 (window.suitesManager._onChangeSuiteCheckbox): Called when a suite checkbox is clicked.
3263 (window.suitesManager._onChangeTestCheckbox): Called when a test checkbox is clicked.
3264 (window.suitesManager._createSuiteElement): Creates suite node in the suites tree.
3265 (window.suitesManager._createTestElement): Creates test node in the suites tree.
3266 (window.suitesManager.createElements): Creates the suites tree dynamically from the array Suites.
3267 (window.suitesManager.updateUIFromLocalStorage): Restore the values of the <suites> UI elements from the local storage.
3268 (window.suitesManager.updateLocalStorageFromUI): aves the values of the <suites> UI elements to the local storage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003269
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003270 (window.benchmarkController): This is the UI controller of the animometer.html page.
3271 (window.benchmarkController.initialize): Called when the animometer.html page is loaded.
3272 (window.benchmarkController._runBenchmark): Starts a benchmark run.
3273 (window.benchmarkController.startTest): Called when the "Start Test" button is clicked.
3274 (window.benchmarkController.showResults): Called at the end of the test to show the final results.
3275 (window.benchmarkController.showJson): Called from the results page to show the JSON of the last benchmark run.
3276 (window.benchmarkController.showTestGraph): Called from the results the table to show a graph for the samples of a specific test.
3277 (window.benchmarkController.showTestJSON): Called from the results the table to show a JSON for the samples of a specific test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003278
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003279 (showSection): Deleted.
3280 (startTest): Deleted.
3281 (showResults): Deleted.
3282 (showJson): Deleted.
3283 (showTestGraph): Deleted.
3284 (showTestJSON): Deleted.
3285 (initialize.toggleTestsCheckbox.onchange): Deleted.
3286 (initialize): Deleted.
3287 (updateSuiteSelection): Deleted.
3288 (updateTestSelection): Deleted.
3289 (updateSuiteCheckbox): Deleted.
3290 (localStorageNameForTest): Deleted.
3291 (populateSettings.): Deleted.
3292 (populateSettings): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003293
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003294 * Animometer/runner/resources/benchmark-runner.js:
3295 (BenchmarkRunner): Pass the frameContainer element to the BenchmarkRunner.
3296 (BenchmarkRunner.prototype._appendFrame): Remove unused parameter unwanted styling code.
3297 (BenchmarkRunner.prototype.runMultipleIterations): Use the this._client.iterationCount instead of passing it as a parameter also.
3298
3299 * Animometer/runner/resources/graph.js:
3300 (graph): Calculate the size of the chart from the container element.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003301
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003302 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
3303 (BouncingSvgImage):
3304 * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js:
3305 (BouncingSvgParticlesStage.prototype._createDefs):
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003306 (BouncingSvgParticlesStage.prototype._createClipStar):
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003307 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
3308 (BouncingSvgShape.prototype._createShape):
3309 (BouncingSvgShapesStage.prototype.createGradient):
3310 Call DocumentExtension.createSvgElement() instead of calling Utilities.createSvgElement().
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003311
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003312 * Animometer/tests/resources/main.js:
3313 (Animator.prototype.animate):
3314 (Benchmark):
3315 (Benchmark.prototype.update):
3316 * Animometer/tests/resources/stage.js:
3317 (StageBenchmark.prototype.showResults):
3318 Rename the options to match the <input> ids in animometer.html.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003319
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003320 * Animometer/tests/resources/utilities.js:
3321 (window.Utilities.createSvgElement): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003322
commit-queue@webkit.org72302f02015-11-01 08:26:46 +00003323 * Animometer/tests/text/layering-text.html:
3324 * Animometer/tests/text/resources/layering-text.js:
3325 (LayeringTextStage):
3326 (LayeringTextStage.prototype._setFontSize): Sets the size of the text dynamically such that they all fit in one stage.
3327
simon.fraser@apple.com3fa9ae72015-10-30 01:28:23 +000033282015-10-29 Simon Fraser <simon.fraser@apple.com>
3329
3330 Animometer computes frame rate incorrectly
3331 https://bugs.webkit.org/show_bug.cgi?id=150698
3332
3333 Reviewed by Tim Horton.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003334
simon.fraser@apple.com3fa9ae72015-10-30 01:28:23 +00003335 The existing code incremented this._frameCount after checking against this._dropFrameCount.
3336 This has the effect of setting this._measureTimeOffset one frame too late, so
3337 we were measuring only two frames, not three, and thus computing an incorrect fps.
3338
3339 * Animometer/tests/resources/main.js:
3340 (Animator.prototype.animate):
3341
jonlee@apple.come21b6f52015-10-28 23:11:37 +000033422015-10-27 Jon Lee <jonlee@apple.com>
3343
3344 Add an option to make the graphics benchmark runs a specific test
3345 https://bugs.webkit.org/show_bug.cgi?id=150528
3346 rdar://problem/23246614
3347
3348 Reviewed by Zalan Bujtas.
3349
3350 Add a checkbox that lets the user list all of the available tests, and select
3351 the ones to run repeatedly. The test checkboxes will update the state of the suite
3352 checkbox. The selected tests are stored in localStorage to make it easy to do
3353 repeated runs.
3354
3355 * Animometer/runner/animometer.html: Add a checkbox to show individual tests.
3356 Update other markup.
3357 * Animometer/runner/resources/animometer.css: Make the settings area a little wider
3358 to accommodate the longer names of the tests
3359 * Animometer/runner/resources/animometer.js:
3360 (startBenchmark): Change the way that the suites are fed into the benchmark
3361 runner. Go through each of the suites and their tests, and create a new Suite
3362 with just the enabled tests. While enumerating store the enabled tests into
3363 localStorage.
3364 (initialize): Initialization routine (taking over populateSettings). When the
3365 checkbox for showing tests is toggled, add or remove a class on #suites to show
3366 the individual tests.
3367 (updateSuiteSelection): Called whenever the user toggles the checkbox for a suite.
3368 Either select all or none of the tests.
3369 (updateTestSelection): Called whenever the user toggles the checkbox for a test.
3370 (updateSuiteCheckbox): Update the state of the test's suite's checkbox to
3371 indeterminate if there is at least one enabled test, unchecked if none are selected,
3372 and checked if all are selected.
3373 (localStorageNameForTest): Helper function to get the name of the test to use as
3374 a key to localStorage.
3375 (populateSettings): Add the tests for each suite into an inner list.
3376
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +000033772015-10-26 Said Abou-Hallawa <sabouhallawa@apple.com>
3378
3379 Add an option to output the results of the graphics benchmark in JSON format
3380 https://bugs.webkit.org/show_bug.cgi?id=150484
3381 <rdar://problem/23243721>
3382
3383 Reviewed by Darin Adler.
3384
3385 * Animometer/resources/extensions.js:
3386 (ResultsDashboard): A new class to hold the iterations results.
3387 (ResultsDashboard.prototype.push): Appends an iteration results;
3388 (ResultsDashboard.prototype.toJSON): Converts the iterations results to JSON format.
3389
3390 (RecordTable.prototype.clear): Clears the results table.
3391 (RecordTable.prototype._showTitles): Shows the header titles and appends the sub-titles to a queue.
3392 (RecordTable.prototype._showHeader): Shows the table header titles.
3393 (RecordTable.prototype._showEmpty): Shows an empty table cell.
3394 (RecordTable.prototype._showValue): Shows a number value in the results table.
3395 (RecordTable.prototype._showSamples): Shows a button for the sampled data graph.
3396 (RecordTable.prototype._showTest): Shows the results of a single test.
3397 (RecordTable.prototype._showSuite): Shows the results of a single suite.
3398 (RecordTable.prototype.showRecord): Shows a single iteration for a single test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003399 (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations.
3400
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +00003401 (ResultsTable): RecordTable was renamed to ResultsTable.
3402 (ResultsTable.prototype.clear): Clears the table element.
3403 (ResultsTable.prototype._showHeaderRow): Shows a row in the results table header.
3404 (ResultsTable.prototype._showHeader): Shows the results table header.
3405 (ResultsTable.prototype._showEmpty): Shows an empty table cell.
3406 (ResultsTable.prototype._showText): Shows a string in a new table cell.
3407 (ResultsTable.prototype._showFixedNumber): Shows a number in a new table cell.
3408 (ResultsTable.prototype._showGraph): Shows a button for the sampled data graph.
3409 (ResultsTable.prototype._showJSON): Shows a button for the sampled data JSON.
3410 (ResultsTable.prototype._showTest): Shows the results of a single test.
3411 (ResultsTable.prototype._showSuite): Shows the results of a single suite.
3412 (ResultsTable.prototype._showIteration): Shows the results of a single iteration.
3413 (ResultsTable.prototype.showRecord): Shows a single iteration for a single test.
3414 (ResultsTable.prototype.showIterations): Shows all the results.
3415 (RecordTable): Deleted.
3416 (RecordTable.prototype.clear): Deleted.
3417 (RecordTable.prototype._showTitles): Deleted.
3418 (RecordTable.prototype._showHeader): Deleted.
3419 (RecordTable.prototype._showEmpty): Deleted.
3420 (RecordTable.prototype._showValue): Deleted.
3421 (RecordTable.prototype._showSamples): Deleted.
3422 (RecordTable.prototype._showTest): Deleted.
3423 (RecordTable.prototype._showSuite): Deleted.
3424 (RecordTable.prototype.showRecord): Deleted.
3425 (RecordTable.prototype.showIterations): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003426
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +00003427 * Animometer/resources/sampler.js:
3428 (Sampler.prototype.startSampling): Use forEach.
3429 (Sampler.prototype.sample): Use forEach.
3430 (Sampler.prototype.toJSON): Converts the sampler data to JSON format.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003431
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +00003432 * Animometer/resources/strings.js: Added.
3433 This new file will be used to associate the strings used by the benchmark
3434 with IDs. A string can be changed in one place without having to change
3435 all the instances of this string in multiple files. There two groups of
3436 strings in this file. The first one is used by the UI elements and the second
3437 group is used when constructing the results JSON.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003438
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +00003439 * Animometer/runner/animometer.html:
3440 * Animometer/runner/resources/animometer.css:
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003441
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +00003442 * Animometer/runner/resources/animometer.js:
3443 (window.benchmarkRunnerClient.willAddTestFrame):
3444 (window.benchmarkRunnerClient.willStartFirstIteration):
3445 (window.benchmarkRunnerClient.didRunSuites):
3446 (window.benchmarkRunnerClient.didFinishLastIteration):
3447 Make benchmarkRunnerClient uses ResultsDashboard instead of _iterationsSamplers
3448 Get the JSON from ResultsDashboard.toJSON() and pass it to ResultsTable.showIterations().
3449 Also set the textContent of the "#json" textarea with the results JSON.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003450
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +00003451 (showResults): Delete unneeded code.
3452 (showJson): Shows the "json" section.
3453 (showTestGraph): Rename showGraph() to be showTestGraph().
3454 (showTestJSON): Shows the JSON of a single testResults.
3455 (showGraph): Deleted.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003456
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +00003457 * Animometer/runner/resources/tests.js:
3458 Use the string table instead of putting literal strings.
3459
3460 * Animometer/tests/resources/stage.js:
3461 (StageBenchmark.prototype.showResults):
3462 Fix the parameters which are passed to RecordTable.showRecord().
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003463
commit-queue@webkit.org15f216f2015-10-26 16:44:54 +00003464 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html:
3465 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html:
3466 * Animometer/tests/bouncing-particles/bouncing-css-images.html:
3467 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html:
3468 * Animometer/tests/bouncing-particles/bouncing-svg-images.html:
3469 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html:
3470 * Animometer/tests/examples/canvas-electrons.html:
3471 * Animometer/tests/examples/canvas-stars.html:
3472 * Animometer/tests/simple/simple-canvas-paths.html:
3473 * Animometer/tests/template/template-canvas.html:
3474 * Animometer/tests/template/template-css.html:
3475 * Animometer/tests/template/template-svg.html:
3476 * Animometer/tests/text/layering-text.html:
3477 Include the new strings.js file in all the test files.
3478
jonlee@apple.comcc54f1a2015-10-12 23:20:24 +000034792015-10-12 Jon Lee <jonlee@apple.com>
3480
jonlee@apple.coma1b9f3c2015-10-13 02:12:11 +00003481 Add canvas line dash test
3482 https://bugs.webkit.org/show_bug.cgi?id=150078
3483 <rdar://problem/23082347>
3484
3485 Reviewed by Dean Jackson.
3486
3487 * Animometer/runner/resources/tests.js: Add line dash test.
3488 * Animometer/tests/simple/resources/simple-canvas-paths.js:
3489 (CanvasLineDashStage): Create a new stage with a default dash pattern and stroke style.
3490 Maintain a step which will animate the dash.
3491 (CanvasLineDashStage.prototype.animate): Render the line path with the dash. Increment
3492 the dash offset to animate.
3493 (CanvasPathBenchmark.prototype.createStage): Add the test.
3494
34952015-10-12 Jon Lee <jonlee@apple.com>
3496
jonlee@apple.com74c63922015-10-13 02:11:44 +00003497 Add canvas line path tests
3498 https://bugs.webkit.org/show_bug.cgi?id=150076
3499 <rdar://problem/23082285>
3500
3501 Reviewed by Dean Jackson.
3502
3503 * Animometer/runner/resources/tests.js: Add new line path tests, with different
3504 line joins.
3505 * Animometer/tests/simple/resources/simple-canvas-paths.js:
3506 (CanvasLinePathStage): The stage is the same as the SimpleCanvasPathStrokeStage
3507 but sets the lineJoin on the context.
3508 (CanvasPathBenchmark.prototype.createStage): Add the tests.
3509
35102015-10-12 Jon Lee <jonlee@apple.com>
3511
jonlee@apple.comead6eee2015-10-13 02:11:06 +00003512 Add missing paint objects for arc and arcTo fills
3513 https://bugs.webkit.org/show_bug.cgi?id=150075
3514 <rdar://problem/23082233>
3515
3516 Reviewed by Dean Jackson.
3517
3518 * Animometer/tests/simple/resources/simple-canvas-paths.js: Add missing paint objects
3519 for arcTo and arc segment fills.
3520 (CanvasArcToSegmentFill):
3521 (CanvasArcToSegmentFill.prototype.draw):
3522 (CanvasArcSegmentFill):
3523 (CanvasArcSegmentFill.prototype.draw):
3524
35252015-10-12 Jon Lee <jonlee@apple.com>
3526
jonlee@apple.com709fa182015-10-13 02:10:42 +00003527 Add canvas line segment tests
3528 https://bugs.webkit.org/show_bug.cgi?id=150073
3529 <rdar://problem/23082138>
3530
3531 Reviewed by Dean Jackson.
3532
3533 * Animometer/runner/resources/tests.js: Add new line segment tests, with different
3534 line caps.
3535 * Animometer/tests/simple/resources/simple-canvas-paths.js:
3536 (CanvasLineSegment): Add new line segment paint object.
3537 (CanvasLineSegmentStage): Create a new stage that sets the lineCap.
3538
35392015-10-12 Jon Lee <jonlee@apple.com>
3540
jonlee@apple.com0a1fe602015-10-13 02:10:08 +00003541 Add canvas path fill tests
3542 https://bugs.webkit.org/show_bug.cgi?id=150071
3543 <rdar://problem/23082001>
3544
3545 Reviewed by Dean Jackson.
3546
3547 * Animometer/runner/resources/tests.js: Add new pathTypes for path fills.
3548 * Animometer/tests/simple/resources/simple-canvas-paths.js:
3549 (CanvasLinePoint): Add basic point for a line, and call lineTo.
3550 (SimpleCanvasPathFillStage): Add a new stage similar to SimpleCanvasPathStrokeStage.
3551 (CanvasPathBenchmark.prototype.createStage): Add the tests.
3552
35532015-10-12 Jon Lee <jonlee@apple.com>
3554
jonlee@apple.comecfc09b2015-10-13 01:18:03 +00003555 Add canvas path tests
3556 https://bugs.webkit.org/show_bug.cgi?id=150067
3557 rdar://problem/23081463
3558
3559 Reviewed by Dean Jackson.
3560
3561 * Animometer/runner/resources/tests.js: Add a quadratic and bezier path test.
3562
3563 * Animometer/tests/simple/resources/simple-canvas.js:
3564 (SimpleCanvasStage.prototype.tune): This kind of test joins all of the segments
3565 into one long path, and tries to render that one path. Random points make it
3566 difficult to tell what is going on, so add a parameter to the constructor to
3567 confine the area where the random coordinates can land. The more complicated the
3568 case is, the larger an area the path will cover. Add an artificial minimum so
3569 that the first 200 points aren't confined to a space that is too small.
3570
3571 * Animometer/tests/simple/resources/simple-canvas-paths.js:
3572 (SimpleCanvasPathStrokeStage): Add a new kind of stage that inherits from
3573 SimpleCanvasStage. Each time the frame animates a random line width and stroke
3574 color are chosen. The path setup is done outside of each paint object.
3575 (CanvasQuadraticPoint): This point just calls quadraticCurveTo.
3576 (CanvasPathBenchmark.prototype.createStage): Add the tests.
3577
35782015-10-12 Jon Lee <jonlee@apple.com>
3579
jonlee@apple.com93112af2015-10-13 01:11:45 +00003580 Add basic canvas tests
3581 https://bugs.webkit.org/show_bug.cgi?id=150066
3582 rdar://problem/23081143
3583
3584 Reviewed by Dean Jackson.
3585
3586 This adds a new test suite that will cover all of the path-based canvas calls.
3587 The patch will be divided up to cover tests with similar techniques.
3588
3589 The simplest version uses a SimpleCanvasStage.
3590
3591 * Animometer/runner/resources/tests.js: Add tests for quadratic, bezier, arcTo,
3592 arc, and rect segments. Also include arcTo, arc, and rect fills.
3593 * Animometer/tests/resources/stage.js:
3594 (Stage.prototype.randomBool): Added for counterclockwise property for arc segments.
3595 (Stage.prototype.randomInt): Fix how values are rounded, used by randomBool. It should
3596 round instead of flooring everything.
3597 * Animometer/tests/simple/resources/simple-canvas.js: Added. Defines common classes
3598 used by all simple canvas tests. The page reads best bottom to top.
3599 (SimpleCanvasStage): Basic stage. Pass a canvasObject which will be used to create new
3600 objects as needed in tune().
3601 (SimpleCanvasStage.prototype.tune): Modeled on other tests. Adds and removed objects
3602 as specified by the provided |count|.
3603 (SimpleCanvasStage.prototype.animate): Iterate over all the objects and ask them to draw.
3604 There is no "animating" of the objects; they will just paint statically on the canvas.
3605 (SimpleCanvasAnimator): Basic animator clears the canvas prior to painting.
3606 (SimpleCanvasBenchmark): Hard-code the feedback loop parameters instead of including
3607 them in the query parameters to the test URLs.
3608 (SimpleCanvasBenchmark.prototype.createAnimator):
3609 * Animometer/tests/simple/simple-canvas-paths.html: Added.
3610
3611 * Animometer/tests/simple/resources/simple-canvas-paths.js: Added. There is no "animating"
3612 of these objects--they just paint statically on the canvas.
3613 (CanvasQuadraticSegment): Paint a quadratic segment stroke.
3614 (CanvasBezierSegment): Paint a bezier segment stroke.
3615 (CanvasArcToSegment): Paint an arcTo stroke.
3616 (CanvasArcSegment): Paint an arc stroke.
3617 (CanvasRect): Paint a rect.
3618 (CanvasRectFill): Paint a filled rect.
3619
3620 (CanvasPathBenchmark):
3621 (CanvasPathBenchmark.prototype.createStage): Look for the pathType and create the
3622 stage using the right paint object.
3623 (window.benchmarkClient.create):
3624
36252015-10-12 Jon Lee <jonlee@apple.com>
3626
jonlee@apple.com468526c2015-10-13 00:11:16 +00003627 Refactor tune() to pass in an integer-based count
3628 https://bugs.webkit.org/show_bug.cgi?id=150060
3629 <rdar://problem/23079425>
3630
3631 Reviewed by Dean Jackson.
3632
3633 All of the tune functions do an initial step of flooring the
3634 # of painting objects to add or remove. Factor that out since
3635 the complexity of all of these tests is always expressed in terms
3636 of countable items.
3637
3638 * Animometer/tests/resources/main.js:
3639 (Benchmark.prototype.update): Update the tuneValue.
3640
3641 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
3642 (BouncingParticlesStage.prototype.tune): Remove the count adjustment.
3643 * Animometer/tests/examples/resources/canvas-electrons.js:
3644 (CanvasElectronsStage.prototype.tune): Ditto.
3645 * Animometer/tests/examples/resources/canvas-stars.js:
3646 (CanvasStarsStage.prototype.tune): Ditto.
3647 * Animometer/tests/text/resources/layering-text.js:
3648 (LayeringTextStage.prototype.tune): Ditto.
3649
36502015-10-12 Jon Lee <jonlee@apple.com>
3651
jonlee@apple.combf0aa9e2015-10-13 00:03:31 +00003652 Store test-interval in localStorage
3653 https://bugs.webkit.org/show_bug.cgi?id=150055
3654 <rdar://problem/23078879>
3655
3656 Reviewed by Dean Jackson.
3657
3658 * Animometer/runner/resources/animometer.js:
3659 (populateSettings): Keep track of the specified test interval in localStorage
3660 to make it easy to repeat a test suite.
3661
36622015-10-12 Jon Lee <jonlee@apple.com>
3663
jonlee@apple.com36ff07b2015-10-12 23:25:41 +00003664 Remove "../tests/" from the URLs of all tests
3665 https://bugs.webkit.org/show_bug.cgi?id=150054
3666 <rdar://problem/23078784>
3667
3668 Reviewed by Dean Jackson.
3669
3670 Presumably all tests will be running from the tests/ directory,
3671 so we don't have to specify it in all of the test URLs.
3672
3673 * Animometer/runner/resources/benchmark-runner.js:
3674 (BenchmarkRunnerState.prototype.prepareCurrentTest): Prepend
3675 "../tests/" to all tests.
3676 * Animometer/runner/resources/tests.js: Remove "../tests/" from
3677 all URLs.
3678
36792015-10-12 Jon Lee <jonlee@apple.com>
3680
jonlee@apple.comdded8212015-10-12 23:22:23 +00003681 Refactor test suites to a separate class.
3682 https://bugs.webkit.org/show_bug.cgi?id=150053
3683 <rdar://problem/23078645>
3684
3685 Reviewed by Dean Jackson.
3686
3687 Create a Suite class to refactor out prepare() and run().
3688 Generate the checkboxes representing the suites using Suites
3689 instead of maintaining a separate list. Also, save the
3690 selections out to localStorage.
3691
3692 * Animometer/runner/animometer.html: Remove the explicitly listed
3693 suites. These will be generated from Suites instead.
3694 * Animometer/runner/resources/animometer.js:
3695 (populateSettings): Iterate through Suites, and create the
3696 label and checkbox. Attach the Suite object to the checkbox so
3697 when the benchmark is started, we get direct access. Initialize
3698 the checkmark based on its value in localStorage. Set this to
3699 run when DOMContentLoaded is dispatched.
3700 (startBenchmark): Grab all of the checkboxes, inspect their
3701 values, add it to enabledSuites if selected. Remember whether
3702 the suite was enabled in localStorage, so that it's easy to do
3703 repeated runs.
3704 * Animometer/runner/resources/tests.js:
3705 (Suite): Create a new Suite class. Refactor out prepare() and
3706 run(), since all of them have the same implementation. Populate
3707 Suites with Suite instances instead of generic objects.
3708
37092015-10-12 Jon Lee <jonlee@apple.com>
3710
3711 Update graph styles for legibility.
3712 https://bugs.webkit.org/show_bug.cgi?id=150052
3713 <rdar://problem/23078503>
3714
3715 Reviewed by Dean Jackson.
3716
3717 * Animometer/runner/resources/animometer.css: Update colors and
3718 stroke thicknesses to make the graphs easier to read.
3719 (.smaple-time): Correct to .sample-time
3720 * Animometer/runner/resources/graph.js:
3721 (graph): Ditto.
3722
37232015-10-12 Jon Lee <jonlee@apple.com>
3724
jonlee@apple.comcc54f1a2015-10-12 23:20:24 +00003725 Update graph styles for legibility.
3726 https://bugs.webkit.org/show_bug.cgi?id=150052
3727 <rdar://problem/23078503>
3728
3729 Reviewed by Dean Jackson.
3730
3731 * Animometer/runner/resources/animometer.css: Update colors and
3732 stroke thicknesses to make the graphs easier to read.
3733 (.smaple-time): Correct to .sample-time
3734 * Animometer/runner/resources/graph.js:
3735 (graph): Ditto.
3736
fpizlo@apple.comd98aa432015-10-12 22:42:21 +000037372015-10-12 Filip Pizlo <fpizlo@apple.com>
3738
3739 Unreviewed, revert an unintended commit.
3740
3741 * JetStream/Octane2/crypto.js:
3742 (montRevert):
3743 (montReduce):
3744
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +000037452015-10-05 Said Abou-Hallawa <sabouhallawa@apple.com>
3746
3747 Add a graphics benchmark
3748 https://bugs.webkit.org/show_bug.cgi?id=149053
3749 <rdar://problem/18984169>
3750
3751 Reviewed by Dean Jackson.
3752
3753 Instead of measuring the FPS of the animation, this benchmark measures the
3754 test complexity when rendering at a set-point FPS which should be lower
3755 than 60 FPS. This benchmark tries to stay at the set-point FPS by using
3756 a closed loop control system PID function. The gain of the system is passed
3757 as a parameter when running the test. Measuring the FPS faithfully results
3758 very fluctuating values. A Kalman filter is used to give a better estimate
3759 for the current FPS.
3760
3761 The animation of the tests is done manually. requestAnimationFrame() is
3762 called with a callback. Inside this callback, the test is animating by
3763 changing the positions of the elements inside the page. The test complexity
3764 may change also if the current FPS is not equal to the desired FPS.
3765
3766 In this patch, the benchmark and the tests are included. The shared code
3767 and the tests runner are included in separate patches.
3768
3769 * Animometer/runner/animometer.html:
3770 * Animometer/runner/resources/animometer.js:
3771 Add two new examples for more complex animation techniques.
3772 Add an option to show/hide the test running results which is off by default.
3773
3774 * Animometer/runner/resources/tests.js: Added.
3775 (suiteFromName): Returns a suite given its name.
3776 (testFromName): Returns a test given its suite and name.
3777
3778 * Animometer/tests: Added.
3779 This directory includes all the test suites to be run by the benchmark.
3780 runner. All the tests should try to run on three stages: CSS, canvas and
3781 SVG.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003782
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003783 * Animometer/tests/bouncing-particles: Added.
3784 * Animometer/tests/bouncing-particles/resources: Added.
3785 The bouncing particles test is an example of a simple animation technique.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003786
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003787 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Added.
3788 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.
3789 * Animometer/tests/bouncing-particles/bouncing-css-images.html: Added.
3790 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html: Added.
3791 * Animometer/tests/bouncing-particles/bouncing-svg-images.html: Added.
3792 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Added.
3793 Bouncing particles test pages.
3794
3795 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js: Added.
3796 (BouncingParticle): Base class for a bouncing particle.
3797 (BouncingParticle.prototype.center): Returns the center point or the particle.
3798 (BouncingParticle.prototype.animate): Moves the particle based on its current position, angle and velocity.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003799
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003800 (BouncingParticlesAnimator): A sub class of Animator.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003801
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003802 (BouncingParticlesStage): Represents the container of all the bouncing particles.
3803 (BouncingParticlesStage.prototype.parseShapeParamters): Gets the shape parameters for shape animating tests.
3804 (BouncingParticlesStage.prototype.randomRotater): Creates a rotater for the particles.
3805 (BouncingParticlesStage.prototype.animate): Animates all the particles.
3806 (BouncingParticlesStage.prototype.tune): Changes the test by adding or removing particles.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003807
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003808 (BouncingParticlesBenchmark): Runs the benchmark for bouncing particles test.
3809 (BouncingParticlesBenchmark.prototype.createAnimator): Creates an animator of type BouncingParticlesAnimator.
3810
3811 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.
3812 (BouncingCssShape): A sub class of BouncingParticle for animating CSS shapes.
3813 (BouncingCssShape.prototype._createSpan): Creates a <span> element and takes the shape and clipping classes into consideration.
3814 (BouncingCssShape.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
3815 (BouncingCssShape.prototype.animate): Rotates and moves the shape to a new location.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003816
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003817 (BouncingCssShapesStage): A sub class of BouncingParticlesStage for animating CSS shapes.
3818 (BouncingCssShapesStage.prototype.createParticle): Creates a particle of type BouncingCssShape.
3819 (BouncingCssShapesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003820
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003821 (BouncingCssShapesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS shapes.
3822 (BouncingCssShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCssShapesStage.
3823 (window.benchmarkClient.create): Creates a benchmark of type BouncingCssShapesBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003824
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003825 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js: Added.
3826 (BouncingCssImage): A sub class of BouncingParticle for animating CSS images.
3827 (BouncingCssImage.prototype._move): Move the particle to a new location. Apply transform since it does not require layout.
3828 (BouncingCssImage.prototype.animate): Rotates and moves the shape to a new location.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003829
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003830 (BouncingCssImagesStage): A sub class of BouncingParticlesStage for animating CSS images.
3831 (BouncingCssImagesStage.prototype.createParticle): Creates a particle of type BouncingCssImage.
3832 (BouncingCssImagesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003833
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003834 (BouncingCssImagesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS images.
3835 (BouncingCssImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCssImagesStage.
3836 (window.benchmarkClient.create): Creates a benchmark of type BouncingCssImagesBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003837
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003838 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.
3839 (BouncingCanvasParticle): A base sub-class of BouncingParticle for animating canvas particles.
3840 (BouncingCanvasParticle.prototype._applyRotation): Apply the particle rotation-around-center transform to the canvas context.
3841 (BouncingCanvasParticle.prototype._applyClipping): Apply the particle clipping to the canvas context.
3842 (BouncingCanvasParticle.prototype._draw): A non-implemented version of the drawing function.
3843 (BouncingCanvasParticle.prototype.animate): Carries out all the steps to redraw the canvas particle.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003844
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003845 (BouncingCanvasParticlesStage): A base sub-class of BouncingParticlesStage for animating canvas particles.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003846
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003847 (BouncingCanvasParticlesAnimator): A concrete sub-class of BouncingParticlesAnimator for animating canvas particles.
3848 (BouncingCanvasParticlesAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003849
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003850 (BouncingCanvasParticlesBenchmark): A base sub-class of StageBenchmark for animating canvas particles.
3851 (BouncingCanvasParticlesBenchmark.prototype.createAnimator): Creates the canvas particles animator.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003852
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003853 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.
3854 (BouncingCanvasShape): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
3855 (BouncingCanvasShape.prototype._applyFill): Sets the fillStyle in the canvas context.
3856 (BouncingCanvasShape.prototype._drawShape): Carries out the actual drawing.
3857 (BouncingCanvasShape.prototype._draw): Carries out all the steps to draw the shape.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003858
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003859 (BouncingCanvasShapesStage): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
3860 (BouncingCanvasShapesStage.prototype.createParticle): Creates a particle of type BouncingCanvasShape.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003861
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003862 (BouncingCanvasShapesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas shapes.
3863 (BouncingCanvasShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasShapesStage.
3864 (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasShapesBenchmark.
3865
3866 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.
3867 (BouncingCanvasImage): A concrete sub-class of BouncingCanvasParticle for animating canvas images.
3868 (BouncingCanvasImage.prototype._draw): Draws an image on the context of a canvas.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003869
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003870 (BouncingCanvasImagesStage): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
3871 (BouncingCanvasImagesStage.prototype.createParticle): Creates a particle of type BouncingCanvasImage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003872
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003873 (BouncingCanvasImagesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
3874 (BouncingCanvasImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasImagesStage.
3875 (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasImagesBenchmark.
3876
3877 * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.
3878 (BouncingSvgParticle): A base sub-class of BouncingParticle for animating SVG particles.
3879 (BouncingSvgParticle.prototype._applyClipping): Apply the particle clipping by setting the 'clip-path' attribute of the SVGElement.
3880 (BouncingSvgParticle.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
3881 (BouncingSvgParticle.prototype.animate): Rotates and moves the shape to a new location.
3882 (BouncingSvgParticlesStage): A sub class of BouncingParticlesStage for animating SVGElements.
3883 (BouncingSvgParticlesStage.prototype._createDefs): Creates an SVGDefsElement.
3884 (BouncingSvgParticlesStage.prototype._ensureDefsIsCreated): Ensures there is only one SVGDefsElement is created.
3885 (BouncingSvgParticlesStage.prototype._createClipStar): Creates an SVGClipPathElement and sets its 'd' attribute to a star like shape.
3886 (BouncingSvgParticlesStage.prototype.ensureClipStarIsCreated): Ensure there is only one star SVGClipPathElement is created.
3887 (BouncingSvgParticlesStage.prototype.particleWillBeRemoved): Remove the corresponding element form the parent children list.
3888
3889 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.
3890 (BouncingSvgShape): A concrete sub-class of BouncingSVGParticle for animating SVG shapes.
3891 (BouncingSvgShape.prototype._createShape): Creates an SVG shape.
3892 (BouncingSvgShape.prototype._applyFill): Applies the selected fill style to the SVG shape.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003893
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003894 (BouncingSvgShapesStage): A concrete sub-class of BouncingSvgParticlesStage for animating SVG shapes.
3895 (BouncingSvgShapesStage.prototype.createGradient): Creates an SVGLinearGradientElement.
3896 (BouncingSvgShapesStage.prototype.createParticle): Creates a particle of type BouncingSvgShape.
3897 (BouncingSvgShapesStage.prototype.particleWillBeRemoved): Ensures the attached SVGLinearGradientElement is removed from the SVGDefsElement.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003898
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003899 (BouncingSvgShapesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
3900 (BouncingSvgShapesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgShapesStage.
3901 (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgShapesBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003902
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003903 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.
3904 (BouncingSvgImage): A concrete sub-class of BouncingSVGParticle for animating SVG images.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003905
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003906 (BouncingSvgImagesStage): A concrete sub-class of BouncingSVGParticlesBenchmark for animating SVG images.
3907 (BouncingSvgImagesStage.prototype.createParticle): Creates a particle of type BouncingSvgImage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003908
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003909 (BouncingSvgImagesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
3910 (BouncingSvgImagesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgImagesStage.
3911 (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgImagesBenchmark.
3912
3913 * Animometer/tests/examples: Added.
3914 * Animometer/tests/examples/canvas-electrons.html: Added.
3915 * Animometer/tests/examples/canvas-stars.html: Added.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003916 Examples test pages.
3917
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003918 * Animometer/tests/examples/resources: Added.
3919 * Animometer/tests/examples/resources/canvas-electrons.js: Added.
3920 (CanvasElectron): An object which draws and animate a electron object on a canvas stage.
3921 (CanvasElectron.prototype._draw): Draws the electron object.
3922 (CanvasElectron.prototype.animate): Animates the electron object.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003923
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003924 (CanvasElectronsStage): A concrete sub-class of Stage for animating electrons.
3925 (CanvasElectronsStage.prototype.tune): Changes the test by adding or removing elements.
3926 (CanvasElectronsStage.prototype.animate): Animates the test elements.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003927
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003928 (CanvasElectronsAnimator): A concrete sub-class of StageAnimator for animating canvas electrons.
3929 (CanvasElectronsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003930
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003931 (CanvasElectronsBenchmark): A concrete sub-class of StageBenchmark for animating electrons.
3932 (CanvasElectronsBenchmark.prototype.createStage): Creates a stage of CanvasElectronsStage.
3933 (CanvasElectronsBenchmark.prototype.createAnimator): Creates an animator of type CanvasElectronsAnimator.
3934 (window.benchmarkClient.create): Creates a benchmark of type CanvasElectronsBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003935
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003936 * Animometer/tests/examples/resources/canvas-stars.js: Added.
3937 (CanvasStar): An object which draws and animate a star object on a canvas stage.
3938 (CanvasStar.prototype._draw): Draws the star object.
3939 (CanvasStar.prototype.animate): Animates the star object.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003940
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003941 (CanvasStarsStage): A concrete sub-class of Stage for animating stars.
3942 (CanvasStarsStage.prototype.tune): Changes the test by adding or removing elements.
3943 (CanvasStarsStage.prototype.animate): Animates the test elements.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003944
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003945 (CanvasStarsAnimator): A concrete sub-class of StageAnimator for animating canvas stars.
3946 (CanvasStarsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003947
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003948 (CanvasStarsBenchmark): A concrete sub-class of Benchmark for animating stars.
3949 (CanvasStarsBenchmark.prototype.createStage): Creates a stage of CanvasStarsStage.
3950 (CanvasStarsBenchmark.prototype.createAnimator): Creates an animator of type CanvasStarsAnimator.
3951 (window.benchmarkClient.create): Creates a benchmark of type CanvasStarsBenchmark.
3952
3953 * Animometer/tests/resources: Added.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003954 This directory includes the script which is required to run an adaptive
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003955 graphics benchmark. From an empty test page, the set of classes in this
3956 directory are responsible for measuring the current frame rate and
3957 changing the test to reach a desired FPS. It keeps asking the test page
3958 to tune itself by a certain value to increase or decrease the frame rate.
3959 It's also responsible for sampling the test state and the corresponding
3960 frame rate.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003961
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003962 * Animometer/tests/resources/main.js: Added.
3963 (BenchmarkState): Tracks the state of the benchmark test.
3964 (BenchmarkState.prototype._timeOffset): Returns the timeOffset of a stage.
3965 (BenchmarkState.prototype._message): Returns the message of a stage.
3966 (BenchmarkState.prototype.update): Sets the currentTimeOffset to a new value.
3967 (BenchmarkState.prototype.samplingTimeOffset): Returns the timeOffset of the sampling stage.
3968 (BenchmarkState.prototype.currentStage): Returns the current stage of the benchmark.
3969 (BenchmarkState.prototype.currentMessage): Returns the message of the current stage and timeOffset.
3970 (BenchmarkState.prototype.currentProgress): Returns a percentage of how much the benchmark is running.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003971
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003972 (Animator): Manages animating the test.
3973 (Animator.prototype.start): Called if animating using setInterval is requested.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003974 (Animator.prototype.timeDelta): Returns the current timeDelta
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003975 (Animator.prototype.animate): Manages the test animation.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003976 (Animator.prototype.animateLoop): Called if animating using requestAnimationFrame is requested.
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003977
3978 (Benchmark): Manages running the test benchmark and recording the sampled data.
3979 (Benchmark.prototype.start): Starts the benchmark.
3980 (Benchmark.prototype.update): Called from the animator.animate() to change the complexity of the test.
3981 (Benchmark.prototype.record): Shows the current (not final) results of the benchmark.
3982 (Benchmark.prototype.resolveWhenFinished): Spins until the benchmark is finished and returns its results.
3983 (Benchmark.prototype.run): Starts the test, runs it, waits until it is finished and return its results.
3984 (window.runBenchmark): Called from the benchmark runner through the suite controller run-callback.
3985
3986 * Animometer/tests/resources/math.js: Added.
3987 (Matrix): A matrix object.
3988 (Vector3): A vector of size 3 object.
3989 (Matrix3): A matrix of size 3x3 object.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003990
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003991 (PIDController): Closed-loop controller for a set-point y.
3992 (PIDController.prototype._sat): Limits the output to a certain range.
3993 (PIDController.prototype.tune): Given the current output of a system, it produces a new pid value for tuning it.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00003994
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00003995 (KalmanEstimator): Implement Kalman filter to get an estimate for a sampled data point.
3996 (KalmanEstimator.prototype.estimate): Returns an estimate for for a sampled data point.
3997
3998 * Animometer/tests/resources/utilities.js: Added.
3999 (window.Utilities._parse): Given a separator character, it pareses a string to a set of <key, value> pairs.
4000 (window.Utilities.parseParameters): Parses a test parameters.
4001 (window.Utilities.parseArguments): Parses a tag arguments.
4002 (window.Utilities.extendObject): Adds the attributes and their values of an object to another object.
4003 (window.Utilities.copyObject): Copies the attributes and their values of an object to a new object.
4004 (window.Utilities.mergeObjects): Copies the attributes and their values of two objects to a new object.
4005 (window.Utilities.createSvgElement): Creates an SVGElement given its name and its attributes.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004006
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004007 * Animometer/tests/resources/stage.css: Added.
4008 * Animometer/tests/resources/stage.js: Added.
4009 (Rotater): Manages rotating an angle within a fixed time interval.
4010 (Rotater.prototype.get interval): Returns the time interval which is required to rotate 360 degrees.
4011 (Rotater.prototype.next): Moves the current time by a delta.
4012 (Rotater.prototype.degree): Returns the current rotating degree.
4013 (Rotater.prototype.rotateZ): Returns CSS formatted transform rotateZ() string for the current degree.
4014 (Rotater.prototype.rotate): Returns SVG formatted transform rotate() string for the current degree.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004015
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004016 (Stage): A base class for managing the test complexity and test animation.
4017 (Stage.prototype.get size): Returns the size of the stage excluding the CSS padding.
4018 (Stage.prototype.random): Returns a random float.
4019 (Stage.prototype.randomInt): Returns a random integer.
4020 (Stage.prototype.randomPosition): Returns a random position.
4021 (Stage.prototype.randomSquareSize): Returns a square size.
4022 (Stage.prototype.randomVelocity): Returns a random velocity.
4023 (Stage.prototype.randomAngle): Returns a random angle.
4024 (Stage.prototype.randomColor): Returns a random color not too dark and not too light.
4025 (Stage.prototype.randomRotater): Creates a random rotater. Its velocity depends on choosing a random rotation time interval.
4026 (Stage.prototype.tune): A not-implemented version of this function.
4027 (Stage.prototype.animate): A not-implemented version of this function.
4028 (Stage.prototype.clear): Clears the stage from all its animation elements.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004029
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004030 (StageAnimator): A base class for the stage-based animators.
4031 (StageAnimator.prototype.animate): Calls Animator.animate() which updates the test page and then calls Stage.animate() to force redraw.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004032
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004033 (StageBenchmark): A base class for the stage-based benchmarks.
4034 (StageBenchmark.prototype.createStage): Creates the default stage.
4035 (StageBenchmark.prototype.createAnimator): Creates the default animator.
4036 (StageBenchmark.prototype.tune): Delegates the call to stage.
4037 (StageBenchmark.prototype.clear): Delegates the call to stage.
4038 (StageBenchmark.prototype.showResults): Shows the results/progress through its recordTable and progressBar.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004039
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004040 * Animometer/tests/resources/yin-yang.png: Added.
4041 * Animometer/tests/resources/yin-yang.svg: Added.
4042 These images are shared among all the tests.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004043
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004044 * Animometer/tests/template: Added.
4045 * Animometer/tests/template/resources: Added.
4046 This directory includes template tests which do nothing. They can be used
4047 to author new tests. Animated items can be created, moved and redrawn by
4048 removing the TODO comments in the script files and writing actual code.
4049
4050 * Animometer/tests/template/template-css.html: Added.
4051 * Animometer/tests/template/template-canvas.html: Added.
4052 * Animometer/tests/template/template-svg.html: Added.
4053 Template test pages. They can be used as they are. CSS attributes or hidden
4054 elements can be added to these derived test pages if needed.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004055
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004056 * Animometer/tests/template/resources/template-css.js: Added.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004057
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004058 (TemplateCssStage): A stage to create and animate HTMLElements.
4059 (TemplateCssStage.prototype.tune): Changes the test by adding or removing elements.
4060 (TemplateCssStage.prototype.animate): Animates the test elements.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004061 (TemplateCssBenchmark):
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004062 (TemplateCssBenchmark.prototype.createStage): Creates the test stage.
4063 (window.benchmarkClient.create): Creates a benchmark of type TemplateCssBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004064
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004065 * Animometer/tests/template/resources/template-canvas.js: Added.
4066 (TemplateCanvasObject):
4067 (TemplateCanvasObject.prototype._draw): Draws the objects on the canvas context.
4068 (TemplateCanvasObject.prototype.animate): Moves and redraws the object.
4069 (TemplateCanvasStage): A stage to create and animate drawing elements.
4070 (TemplateCanvasStage.prototype.tune): hanges the test by adding or removing elements.
4071 (TemplateCanvasStage.prototype.animate): Animates the test elements.
4072 (TemplateCanvasAnimator.prototype.animate): Starts the animation every frame.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004073 (TemplateCanvasBenchmark):
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004074 (TemplateCanvasBenchmark.prototype.createStage): Creates a stage of type TemplateCanvasStage.
4075 (TemplateCanvasBenchmark.prototype.createAnimator): Creates a animator of type TemplateCanvasAnimator.
4076 (window.benchmarkClient.create): Creates a benchmark of type TemplateCanvasBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004077
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004078 * Animometer/tests/template/resources/template-svg.js: Added.
4079 (TemplateSvgStage): A stage to create and animate SVGElements.
4080 (TemplateSvgStage.prototype.tune): Changes the test by adding or removing elements.
4081 (TemplateSvgStage.prototype.animate): Animates the test elements.
4082 (TemplateSvgBenchmark.prototype.createStage): Creates a stage of type TemplateSvgStage.
4083 (window.benchmarkClient.create): Creates a benchmark of type TemplateSvgBenchmark.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004084
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004085 * Animometer/tests/text: Added.
4086 * Animometer/tests/text/resources: Added.
4087 This directory includes the text animating tests which currently runs
4088 on CSS stage only.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004089
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004090 * Animometer/tests/text/layering-text.html: Added.
4091 Text test page.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004092
commit-queue@webkit.orgcbaea862015-10-05 20:38:52 +00004093 * Animometer/tests/text/resources/layering-text.js: Added.
4094 (LayeringTextStage): Represents the container of all the stacked text layers.
4095 (LayeringTextStage.parseTextItem): Parses a textItem which may be an opening tag, a closing tag or a self-closing tag.
4096 (LayeringTextStage.isOpeningTextItem): Returns true if the textItem is an opening tag e.g. '<ol>'.
4097 (LayeringTextStage.isClosingTextItem): Returns true if the textItem is an closing tag e.g. '</ol>.
4098 (LayeringTextStage.textItemsFlags.LayeringTextStage.textItems.map): Calculates and stores isOpening and isClosing flags for each textItem.
4099 (LayeringTextStage.isColorableTextItem): Returns true if the textItem is self-closing tag e.g. '<p>...</p>'.
4100 (LayeringTextStage.isInsertableTextItem): Returns true if the textItems causes a new element to be added to the text layers.
4101 (LayeringTextStage.colorableTextItems.LayeringTextStage.textItemsFlags.filter): Number of colorable textItems.
4102 (LayeringTextStage.insertableTextItems.LayeringTextStage.textItemsFlags.filter): Number of insertable textItems.
4103 (LayeringTextStage.colorIndexToTextElementIndex): Maps from colorIndex [0..colorableTextItems-1] to textElementIndex [0..insertableTextItems-1].
4104 (LayeringTextStage.prototype._nextTextItem): Moves the _textItemIndex one step forward in a loop [0..LayeringTextStage.textItems.length-1].
4105 (LayeringTextStage.prototype._previousTextItem): Moves the _textItemIndex one step backward in a loop.
4106 (LayeringTextStage.prototype._pushTextElement): Creates a new textItemElement and adds it to the topmost container <div>.
4107 (LayeringTextStage.prototype._popTextElement): Removes the last textItemElement from the topmost container <div>.
4108 (LayeringTextStage.prototype._colorTextItem): Changes the background color of a single colorable textElement. The index advances in a circle [0..colorableTextItems-1].
4109 (LayeringTextStage.prototype.animate): Changes the background color and the text color of the textElements such that a redraw is enforced.
4110 (LayeringTextStage.prototype.tune): Adds or removes textElements to the stage.
4111
4112 (LayeringTextBenchmark): Runs the benchmark for the layering text test.
4113 (LayeringTextBenchmark.prototype.createStage): Creates a stage of type LayeringTextStage.
4114 (window.benchmarkClient.create): Creates a benchmark of type LayeringTextBenchmark.
4115
commit-queue@webkit.org85135692015-10-02 22:15:22 +000041162015-10-02 Said Abou-Hallawa <sabouhallawa@apple.com>
4117
commit-queue@webkit.org6f32f2e2015-10-03 03:10:13 +00004118 Add shared code for a new a graphics benchmark
4119 https://bugs.webkit.org/show_bug.cgi?id=149691
4120
4121 Reviewed by Ryosuke Niwa.
4122
4123 This set of classes will be shared and used by the tests and the runner
4124 of a new graphics benchmark.
4125
4126 * Animometer/resources: Added.
4127 * Animometer/resources/algorithm.js: Added.
4128 (Array.prototype.swap): Swaps two elements in an array.
4129 (Heap): Binary Min/Max Heap object
4130 (Heap.prototype._parentIndex): Given the child node index, it returns the parent index.
4131 (Heap.prototype._leftIndex): Given the parent node index, it returns the left node index.
4132 (Heap.prototype._rightIndex): Given the parent node index, it returns the right node index.
4133 (Heap.prototype._childIndex): Given the parent node index, it returns the child index that may violate the heap property.
4134 (Heap.prototype.init): Initializes the heap state.
4135 (Heap.prototype.top): Returns the value stored at the top of the heap.
4136 (Heap.prototype.push): Pushes a new node at the top of the heap.
4137 (Heap.prototype.pop): Extracts the top node of the heap.
4138 (Heap.prototype._bubble): Fixes the heap property by moving upward.
4139 (Heap.prototype._sink): Fixes the heap property by moving downward.
4140 (Heap.prototype.str): Prints the nodes of the heap to a string.
4141 (Heap.prototype.values): Returns the last "size" heap elements values.
4142
4143 (Algorithm.createMinHeap): Creates a size-bounded min-heap object.
4144 (Algorithm.createMaxHeap): Creates a size-bounded max-heap object.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004145
commit-queue@webkit.org6f32f2e2015-10-03 03:10:13 +00004146 * Animometer/resources/extensions.js: Added.
4147 (Point): Point object but can be used as size also.
4148 (Point.pointOnCircle): Given, the radius of the circle and the angle of the point, it returns a point object.
4149 (Point.pointOnEllipse): Given, the radiuses of the ellipse and the angle of the point, it returns a point object.
4150 (Point.prototype.get width): Should be called when the point is used as size.
4151 (Point.prototype.get height): Should be called when the point is used as size.
4152 (Point.prototype.get center): Should be called when the point is used as size.
4153 (Point.prototype.add): Returns a new point = this + other.
4154 (Point.prototype.subtract): Returns a new point = this - other.
4155 (Point.prototype.multiply): Returns a new point = this * other.
4156 (Point.prototype.move): Moves the point in a given direction, velocity, time period.
4157
4158 (Insets): Represents borders of a container.
4159 (Insets.prototype.get width): Returns left + right.
4160 (Insets.prototype.get height): Returns top + bottom.
4161
4162 (SimplePromise):
4163 (SimplePromise.prototype.then):
4164 (SimplePromise.prototype.resolve):
4165 Moved from Animometer/runner/resources/benchmark-runner.js since tests also need it.
4166
4167 (Options): Benchmark running options as they are set by the user.
4168
4169 (ProgressBar): Manages a progress bar element. The progress bar is divided into equal length ranges.
4170 (ProgressBar.prototype._progressToPercent): Converts the progress into a percentage.
4171 (ProgressBar.prototype.incRange): Moves to the next range (a range is the running time of a single test).
4172 (ProgressBar.prototype.setPos): Draws the current progress in the current range.
4173
4174 (RecordTable): Shows the results of running a benchmark in a tabular form.
4175 (RecordTable.prototype.clear): Clears the results table.
4176 (RecordTable.prototype._showTitles): Shows the header titles and appends the sub-titles to a queue.
4177 (RecordTable.prototype._showHeader): Shows the table header titles.
4178 (RecordTable.prototype._showEmpty): Shows an empty table cell.
4179 (RecordTable.prototype._showValue): Shows a number value in the results table.
4180 (RecordTable.prototype._showSamples): Shows a button for the sampled data graph.
4181 (RecordTable.prototype._showTest): Shows the results of a single test.
4182 (RecordTable.prototype._showSuite): Shows the results of a single suite.
4183 (RecordTable.prototype.showRecord): Shows a single iteration for a single test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004184 (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations.
commit-queue@webkit.org6f32f2e2015-10-03 03:10:13 +00004185
4186 * Animometer/resources/sampler.js: Added.
4187 (Statistics.sampleMean): Returns the sample mean.
4188 (Statistics.unbiasedSampleStandardDeviation): Returns the unbiased sample variance (i.e. with Bessel's correction)
4189 (Statistics.geometricMean): Returns the geometric mean.
4190
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004191 (Experiment): Represents a sampling experiment.
commit-queue@webkit.org6f32f2e2015-10-03 03:10:13 +00004192 (Experiment.prototype._init): Called when the object is created and when startSampling() is called.
4193 (Experiment.prototype.startSampling): Called after warmup period. Restarts collecting sampled data points.
4194 (Experiment.prototype.sample): Add a new data point.
4195 (Experiment.prototype.mean): Returns the sample mean for the current sampled data points.
4196 (Experiment.prototype.standardDeviation): Returns the sample standard deviation for the current sampled data points.
4197 (Experiment.prototype.percentage): Returns the percentage of the standard deviation divided to the mean.
4198 (Experiment.prototype.confidenceIntervalDelta): Calculates the confidence delta for the current sampled data given a confidence level.
4199 (Experiment.prototype.concern): Returns the average of the worst given percentage from the sampled data.
4200 (Experiment.prototype.score): Returns a score for the sampled data. It is the geometric mean of sampleMean and concern.
4201
4202 (Sampler): Represents a compound experiment. It manages sampling multiple data points at the same time offset.
4203 (Sampler.prototype.startSampling): Called after warming up period. Restarts collecting sampled data points.
4204 (Sampler.prototype.sample): Add a new data vector at a given time offset.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004205
commit-queue@webkit.org6f32f2e2015-10-03 03:10:13 +000042062015-10-02 Said Abou-Hallawa <sabouhallawa@apple.com>
4207
commit-queue@webkit.org85135692015-10-02 22:15:22 +00004208 Add the test runner for a new a graphics benchmark
4209 https://bugs.webkit.org/show_bug.cgi?id=149683
4210
4211 Reviewed by Ryosuke Niwa.
4212
4213 The test runner collects the selected test suites and the running options
4214 from its home page. It loops through all the tests, runs them and collects
4215 their running results. At the end, it shows summary results and a final
4216 score. It can also show a chart for a test sampled data.
4217
4218 * Animometer: Added.
4219 * Animometer/runner: Added.
4220 * Animometer/runner/resources: Added.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004221
commit-queue@webkit.org85135692015-10-02 22:15:22 +00004222 * Animometer/runner/animometer.html: Added.
4223 * Animometer/runner/resources/animometer.css: Added.
4224 The benchmark runner page and css.
4225
4226 * Animometer/runner/resources/animometer.js: Added.
4227 (window.benchmarkRunnerClient.willAddTestFrame): Called after the test <iframe> is created.
4228 (window.benchmarkRunnerClient.didRunTest): Called after running a test is finished.
4229 (window.benchmarkRunnerClient.willStartFirstIteration): Called at the beginning before running any test.
4230 (window.benchmarkRunnerClient.didRunSuites): Called after running all tests of a suite.
4231 (window.benchmarkRunnerClient.didFinishLastIteration): Called after running the last test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004232
commit-queue@webkit.org85135692015-10-02 22:15:22 +00004233 (showSection): Shows a section in the animometer.html page.
4234 (startTest): Called when the "Start Test" button is clicked.
4235 (showResults): Called after finishing all the tests.
4236 (showGraph): Called when "Click..." button in the "Samples" column of the results table is clicked
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004237
commit-queue@webkit.org85135692015-10-02 22:15:22 +00004238 * Animometer/runner/resources/benchmark-runner.js: Copied from PerformanceTests/Speedometer/resources/benchmark-runner.js.
4239 (BenchmarkRunnerState): Tracks the current running <suite, test>
4240 (BenchmarkRunnerState.prototype.currentSuite): Returns the current running suite.
4241 (BenchmarkRunnerState.prototype.currentTest): Returns the current running test.
4242 (BenchmarkRunnerState.prototype.isFirstTest): Returns true if we are running the first test in the current suite.
4243 (BenchmarkRunnerState.prototype.next): Advances to the next test.
4244 (BenchmarkRunnerState.prototype.prepareCurrentTest): Creates a new <iframe> and waits for it to load a test.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004245
commit-queue@webkit.org85135692015-10-02 22:15:22 +00004246 (BenchmarkRunner): Manages running the tests and communicating with the benchmarkRunnerClient.
4247 (BenchmarkRunner.prototype.waitForElement): Waits for an element to be created.
4248 (BenchmarkRunner.prototype._appendFrame): Creates a new <iframe> element.
4249 (BenchmarkRunner.prototype._removeFrame): Removed the current <iframe> element.
4250 (BenchmarkRunner.prototype._runTestAndRecordResults): Runs the current test and saves its results.
4251 (BenchmarkRunner.prototype.step): Either runs the current test if there is or start a new iteration.
4252 (BenchmarkRunner.prototype.runAllSteps): Loops to run all the tests and move to the next iteration.
4253 (this._runNextIteration): Starts a new iteration or show the results.
4254 (BenchmarkRunner.prototype.runMultipleIterations): Loops to run all the iterations and show the results
4255 (BenchmarkRunner.prototype._finalize): Finalizes the current iteration and starts a new one.
4256
4257 (SimplePromise): Deleted.
4258 (SimplePromise.prototype.then): Deleted.
4259 (SimplePromise.prototype.resolve): Deleted.
4260 (BenchmarkTestStep): Deleted.
4261 (Fibonacci): Deleted.
4262 SimplePromise was moved t Animometer/resources/extensions.js because it is used by the runner and the tests.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004263
commit-queue@webkit.org85135692015-10-02 22:15:22 +00004264 (BenchmarkRunner.prototype._waitAndWarmUp): Deleted.
4265 (BenchmarkRunner.prototype._runTest): Deleted.
4266 (BenchmarkState.prototype.currentSuite): Deleted.
4267 (BenchmarkState.prototype.currentTest): Deleted.
4268 (BenchmarkState.prototype.next): Deleted.
4269 (BenchmarkState.prototype.isFirstTest): Deleted.
4270 (BenchmarkState.prototype.prepareCurrentSuite): Deleted.
4271 BenchmarkState was renamed to BenchmarkRunnerState to not be confused with the tests BenchmarkState.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004272
commit-queue@webkit.org85135692015-10-02 22:15:22 +00004273 * Animometer/runner/resources/d3.min.js: Copied from Websites/perf.webkit.org/public/v2/js/d3/d3.min.js.
4274 Needed for drawing charts for the sampled scores and frame rates.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004275
commit-queue@webkit.org85135692015-10-02 22:15:22 +00004276 * Animometer/runner/resources/graph.js: Added.
4277 (graph): Draws a chart for a test sampled data. It shows two y-axes: one for the animated items and the second for FPS.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004278
commit-queue@webkit.org85135692015-10-02 22:15:22 +00004279 * Skipped: Skip the Animometer benchmark for now.
4280
ossy@webkit.orgebd496e2015-08-27 16:33:43 +000042812015-08-27 Csaba Osztrogonác <ossy@webkit.org>
4282
4283 [EFL] REGRESSION(r188793): It made 200 layout tests and Bindings/event-target-wrapper.html performance test fail
4284 https://bugs.webkit.org/show_bug.cgi?id=148470
4285
4286 Unreviewed gardening, skip the hanging test to make the performance bot work.
4287
4288 * Skipped:
4289
cdumez@apple.com29a5c9a2015-08-17 22:27:56 +000042902015-08-17 Chris Dumez <cdumez@apple.com>
4291
4292 Add performance tests for traversal of collections returned by getElementsByClassName() / getElementsByTagName()
4293 https://bugs.webkit.org/show_bug.cgi?id=148080
4294
4295 Reviewed by Antti Koivisto.
4296
4297 Add performance tests for traversal of *uncached* collections returned
4298 by getElementsByClassName() / getElementsByTagName(). These methods
4299 will soon be updated to return an HTMLCollection instead of a
4300 NodeList and we need to make sure we don't regress performance in the
4301 process.
4302
4303 * DOM/get-elements-by-class-name-traversal-uncached.html: Added.
4304 * DOM/get-elements-by-tag-name-traversal-uncached.html: Added.
4305
cdumez@apple.com9cb09222015-08-14 22:11:22 +000043062015-08-14 Chris Dumez <cdumez@apple.com>
4307
4308 Add performance tests for NodeList and HTMLCollection traversal
4309 https://bugs.webkit.org/show_bug.cgi?id=148043
4310
4311 Reviewed by Gavin Barraclough.
4312
4313 Add performance tests for NodeList and HTMLCollection traversal.
4314 Ideally, those 2 tests should be as fast. However, due to inefficiencies
4315 in our HTMLCollection bindings code, the HTMLCollection tests is ~30%
4316 slower. This will be addressed in the near future.
4317
4318 * Bindings/childNodes-traversal.html: Added.
4319 * Bindings/children-traversal.html: Added.
4320
mmaxfield@apple.comd5b854c2015-08-05 22:57:52 +000043212015-08-05 Myles C. Maxfield <mmaxfield@apple.com>
4322
4323 Add a second font-fallback performance test
4324 https://bugs.webkit.org/show_bug.cgi?id=147692
4325
4326 Reviewed by Ryosuke Niwa.
4327
4328 This test is smaller, but has more realistic content. Also, it uses the "lang" attribute.
4329
4330 * Layout/font-fallback-2.html: Added.
4331 * Layout/resources/font-fallback-2.html: Added.
4332
fpizlo@apple.com43e65d12015-07-13 22:09:48 +000043332015-07-13 Filip Pizlo <fpizlo@apple.com>
4334
4335 Update JetStream version number to 1.1.
4336
4337 Rubber stamped by Ryosuke Niwa.
4338
4339 * JetStream/create.rb:
4340
fpizlo@apple.com99c83da2015-06-30 22:58:13 +000043412015-06-30 Filip Pizlo <fpizlo@apple.com>
4342
4343 Update the JetStream documentation to reflect the recent changes
4344 https://bugs.webkit.org/show_bug.cgi?id=146474
4345
4346 Reviewed by Geoffrey Garen.
4347
4348 * JetStream/create.rb: Bump the version.
4349 * JetStream/in-depth-TEMPLATE.html: Add cdjs documentation. Remove cordic documentation. Change documentation for splay and mandreel.
4350
fpizlo@apple.com8b4e4522015-06-28 03:47:00 +000043512015-06-26 Filip Pizlo <fpizlo@apple.com>
4352
4353 [JetStream] Raise the percentile of mandreel-latency and splay-latency
4354 https://bugs.webkit.org/show_bug.cgi?id=146378
4355
4356 Reviewed by Mark Lam.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004357
fpizlo@apple.com8b4e4522015-06-28 03:47:00 +00004358 The current percentile is 95%. When I looked at the sample lists in our GC, it was
4359 clear that the worst 5% samples completely amortize our GC pauses. Our GC pauses can
4360 be quite bad. Clearly, splay-latency is meant to test whether we have an incremental
4361 GC that ensures that you don't have bad worst-case pauses. But 95% is too small,
4362 because it doesn't really capture those pauses. Raising the percentile to above 99%
4363 appears to do the trick. 99.5% or more seems like a good bet. The trade-off there is
4364 just that if we set it too high, then we won't have enough statistics. Doing this very
4365 clearly rewards GCs that are incremental, and punishes GCs that aren't (like ours).
4366 That's what we want, since in the future we want to use this test to guide any
4367 improvements to the worst-case performance of our GC.
4368
4369 The way that the percentile is selected will also affect mandreel-latency. That's a
4370 good thing, because 95% is probably too low for that test as well. That test ends up
4371 with >10k samples. The goal of using 95% in the first place was to get enough samples
4372 to have a stable average. But if we have >10k samples, we can push that percentile up
4373 much higher and still get good statistics while achieving the effect we want - i.e.
4374 getting the worst case.
4375
4376 I don't think that we need to do the same thing for cdjs. That test only takes 200
4377 samples, so 95% means we report the average of the worst 10 samples. That's probably
4378 good enough.
4379
4380 * JetStream/Octane2/base.js: Raise the percentile as described above.
4381 (BenchmarkSuite.prototype.RunSingleBenchmark):
4382 * JetStream/Reference.js: Tweak the reference times to bring the latency tests closer to 100ish on my machine.
4383 * JetStream/create.rb: Bump the version.
4384
fpizlo@apple.com21d545d2015-06-19 23:49:38 +000043852015-06-19 Filip Pizlo <fpizlo@apple.com>
4386
fpizlo@apple.com59ddb4e2015-06-22 17:11:54 +00004387 Run CDjs as part of JSC stress testing
4388 https://bugs.webkit.org/show_bug.cgi?id=146174
4389
4390 Reviewed by Geoffrey Garen.
4391
4392 * JetStream/cdjs/cdjs-tests.yaml: Added. This tells JSC stress tests what tests to run. It uses new syntax ("tests" being a list) that I add in this change.
4393 * JetStream/cdjs/main.js: Mark this as a slow test.
4394 * JetStream/create.rb: Don't copy the JSC stress tests artifacts into the JetStream bundle.
4395
43962015-06-19 Filip Pizlo <fpizlo@apple.com>
4397
fpizlo@apple.com29a94692015-06-19 23:55:25 +00004398 Unreviewed, fix a small indentation goof.
4399
4400 * JetStream/cdjs/motion.js:
4401 (Motion.prototype.findIntersection):
4402
44032015-06-19 Filip Pizlo <fpizlo@apple.com>
4404
fpizlo@apple.com21d545d2015-06-19 23:49:38 +00004405 JetStream should include a JavaScript version of the CDx real-time benchmark
4406 https://bugs.webkit.org/show_bug.cgi?id=146156
4407
4408 Reviewed by Geoffrey Garen.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004409
fpizlo@apple.com21d545d2015-06-19 23:49:38 +00004410 This adds a JavaScript port of the CDx real-time benchmark to JetStream, and retires
4411 the cordic test because it was previously the smallest and probably least interesting.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004412
fpizlo@apple.com21d545d2015-06-19 23:49:38 +00004413 The new test, "cdjs", is mostly a faithful rewrite of the Java code into JavaScript.
4414 I got the Java code from https://www.cs.purdue.edu/sss/projects/cdx/.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004415
fpizlo@apple.com21d545d2015-06-19 23:49:38 +00004416 There are some differences:
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004417
fpizlo@apple.com21d545d2015-06-19 23:49:38 +00004418 - It uses RedBlackTree's for all sets and maps rather than hashtables. This is clearly
4419 more in the spirit of real-time than the CDx benchmark. FWIW, CDx used to use trees
4420 and I don't know why that changed in the latest version.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004421
fpizlo@apple.com21d545d2015-06-19 23:49:38 +00004422 - CDjs doesn't attempt to avoid memory allocations, unlike the real-time Java version.
4423 I wrote the code that I wanted to write for aesthetics, rather than the code that I
4424 would have written if I tried to write the fastest code possible. Again, I believe
4425 that this is in the spirit of CDj - it's meant to test what would happen if you wrote
4426 real-timey stuff in a high level language and actually took advantage of that
4427 language to be more productive.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004428
fpizlo@apple.com21d545d2015-06-19 23:49:38 +00004429 The test score reflects the average latency of the worst 10 samples out of 200 samples.
4430 The simulation uses 1000 aircraft, flying along paths that result in some detected
4431 collisions every once in a while. The benchmark validates its results by checking the
4432 total number of collisions detected.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004433
fpizlo@apple.com21d545d2015-06-19 23:49:38 +00004434 Apart from the integration into the JetStream harness, the CDjs directory contains a
4435 fully self-contained benchmark that could be run either in the jsc shell or in browser.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004436
fpizlo@apple.com21d545d2015-06-19 23:49:38 +00004437 This new code uses the same 3-clause BSD license as the Purdue code, and gives
4438 attribution to Purdue in almost all files. I believe that is appropriate since I wrote
4439 most of the JS files by looking at the Purdue Java code and trascribing to JavaScript.
4440 In some cases, I even copy-pasted the Java code, like the complicated math for
4441 four-dimensional intersections and voxel hashing.
4442
4443 * JetStream/CDjsSetup.js: Added.
4444 * JetStream/Octane2Setup.js:
4445 * JetStream/Reference.js:
4446 * JetStream/cdjs: Added.
4447 * JetStream/cdjs/benchmark.js: Added.
4448 (benchmark):
4449 * JetStream/cdjs/call_sign.js: Added.
4450 (CallSign):
4451 (CallSign.prototype.compareTo):
4452 (CallSign.prototype.toString):
4453 * JetStream/cdjs/collision.js: Added.
4454 (Collision):
4455 (Collision.prototype.toString):
4456 * JetStream/cdjs/collision_detector.js: Added.
4457 (CollisionDetector):
4458 (CollisionDetector.prototype.handleNewFrame.get for):
4459 (CollisionDetector.prototype.handleNewFrame):
4460 * JetStream/cdjs/constants.js: Added.
4461 * JetStream/cdjs/main.html: Added.
4462 * JetStream/cdjs/main.js: Added.
4463 * JetStream/cdjs/motion.js: Added.
4464 (Motion):
4465 (Motion.prototype.toString):
4466 (Motion.prototype.delta):
4467 (Motion.prototype.findIntersection):
4468 * JetStream/cdjs/motion_test.js: Added.
4469 (checkDoesIntersect):
4470 (checkDoesNotIntersect):
4471 (makeMotion):
4472 * JetStream/cdjs/red_black_tree.js: Added.
4473 (RedBlackTree):
4474 (RedBlackTree.):
4475 * JetStream/cdjs/red_black_tree_test.js: Added.
4476 (test):
4477 (test.):
4478 * JetStream/cdjs/reduce_collision_set.js: Added.
4479 (drawMotionOnVoxelMap):
4480 (drawMotionOnVoxelMap.):
4481 (.get reduceCollisionSet):
4482 * JetStream/cdjs/reduce_collision_set_test.js: Added.
4483 (makeMotion):
4484 (keys):
4485 (test):
4486 * JetStream/cdjs/simulator.js: Added.
4487 (Simulator):
4488 (Simulator.prototype.simulate):
4489 * JetStream/cdjs/util.js: Added.
4490 (compareNumbers):
4491 (averageAbovePercentile):
4492 (currentTime):
4493 (else.currentTime):
4494 * JetStream/cdjs/vector_2d.js: Added.
4495 (Vector2D):
4496 (Vector2D.prototype.plus):
4497 (Vector2D.prototype.minus):
4498 (Vector2D.prototype.toString):
4499 (Vector2D.prototype.compareTo):
4500 * JetStream/cdjs/vector_3d.js: Added.
4501 (Vector3D):
4502 (Vector3D.prototype.plus):
4503 (Vector3D.prototype.minus):
4504 (Vector3D.prototype.dot):
4505 (Vector3D.prototype.squaredMagnitude):
4506 (Vector3D.prototype.magnitude):
4507 (Vector3D.prototype.times):
4508 (Vector3D.prototype.as2D):
4509 (Vector3D.prototype.toString):
4510 * JetStream/create.rb:
4511 * JetStream/index-TEMPLATE.html:
4512 * JetStream/sunspider/cordic.js: Removed.
4513
jfernandez@igalia.coma84f2912015-06-17 16:13:49 +000045142015-06-17 Javier Fernandez <jfernandez@igalia.com>
4515
jfernandez@igalia.com7b417482015-06-17 16:45:07 +00004516 [CSS Grid Layout] We should add performance tests for stretching logic
4517 https://bugs.webkit.org/show_bug.cgi?id=146063
4518
4519 Reviewed by Sergio Villar Senin.
4520
4521 Added a new performance test for Grid Layout to ensure there are no
4522 regressions in the stretching alignment logic.
4523
4524 * Layout/fixed-grid-lots-of-stretched-data.html: Added.
4525
45262015-06-17 Javier Fernandez <jfernandez@igalia.com>
4527
jfernandez@igalia.coma84f2912015-06-17 16:13:49 +00004528 [CSS Grid Layout] Performance tests are using the old syntax
4529 https://bugs.webkit.org/show_bug.cgi?id=146061
4530
4531 Reviewed by Sergio Villar Senin.
4532
4533 Adapted tests to the new grid tracks definition syntax.
4534
4535 * Layout/auto-grid-lots-of-data.html:
4536 * Layout/fixed-grid-lots-of-data.html:
4537
fpizlo@apple.com42c56da2015-06-10 18:44:50 +000045382015-06-08 Filip Pizlo <fpizlo@apple.com>
4539
4540 JetStream should have a more rational story for jitter-oriented latency tests
4541 https://bugs.webkit.org/show_bug.cgi?id=145762
4542
4543 Reviewed by Geoffrey Garen.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004544
fpizlo@apple.com42c56da2015-06-10 18:44:50 +00004545 JetStream has some latency tests that are meant to measure jitter. Prior to this change, they
4546 did this by computing the RMS. But the RMS is a pretty bad metric. The thing that it rewards
4547 isn't really the thing that you'd want your browser to do. These RMS-based tests involve taking
4548 the geomean of the RMS of some samples and the sample average. The lower the geomean, the better
4549 (in the JetStream harness we then invert the scores so that higher is better, but let's ignore
4550 that for this discussion and assume that lower is better). Here's an example of how this can go
4551 bad. A browser that always computes a task in some horribly long time (say, 1000ms) but never
4552 varies that time will perform better than a browser that usually computes the task super quickly
4553 (say, 10ms) and sometimes just a little bit less quickly (say, 15ms). The former browser will
4554 have an RMS of 0 and an average of 1000. The latter will have a RMS somewhere around 3.5 and an
4555 average of 12.5 (assuming equal probability of 10ms and 15ms). The geomean of (0, 1000) is 0.
4556 The geomean of (3.5, 12.5) is 6.6. Lower is better, so the former browser scores higher - even
4557 though it's obviously never better to have a browser always complete a task in 1000ms when a
4558 different browser can do it in 15ms in the worst case.
4559
4560 JetStream should not have this pathology. The right way of avoiding it is to replace RMS with
4561 some other metric of how bad things get. A good metric is the average of the worst percentile.
4562 The worst 1% or the worst 5% would be good things to average. This will catch cases where the VM
4563 jittered due to JIT or GC, but it never have the pathology that we end up giving the better score
4564 to a VM whose best case is worst than another VM's worst case.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004565
fpizlo@apple.com42c56da2015-06-10 18:44:50 +00004566 For now, this change uses the highest samples above the 95% percentile. I'm not yet sure if that
4567 is the best thing - it might include too many scores that are around the best-case performance -
4568 but it's certainly better than RMS and it might be good enough to keep. But because of that
4569 uncertainty, I'm setting the version to be "1.1-alpha1" to indicate that we aren't ready to
4570 release this yet.
4571
4572 * JetStream/Octane2/base.js:
4573 (.this.Setup.setup.setup):
4574 (.this.TearDown.tearDown.tearDown):
4575 (BenchmarkSuite.GeometricMeanTime):
4576 (BenchmarkSuite.AverageAbovePercentile):
4577 (BenchmarkSuite.GeometricMeanLatency):
4578 (BenchmarkSuite.prototype.NotifyStep):
4579 (BenchmarkSuite.prototype.RunSingleBenchmark):
4580 * JetStream/Octane2/mandreel.js:
4581 (setupMandreel):
4582 (updateMandreelStats):
4583 (startMandreelTimer):
4584 (latencyMandreel):
4585 (tearDownMandreel):
4586 (RMSMandreel): Deleted.
4587 * JetStream/Octane2/splay.js:
4588 (GenerateKey):
4589 (SplayUpdateStats):
4590 (InsertNewNode):
4591 (SplayTearDown):
4592 (SplayRMS): Deleted.
4593 * JetStream/create.rb:
4594
zalan@apple.com66654b22015-06-03 20:34:00 +000045952015-06-03 Zalan Bujtas <zalan@apple.com>
4596
4597 Skip Dromaeo/jslib-modify-prototype.html for now.
4598
4599 Unreviewed gardening.
4600
4601 * Skipped:
4602
fpizlo@apple.comc8f36872015-05-05 02:40:28 +000046032015-05-04 Filip Pizlo <fpizlo@apple.com>
4604
4605 Large array shouldn't be slow
4606 https://bugs.webkit.org/show_bug.cgi?id=144617
4607
4608 Reviewed by Geoffrey Garen.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004609
fpizlo@apple.comc8f36872015-05-05 02:40:28 +00004610 Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
4611 SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
4612 long-running. So, hash-map sort of belongs here.
4613
4614 * LongSpider/hash-map.js: Added.
4615 (HashMap):
4616 (HashMap.):
4617 (.get var):
4618
commit-queue@webkit.orgb82598a2015-05-01 22:53:09 +000046192015-05-01 Dewei Zhu <dewei_zhu@apple.com>
4620
4621 Fix typo bug in Speedometer/resources/main.js
4622 https://bugs.webkit.org/show_bug.cgi?id=144504
4623
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004624 Reviewed by Ryosuke Niwa.
commit-queue@webkit.orgb82598a2015-05-01 22:53:09 +00004625
4626 * Speedometer/resources/main.js: Fix typo.
4627 (window.benchmarkClient.totalTimeInDisplayUnit):
4628
rniwa@webkit.org7481af82015-04-22 02:30:22 +000046292015-04-21 Ryosuke Niwa <rniwa@webkit.org>
4630
4631 Add JetStream to PerformanceTests
4632 https://bugs.webkit.org/show_bug.cgi?id=144024
4633
4634 Rubber-stamped by Filip Pizlo.
4635
4636 * JetStream: Added.
4637 * JetStream/JetStream-Logo.png: Added.
4638 * JetStream/JetStream-Logo@2x.png: Added.
4639 * JetStream/JetStream.css: Added.
4640 * JetStream/JetStreamDriver.js: Added.
4641 * JetStream/LICENSE.txt: Added.
4642 * JetStream/LLVM-test-suite-LICENSE.txt: Added.
4643 * JetStream/Octane: Added.
4644 * JetStream/Octane/base.js: Added.
4645 * JetStream/Octane/code-load.js: Added.
4646 * JetStream/Octane2: Added.
4647 * JetStream/Octane2/base.js: Added.
4648 * JetStream/Octane2/box2d.js: Added.
4649 * JetStream/Octane2/code-load.js: Added.
4650 * JetStream/Octane2/crypto.js: Added.
4651 * JetStream/Octane2/deltablue.js: Added.
4652 * JetStream/Octane2/earley-boyer.js: Added.
4653 * JetStream/Octane2/gbemu-part1.js: Added.
4654 * JetStream/Octane2/gbemu-part2.js: Added.
4655 * JetStream/Octane2/mandreel.js: Added.
4656 * JetStream/Octane2/navier-stokes.js: Added.
4657 * JetStream/Octane2/pdfjs.js: Added.
4658 * JetStream/Octane2/raytrace.js: Added.
4659 * JetStream/Octane2/regexp.js: Added.
4660 * JetStream/Octane2/richards.js: Added.
4661 * JetStream/Octane2/run.js: Added.
4662 * JetStream/Octane2/splay.js: Added.
4663 * JetStream/Octane2/typescript-compiler.js: Added.
4664 * JetStream/Octane2/typescript-input.js: Added.
4665 * JetStream/Octane2/typescript.js: Added.
4666 * JetStream/Octane2/zlib-data.js: Added.
4667 * JetStream/Octane2/zlib.js: Added.
4668 * JetStream/Octane2Setup.js: Added.
4669 * JetStream/OctaneSetup.js: Added.
4670 * JetStream/README: Added.
4671 * JetStream/Reference.js: Added.
4672 * JetStream/SimpleSetup.js: Added.
4673 * JetStream/SunSpiderSetup.js: Added.
4674 * JetStream/Swoosh.png: Added.
4675 * JetStream/Swoosh@2x.png: Added.
4676 * JetStream/TestingSetup.js: Added.
4677 * JetStream/create.rb: Added.
4678 * JetStream/docs: Added.
4679 * JetStream/docs/JetStreamBlogPost.html: Added.
4680 * JetStream/in-depth-TEMPLATE.html: Added.
4681 * JetStream/index-TEMPLATE.html: Added.
4682 * JetStream/simple: Added.
4683 * JetStream/simple/bigfib.cpp: Added.
4684 * JetStream/simple/bigfib.cpp.js: Added.
4685 * JetStream/simple/container.cpp: Added.
4686 * JetStream/simple/container.cpp.js: Added.
4687 * JetStream/simple/dry.c: Added.
4688 * JetStream/simple/dry.c.js: Added.
4689 * JetStream/simple/float-mm.c: Added.
4690 * JetStream/simple/float-mm.c.js: Added.
4691 * JetStream/simple/gcc-loops.cpp: Added.
4692 * JetStream/simple/gcc-loops.cpp.js: Added.
4693 * JetStream/simple/hash-map.js: Added.
4694 * JetStream/simple/n-body.c: Added.
4695 * JetStream/simple/n-body.c.js: Added.
4696 * JetStream/simple/quicksort.c: Added.
4697 * JetStream/simple/quicksort.c.js: Added.
4698 * JetStream/simple/towers.c: Added.
4699 * JetStream/simple/towers.c.js: Added.
4700 * JetStream/sunspider: Added.
4701 * JetStream/sunspider/3d-cube.js: Added.
4702 * JetStream/sunspider/3d-raytrace.js: Added.
4703 * JetStream/sunspider/base64.js: Added.
4704 * JetStream/sunspider/cordic.js: Added.
4705 * JetStream/sunspider/crypto-aes.js: Added.
4706 * JetStream/sunspider/crypto-md5.js: Added.
4707 * JetStream/sunspider/crypto-sha1.js: Added.
4708 * JetStream/sunspider/date-format-tofte.js: Added.
4709 * JetStream/sunspider/date-format-xparb.js: Added.
4710 * JetStream/sunspider/n-body.js: Added.
4711 * JetStream/sunspider/regex-dna.js: Added.
4712 * JetStream/sunspider/tagcloud.js: Added.
4713
commit-queue@webkit.org5156d3a2015-04-15 01:34:25 +000047142015-04-14 Said Abou-Hallawa <sabouhallawa@apple.com>
4715
4716 textPath layout performance improvement.
4717 https://bugs.webkit.org/show_bug.cgi?id=141570.
4718
4719 Reviewed by Darin Adler.
4720
4721 Cut down the time spent in traversing the path for text by 50%. Instead
4722 of traversing the path twice at a certain length: one time for the position
4723 and the second time for the angle, we can merge these two passes into one.
4724
4725 * SVG/TextOnPathSimple.html: Added.
4726 * SVG/resources/TextOnPathSimple.svg: Added.
4727
zalan@apple.com35112352015-04-13 18:04:55 +000047282015-04-13 Zalan Bujtas <zalan@apple.com>
4729
4730 Clear up the test content when test is done.
4731
4732 Unreviewed fix.
4733
4734 * Layout/simple-line-layout-innertext.html:
4735
zalan@apple.comc461d3e2015-04-09 18:57:33 +000047362015-04-09 Zalan Bujtas <zalan@apple.com>
4737
4738 Simple line layout(regression): Calling innerText on RenderFlow with multiple children is slow.
4739 https://bugs.webkit.org/show_bug.cgi?id=143554
4740
4741 Reviewed by Antti Koivisto.
4742
4743 Initialize render flow's segments only when the render flow changes in TextIterator.
4744 The included performance test shows 6x speedup. (from ~10 runs/sec to ~60 runs/sec)
4745
4746 * Layout/simple-line-layout-innertext.html: Added.
4747
cdumez@apple.comff36da62015-03-10 01:24:14 +000047482015-03-09 Chris Dumez <cdumez@apple.com>
4749
4750 [CG] Have Canvas use the IOSurfacePool
4751 https://bugs.webkit.org/show_bug.cgi?id=142417
4752 <rdar://problem/20044440>
4753
4754 Reviewed by Darin Adler.
4755
4756 Lower the number of different canvas sizes from 1000 to 100 so that
4757 the test does not require such a huge cache size. With 100, we now
4758 get over 90% cache hit rate with the default IOSurfacePool size.
4759
4760 * Canvas/reuse.html:
4761
commit-queue@webkit.org1c660672015-01-29 05:23:28 +000047622015-01-28 Said Abou-Hallawa <sabouhallawa@apple.com>
4763
4764 Poor performance on IE's Chalkboard benchmark.
4765 https://bugs.webkit.org/show_bug.cgi?id=140753.
4766
4767 Reviewed by Zalan Bujtas.
4768
4769 * SVG/UnderTheSeeBenchmark.html: Added
4770 * SVG/WorldcupBenchmark.html: Added.
4771 * SVG/resources/RenderAnimator.css: Added.
4772 * SVG/resources/RenderAnimator.js: Added.
4773 These are benchmarks for the SVG rendering. Mainly we want to measure how fast
4774 the SVG rendering will be when only a small part of it is drawn.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004775
ggaren@apple.com59604642015-01-21 22:49:45 +000047762015-01-21 Geoffrey Garen <ggaren@apple.com>
4777
4778 bmalloc: support aligned allocation
4779 https://bugs.webkit.org/show_bug.cgi?id=140732
4780
4781 Reviewed by Andreas Kling.
4782
4783 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
4784 * MallocBench/MallocBench/Benchmark.cpp:
4785 * MallocBench/MallocBench/memalign.cpp:
4786 (test):
4787 (benchmark_memalign): Added a test for specific interesting memalign values.
4788
4789 * MallocBench/MallocBench/stress_aligned.cpp: Added.
4790 (benchmark_stress_aligned):
4791 * MallocBench/MallocBench/stress_aligned.h: Added. Added a stress test
4792 for arbitrary memalign values.
4793
ggaren@apple.com0cd1f462015-01-17 00:10:59 +000047942015-01-16 Geoffrey Garen <ggaren@apple.com>
4795
4796 bmalloc: added the tiniest bit of testing for aligned allocation
4797 https://bugs.webkit.org/show_bug.cgi?id=140573
4798
4799 Reviewed by Andreas Kling.
4800
4801 Just good enoug to catch two bugs in a preliminary implementation.
4802
4803 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
4804 * MallocBench/MallocBench/Benchmark.cpp:
4805 * MallocBench/MallocBench/mbmalloc.cpp:
4806 * MallocBench/MallocBench/mbmalloc.h:
4807 * MallocBench/MallocBench/memalign.cpp: Added.
4808 (benchmark_memalign):
4809 * MallocBench/MallocBench/memalign.h: Added.
4810
mmaxfield@apple.comebb43812014-12-10 02:19:48 +000048112014-12-09 Myles C. Maxfield <mmaxfield@apple.com>
4812
4813 Add performance test related to font fallback
4814 https://bugs.webkit.org/show_bug.cgi?id=139332
4815
4816 Reviewed by Simon Fraser.
4817
4818 * Layout/font-fallback.html: Added.
4819 * Layout/resources/font-fallback.html: Added.
4820
dino@apple.com52b62212014-12-09 01:31:37 +000048212014-12-08 Dean Jackson <dino@apple.com>
4822
4823 [Apple] Use Accelerate framework to speed-up FEGaussianBlur
4824 https://bugs.webkit.org/show_bug.cgi?id=139310
4825
4826 Reviewed by Simon Fraser.
4827
4828 Add an interactive performance test that measures the speed of a set
4829 of blur operations on a generated images.
4830
4831 * Interactive/blur-filter-timing.html: Added.
4832
zalan@apple.com37e73212014-11-13 18:52:55 +000048332014-11-13 Zalan Bujtas <zalan@apple.com>
4834
4835 Simple line layout: Add performance test case to measure line layout speed of monolithic text content.
4836 https://bugs.webkit.org/show_bug.cgi?id=138699
4837
4838 Reviewed by Antti Koivisto.
4839
4840 * Layout/line-layout-long-long-text.html: Added.
4841
zalan@apple.come09fc0e2014-10-22 14:59:00 +000048422014-10-22 Zalan Bujtas <zalan@apple.com>
4843
4844 Speed up line parsing for simple line layout (part I)
4845 https://bugs.webkit.org/show_bug.cgi?id=137275
4846
4847 Reviewed by Antti Koivisto.
4848
4849 Extend simple line layout performance test with a few more cases.
4850 Now we've got:
4851 <div center
4852 <div right
4853 <div justify
4854 <div white-space: pre (new)
4855 <div overflow-wrap: break-word (new)
4856 <pre
4857 <pre white-space: pre-wrap
4858 <pre white-space: pre-line (new)
4859 <pre white-space: nowrap (new)
4860 <pre white-space: pre-wrap overflow-wrap: break-word
4861 <div + embedded <span etc.
4862 <div + br
4863
4864 * Layout/line-layout-simple.html:
4865
abucur@adobe.comb72c9e32014-10-15 13:37:16 +000048662014-10-15 Andrei Bucur <abucur@adobe.com>
4867
4868 [Multicol] Start adding performance tests for the multi-column implementation
4869 https://bugs.webkit.org/show_bug.cgi?id=137687
4870
4871 Reviewed by Mihnea Ovidenie.
4872
4873 This patch creates a Multicol folder inside the Layout performance tests suite. It adds only two tests
4874 as described below.
4875
4876 The tests are skipped until the implementation stabilizes.
4877
4878 * Layout/Multicol/MulticolManyColumns.html: Added.
4879 This test verifies the performance of the multi-column implementation with two nested multi-column
4880 containers, the first having 20 columns and the second 10 columns.
4881
4882 * Layout/Multicol/MulticolNested.html: Added.
4883 This test verifies the performance of nesting multi-column containers in the presence
4884 of floats.
4885
4886 * Layout/Multicol/resources/multicol-content-many-columns.html: Added.
4887 * Layout/Multicol/resources/multicol-content-nested.html: Added.
4888 * Skipped: Skip the Multicol folder for now.
4889
fpizlo@apple.comcaf97612014-09-30 21:11:57 +000048902014-09-29 Filip Pizlo <fpizlo@apple.com>
4891
4892 It should be fun and easy to run every possible JavaScript benchmark from the command line
4893 https://bugs.webkit.org/show_bug.cgi?id=137245
4894
4895 Reviewed by Oliver Hunt.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00004896
fpizlo@apple.comcaf97612014-09-30 21:11:57 +00004897 This adds the scaffolding for running Octane version 2 inside run-jsc-benchmarks.
4898 In the future we should just land Octane2 in this directory, and run-jsc-benchmarks
4899 should be changed to point directly at this directory instead of requiring the
4900 Octane path to be configured as part of the configuration file.
4901
4902 * Octane: Added.
4903 * Octane/wrappers: Added.
4904 * Octane/wrappers/jsc-box2d.js: Added.
4905 (jscSetUp):
4906 (jscTearDown):
4907 (jscRun):
4908 * Octane/wrappers/jsc-boyer.js: Added.
4909 (jscSetUp):
4910 (jscTearDown):
4911 (jscRun):
4912 * Octane/wrappers/jsc-closure.js: Added.
4913 (jscSetUp):
4914 (jscTearDown):
4915 (jscRun):
4916 * Octane/wrappers/jsc-decrypt.js: Added.
4917 (jscSetUp):
4918 (jscTearDown):
4919 (jscRun):
4920 * Octane/wrappers/jsc-deltablue.js: Added.
4921 (jscSetUp):
4922 (jscTearDown):
4923 (jscRun):
4924 * Octane/wrappers/jsc-earley.js: Added.
4925 (jscSetUp):
4926 (jscTearDown):
4927 (jscRun):
4928 * Octane/wrappers/jsc-encrypt.js: Added.
4929 (jscSetUp):
4930 (jscTearDown):
4931 (jscRun):
4932 * Octane/wrappers/jsc-gbemu.js: Added.
4933 (jscSetUp):
4934 (jscTearDown):
4935 (jscRun):
4936 * Octane/wrappers/jsc-jquery.js: Added.
4937 (jscSetUp):
4938 (jscTearDown):
4939 (jscRun):
4940 * Octane/wrappers/jsc-mandreel.js: Added.
4941 (jscSetUp):
4942 (jscTearDown):
4943 (jscRun):
4944 * Octane/wrappers/jsc-navier-stokes.js: Added.
4945 (jscSetUp):
4946 (jscTearDown):
4947 (jscRun):
4948 * Octane/wrappers/jsc-pdfjs.js: Added.
4949 (jscSetUp.PdfJS_window.console.log):
4950 (jscSetUp):
4951 (jscTearDown):
4952 (jscRun):
4953 * Octane/wrappers/jsc-raytrace.js: Added.
4954 (jscSetUp):
4955 (jscTearDown):
4956 (jscRun):
4957 * Octane/wrappers/jsc-regexp.js: Added.
4958 (jscSetUp):
4959 (jscTearDown):
4960 (jscRun):
4961 * Octane/wrappers/jsc-richards.js: Added.
4962 (jscSetUp):
4963 (jscTearDown):
4964 (jscRun):
4965 * Octane/wrappers/jsc-splay.js: Added.
4966 (jscSetUp):
4967 (jscTearDown):
4968 (jscRun):
4969 * Octane/wrappers/jsc-typescript.js: Added.
4970 (jscSetUp):
4971 (jscTearDown):
4972 (jscRun):
4973 * Octane/wrappers/jsc-zlib.js: Added.
4974 (jscSetUp):
4975 (jscTearDown):
4976 (jscRun):
4977
commit-queue@webkit.org903436d2014-09-28 23:18:25 +000049782014-09-28 Sungmann Cho <sungmann.cho@navercorp.com>
4979
4980 Fix some minor typos: psuedo -> pseudo
4981 https://bugs.webkit.org/show_bug.cgi?id=137192
4982
4983 Reviewed by Alexey Proskuryakov.
4984
4985 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js:
4986
ggaren@apple.comc685adc2014-09-11 19:33:47 +000049872014-09-11 Geoffrey Garen <ggaren@apple.com>
4988
4989 Some MallocBench refinements
4990 https://bugs.webkit.org/show_bug.cgi?id=136750
4991
4992 Reviewed by Sam Weinig.
4993
4994 * MallocBench/MallocBench/Interpreter.cpp:
4995 (Interpreter::run): Allow for null entries in the object list so that
4996 we can test in modes that exclude large or small allocations.
4997
4998 * MallocBench/MallocBench/churn.cpp:
4999 (benchmark_churn):
5000 * MallocBench/MallocBench/flickr.cpp:
5001 (benchmark_flickr):
5002 * MallocBench/MallocBench/fragment.cpp:
5003 (benchmark_fragment_iterate):
5004 * MallocBench/MallocBench/list.cpp:
5005 (benchmark_list_allocate):
5006 * MallocBench/MallocBench/reddit.cpp:
5007 (benchmark_reddit): Updated test runtimes to weight them more equally,
5008 for the sake of arithmetic mean.
5009
5010 * MallocBench/MallocBench/stress.cpp:
5011 (Object::Object):
5012 (allocate):
5013 (deallocate):
5014 (benchmark_stress): Verify the contents of memory as we go. Also,
5015 force scavenging each time through the loop to test the scavenging path.
5016
5017 * MallocBench/MallocBench/theverge.cpp:
5018 (benchmark_theverge):
5019 * MallocBench/MallocBench/tree.cpp:
5020 (benchmark_tree_churn): Re-weighted, as above.
5021
mmaxfield@apple.com42dddcc2014-09-09 02:31:21 +000050222014-09-08 Myles C. Maxfield <mmaxfield@apple.com>
5023
5024 PerformanceTests/SVG/SVG-Text.html has unparsable output
5025 https://bugs.webkit.org/show_bug.cgi?id=136648
5026
5027 Reviewed by Gavin Barraclough.
5028
5029 I need to clean up the arbitrary text on the page before telling
5030 the test runner infrastructure that the test is complete.
5031
5032 * SVG/SVG-Text.html:
5033
mmaxfield@apple.combf1bae42014-09-06 04:14:15 +000050342014-09-05 Myles C. Maxfield <mmaxfield@apple.com>
5035
5036 Laying out a TextRun using an SVG font is O(n^2)
5037 https://bugs.webkit.org/show_bug.cgi?id=136584
5038
5039 Reviewed by Andreas Kling.
5040
5041 Time how long it takes to lay out and render some text using an SVG font.
5042
5043 * SVG/SVG-Text.html: Added.
5044 * SVG/resources/graffiti.svg: Added.
5045
ggaren@apple.com0814f372014-09-03 20:59:58 +000050462014-09-02 Geoffrey Garen <ggaren@apple.com>
5047
5048 MallocBench should have a stress test for correctness
5049 https://bugs.webkit.org/show_bug.cgi?id=136468
5050
5051 Reviewed by Andreas Kling.
5052
5053 Added a stress test that allocates randomized sizes of randomized
5054 lifetimes in randomized order.
5055
5056 This version of the test reproduces the EWS crash seen in bmalloc
5057 (<https://bugs.webkit.org/show_bug.cgi?id=132629>).
5058
5059 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
5060 * MallocBench/MallocBench/Benchmark.cpp: Sort!
5061 * MallocBench/MallocBench/stress.cpp: Added.
5062 (Object::Object):
5063 (SizeStream::SizeStream):
5064 (SizeStream::next):
5065 (benchmark_stress): Usually, we random(0). Surprisingly, though, only
5066 random(1) reproduces the bug I was looking for.
5067 * MallocBench/MallocBench/stress.h: Added.
5068
rniwa@webkit.orgfc5f0252014-06-02 19:57:39 +000050692014-06-02 Ryosuke Niwa <rniwa@webkit.org>
5070
5071 Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
5072 https://bugs.webkit.org/show_bug.cgi?id=133455
5073
5074 Reviewed by Timothy Hatcher.
5075
rniwa@webkit.orgb452da52014-06-02 20:08:52 +00005076 * Speedometer/: Renamed from DoYouEvenBench.
5077 * Skipped: Updated the path for InteractiveRunner.html
5078
50792014-06-02 Ryosuke Niwa <rniwa@webkit.org>
5080
5081 Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
5082 https://bugs.webkit.org/show_bug.cgi?id=133455
5083
5084 Reviewed by Timothy Hatcher.
5085
rniwa@webkit.orgfc5f0252014-06-02 19:57:39 +00005086 Renamed the benchmark to Speedometer and added the new look designed by Timothy Hatcher.
5087
5088 Also changed the unit of measurements from milliseconds to runs-per-minute averaged over the number
5089 of the benchmark suites (7 for 1.0). You can divide 420000 by the old benchmark score (in milliseconds)
5090 to get the new value for the set of tests that are enabled by default in 1.0. You can continue to see
5091 results in milliseconds on Full.html#ms.
5092
5093 * DoYouEvenBench/Full.html: Added a bunch of sections and the description of the benchmark.
5094
5095 * DoYouEvenBench/resources/benchmark-report.js: Remove the newly added content when ran inside a DRT or
5096 WTR so that run-perf-tests wouldn't error.
5097 * DoYouEvenBench/resources/benchmark-runner.js:
5098 (BenchmarkRunner.prototype._appendFrame): Call a newly added willAddTestFrame callback when it exists.
5099
5100 * DoYouEvenBench/resources/gauge.png: Added.
5101 * DoYouEvenBench/resources/gauge@2x.png: Added.
5102 * DoYouEvenBench/resources/logo.png: Added.
5103 * DoYouEvenBench/resources/logo@2x.png: Added.
5104 * DoYouEvenBench/resources/main.css: Replaced the style.
5105
5106 * DoYouEvenBench/resources/main.js:
5107 (window.benchmarkClient.willAddTestFrame): Place the iframe right where #testContainer is shown.
5108 (window.benchmarkClient.willRunTest): Show the name of the suite (e.g. EmberJS-TodoMVC) to run next.
5109 (window.benchmarkClient.didRunSuites):
5110 (window.benchmarkClient.willStartFirstIteration): Initialize _timeValues and _finishedTestCount now that
5111 we have an UI to run the benchmark multiple times without reloading the page.
5112 (window.benchmarkClient.didFinishLastIteration): Split into smaller pieces.
5113 (window.benchmarkClient._computeResults): Computes the mean and the statistics for the given time values,
5114 and also format them in a human readable form.
5115 (window.benchmarkClient._computeResults.totalTimeInDisplayUnit): Converts ms to runs/min.
5116 (window.benchmarkClient._computeResults.sigFigFromPercentDelta): Given a percentage error (e.g. 1%),
5117 returns the number of significant digits required for the mean.
5118 (window.benchmarkClient._computeResults.toSigFigPrecision): Calls toPrecision with the specified precision
5119 constrained to be at least the number of non-decimal digits and at most 6.
5120 (window.benchmarkClient._addDetailedResultsRow): Renamed from _addResult. It now takes the table to which
5121 to add a row and the iteration number.
5122 (window.benchmarkClient._updateGaugeNeedle): Added. Controls the angle of the speed indicator.
5123 (window.benchmarkClient._populateDetailedResults): Added.
5124 (window.benchmarkClient.prepareUI): Added. It adds an event listener to show a specified section when
5125 the push state of the document changes, and shows a warning sign when the view port size is too small.
5126 We do this inside a callback to avoid running it inside DRT / WTR.
5127 (startBenchmark):
5128 (showSection): Added.
5129 (startTest): Added.
5130 (showResultsSummary): Added.
5131 (showResultDetails): Added.
5132 (showAbout): Added.
5133
rniwa@webkit.org64516062014-06-01 13:44:32 +000051342014-06-01 Ryosuke Niwa <rniwa@webkit.org>
5135
rniwa@webkit.org424e09b2014-06-01 21:12:00 +00005136 DYEBench: Move test states into benchmarkClient and remove the closure
5137 https://bugs.webkit.org/show_bug.cgi?id=133438
5138
5139 Reviewed by Benjamin Poulain.
5140
5141 Moved all local variables in the closure wrapping benchmarkClient onto the object itself
5142 and removed the closure to improve the readability of the code.
5143
5144 * DoYouEvenBench/Full.html:
5145 * DoYouEvenBench/resources/main.js:
5146 (window.benchmarkClient.willRunTest):
5147 (window.benchmarkClient.didRunTest):
5148 (window.benchmarkClient.didRunSuites):
5149 (window.benchmarkClient.willStartFirstIteration):
5150 (window.benchmarkClient.didFinishLastIteration):
5151 (window.benchmarkClient._addResult): Moved.
5152 (.): Deleted.
5153
51542014-06-01 Ryosuke Niwa <rniwa@webkit.org>
5155
rniwa@webkit.org960e5eb2014-06-01 20:38:55 +00005156 DYEBench: Split stylesheets and scripts in Full.html into separate files
5157 https://bugs.webkit.org/show_bug.cgi?id=133437
5158
5159 Reviewed by Benjamin Poulain.
5160
5161 Extracted main.js and main.css.
5162
5163 Also fixed a bug in startBenchmark that disabled suites were counted towards the total number of tests.
5164
5165 * DoYouEvenBench/Full.html:
5166 * DoYouEvenBench/resources/main.css: Added.
5167 * DoYouEvenBench/resources/main.js: Added.
5168 (.addResult):
5169 (window.benchmarkClient):
5170 (startBenchmark): Renamed from startTest.
5171
51722014-06-01 Ryosuke Niwa <rniwa@webkit.org>
5173
rniwa@webkit.org64516062014-06-01 13:44:32 +00005174 DYEBench: CSS parser warning at line 106 of base.css
5175 https://bugs.webkit.org/show_bug.cgi?id=133433
5176
5177 Reviewed by Maciej Stachowiak.
5178
5179 Removed the old filter CSS property for Internet Explorer. The latest Internet Explorer supports -ms-linear-gradient
5180 on background CSS property anyways.
5181
5182 It's interesting that some of the tests only have -webkit- prefixes. Perhaps we should update those subtests.
5183
5184 * DoYouEvenBench/Full.html:
5185 * DoYouEvenBench/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css:
5186 (#header:before):
5187 * DoYouEvenBench/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css:
5188 (#header:before):
5189 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
5190 (#header:before):
5191 * DoYouEvenBench/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css:
5192 (#header:before):
5193 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css:
5194 (#header:before):
5195 * DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css:
5196 (#header:before):
5197 * DoYouEvenBench/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css:
5198 (#header:before):
5199
rniwa@webkit.org629202f2014-06-01 03:04:10 +000052002014-05-31 Ryosuke Niwa <rniwa@webkit.org>
5201
rniwa@webkit.org29afd0e2014-06-01 07:01:52 +00005202 DYEBench: Ember.js assertion hit at line 20593
5203 https://bugs.webkit.org/show_bug.cgi?id=133431
5204
5205 Reviewed by Darin Adler.
5206
5207 The assertion was hit because ToDoMVC includes jQuery 2.1 and Ember.js 1.3.1 only recognizes jQuery 2.0.
5208 Port the assertion from Ember.js 1.5.1 to suppress the assertion.
5209
5210 We should update the entire Ember.js at some point but this would do the job for now.
5211
5212 * DoYouEvenBench/Full.html:
5213 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:
5214
52152014-05-31 Ryosuke Niwa <rniwa@webkit.org>
5216
rniwa@webkit.org629202f2014-06-01 03:04:10 +00005217 DYEBench: Prevent frame flattening on iOS
5218 https://bugs.webkit.org/show_bug.cgi?id=133428
5219
5220 Reviewed by Andreas Kling.
5221
5222 Prevent frame flattening on iOS by setting scrolling=no.
5223
5224 * DoYouEvenBench/Full.html:
5225 * DoYouEvenBench/resources/benchmark-runner.js:
5226 (BenchmarkRunner.prototype._appendFrame):
5227
rniwa@webkit.org5431f972014-05-31 05:12:21 +000052282014-05-30 Ryosuke Niwa <rniwa@webkit.org>
5229
5230 DYEBench spits out 404 errors for learn.json
5231 https://bugs.webkit.org/show_bug.cgi?id=133416
5232
5233 Reviewed by Oliver Hunt.
5234
5235 Add an empty learn.json file so that it won't cause a 404 error when hosted on a http server.
5236
5237 Bumped the version number to 0.12.
5238
5239 * DoYouEvenBench/Full.html:
5240 * DoYouEvenBench/resources/todomvc/learn.json:
5241
ggaren@apple.com11f9a642014-05-23 22:37:30 +000052422014-05-23 Geoffrey Garen <ggaren@apple.com>
5243
5244 Performance testing, diamond-square terrain generation + canvas
5245 https://bugs.webkit.org/show_bug.cgi?id=133054
5246
5247 Reviewed by Ryosuke Niwa.
5248
5249 This test was written by Hunter Loftis. It originally appeared on his
5250 blog @ <http://www.playfuljs.com/realistic-terrain-in-130-lines/>.
5251
5252 I did a bit of editing for format and benchmark suitability.
5253
5254 * Canvas/terrain.html: Added.
5255
rniwa@webkit.org25e02ad2014-05-13 21:08:10 +000052562014-05-13 Ryosuke Niwa <rniwa@webkit.org>
5257
5258 DYEBench should run 20 iterations in browser
5259 https://bugs.webkit.org/show_bug.cgi?id=132795
5260
5261 Reviewed by Gavin Barraclough.
5262
5263 Right now, run-perf-tests runs BYEBench 4 times with different instances of DRT/WTR to get
5264 a more stable time and account for differences in the runtime environment, particularly,
5265 ASLR (Address Space Layout Randomization).
5266
5267 While we can't account for the latter effect when the benchmark is ran inside a browser,
5268 we can at least run 20 iterations to get a more stable (but perhaps biased by ALSR) number.
5269
5270 While the sample size of 20 is statistically unsound to compute the arithmetic mean from,
5271 it's MUCH better than the current sample size of 5.
5272
5273 * DoYouEvenBench/Full.html:
5274 (benchmarkClient.iterationCount): Set the default iteration count to 20.
5275 (startTest): Use benchmarkClient.iterationCount as the iteration count.
5276 * DoYouEvenBench/resources/benchmark-report.js:
5277 (benchmarkClient.iterationCount): Continue to use the old iteration count of 5 when ran
5278 inside run-perf-tests.
5279
rniwa@webkit.org7ba8b502014-05-10 01:23:43 +000052802014-05-09 Ryosuke Niwa <rniwa@webkit.org>
5281
5282 DYEBench should show 95th percentile right next to the mean with ±
5283 https://bugs.webkit.org/show_bug.cgi?id=132729
5284
5285 Reviewed by Darin Adler.
5286
5287 Before this patch, Full.html showed the 95th percentile delta for the arthemtic mean in a separate row
5288 but this was confusing for some people. Show it right next to mean in the same row separated by ±.
5289
5290 * DoYouEvenBench/Full.html:
5291
rniwa@webkit.org581a97b2014-05-09 06:01:06 +000052922014-05-08 Ryosuke Niwa <rniwa@webkit.org>
5293
5294 DYEBench should use TodoMVC to test FlightJS for consistency
5295 https://bugs.webkit.org/show_bug.cgi?id=132727
5296
5297 Reviewed by Andreas Kling.
5298
5299 Add a test suite for the FlightJS version of TodoMVC, and disable FlightJS-MailClient by default.
5300
5301 I initially intended to include a wider variety of demo apps in DYEBench
5302 but that's not happening any time soon so let us use TodoMVC for all frameworks for now.
5303
5304 We can add more demo apps in v2.
5305
5306 * DoYouEvenBench/Full.html: Increment the version to 0.10.
5307 * DoYouEvenBench/InteractiveRunner.html: Don't check disabled suites by default.
5308 * DoYouEvenBench/resources/tests.js:
5309 * DoYouEvenBench/resources/todomvc/dependency-examples: Added.
5310 * DoYouEvenBench/resources/todomvc/dependency-examples/flight: Added.
5311 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/.gitignore: Added.
5312 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/.jshintrc: Added.
5313 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app: Added.
5314 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js: Added.
5315 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/app.js: Added.
5316 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data: Added.
5317 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/stats.js: Added.
5318 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/todos.js: Added.
5319 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/main.js: Added.
5320 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/store.js: Added.
5321 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui: Added.
5322 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js: Added.
5323 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js: Added.
5324 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js: Added.
5325 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js: Added.
5326 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js: Added.
5327 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js: Added.
5328 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/utils.js: Added.
5329 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates: Added.
5330 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/stats.html: Added.
5331 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/todo.html: Added.
5332 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower.json: Added.
5333 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components: Added.
5334 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot: Added.
5335 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js: Added.
5336 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim: Added.
5337 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js: Added.
5338 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Added.
5339 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight: Added.
5340 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib: Added.
5341 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js: Added.
5342 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js: Added.
5343 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js: Added.
5344 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Added.
5345 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js: Added.
5346 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Added.
5347 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Added.
5348 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js: Added.
5349 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js: Added.
5350 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery: Added.
5351 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Added.
5352 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs: Added.
5353 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text: Added.
5354 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js: Added.
5355 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js: Added.
5356 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common: Added.
5357 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Added.
5358 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js: Added.
5359 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Added.
5360 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/index.html: Added.
5361 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/karma.conf.js: Added.
5362 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/package.json: Added.
5363 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/readme.md: Added.
5364 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test: Added.
5365 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/.jshintrc: Added.
5366 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture: Added.
5367 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Added.
5368 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Added.
5369 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Added.
5370 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock: Added.
5371 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Added.
5372 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec: Added.
5373 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data: Added.
5374 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Added.
5375 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Added.
5376 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui: Added.
5377 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Added.
5378 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Added.
5379 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Added.
5380 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/test-main.js: Added.
5381
rego@igalia.comabf22d22014-05-07 09:56:14 +000053822014-05-07 Manuel Rego Casasnovas <rego@igalia.com>
5383
5384 [CSS Grid Layout] Remove runtime feature
5385 https://bugs.webkit.org/show_bug.cgi?id=132382
5386
5387 Reviewed by Benjamin Poulain.
5388
5389 Remove set of WebKitCSSGridLayoutEnabled preference.
5390
5391 * Layout/auto-grid-lots-of-data.html:
5392 * Layout/fixed-grid-lots-of-data.html:
5393
stavila@adobe.comb0854422014-05-06 19:48:53 +000053942014-05-06 Radu Stavila <stavila@adobe.com>
5395
5396 [CSSRegions] Enabled regions performance tests by default
5397 https://bugs.webkit.org/show_bug.cgi?id=128244
5398
5399 Reviewed by Andreas Kling.
5400
5401 Enabled regions performance tests.
5402
5403 * Skipped:
5404
akling@apple.comb14c4c92014-04-26 03:30:52 +000054052014-04-25 Andreas Kling <akling@apple.com>
5406
5407 Bump jQuery to same version that dromaeo.com uses.
5408
5409 Rubber-stamped by Ryosuke Niwa.
5410
5411 * Dromaeo/resources/dromaeo/web/lib/jquery-1.10.2.min.js: Added.
5412 * Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html:
5413 * Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html:
5414 * Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html:
5415 * Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:
5416 * Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html:
5417 * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html:
5418
ggaren@apple.come1e0cdf2014-04-18 20:46:18 +000054192014-04-18 Geoffrey Garen <ggaren@apple.com>
5420
ggaren@apple.comcfd146b2014-04-18 22:31:34 +00005421 Added some more Membuster recordings to MallocBench
5422 https://bugs.webkit.org/show_bug.cgi?id=131862
5423
5424 Reviewed by Sam Weinig.
5425
5426 * MallocBench/MallocBench/Benchmark.cpp:
5427 (Benchmark::Benchmark):
5428 (Benchmark::run):
5429 * MallocBench/MallocBench/Benchmark.h:
5430 * MallocBench/MallocBench/CommandLine.cpp:
5431 * MallocBench/MallocBench/CommandLine.h:
5432 (CommandLine::runs): Added a --runs option, so we can specify zero runs
5433 for memory warning benchmarks. Those benchmarks want zero runs so that
5434 they can perform a single warmup, which does not free all allocated
5435 objects, and then see how far back to 0MB they can get. Running multiple
5436 times would accumulate leaks, which is not representative of the
5437 simulated scenario.
5438
5439 * MallocBench/MallocBench/Interpreter.cpp:
5440 (Interpreter::Interpreter):
5441 (Interpreter::run):
5442 * MallocBench/MallocBench/Interpreter.h: Support not deallocating all
5443 objects allocated during the recording, so we can do low memory warning
5444 memory use measurements, as above.
5445
5446 * MallocBench/MallocBench/flickr.cpp:
5447 (benchmark_flickr_memory_warning):
5448 * MallocBench/MallocBench/main.cpp:
5449 (main):
5450 * MallocBench/MallocBench/reddit.cpp:
5451 (benchmark_reddit_memory_warning):
5452 * MallocBench/MallocBench/theverge.cpp:
5453 (benchmark_theverge_memory_warning): Adopt the API above.
5454
5455 * MallocBench/run-malloc-benchmarks: I took a first pass at listing all
5456 available benchmarks here. Then I commented out the benchmarks that
5457 probably aren't reasonable to run by default.
5458
54592014-04-18 Geoffrey Garen <ggaren@apple.com>
5460
ggaren@apple.come1e0cdf2014-04-18 20:46:18 +00005461 MallocBench: removed the --measure-heap option
5462 https://bugs.webkit.org/show_bug.cgi?id=131854
5463
5464 Reviewed by Sam Weinig.
5465
5466 As of <https://bugs.webkit.org/show_bug.cgi?id=131661>, measuring the
5467 heap is fast, so there's no reason to disable it.
5468
5469 * MallocBench/MallocBench/Benchmark.cpp:
5470 (Benchmark::Benchmark):
5471 (Benchmark::run):
5472 (Benchmark::printReport):
5473 * MallocBench/MallocBench/Benchmark.h:
5474 * MallocBench/MallocBench/CommandLine.cpp:
5475 (CommandLine::printUsage):
5476 * MallocBench/MallocBench/CommandLine.h:
5477 (CommandLine::heapSize):
5478 (CommandLine::measureHeap): Deleted.
5479 * MallocBench/MallocBench/main.cpp:
5480 (main):
5481
achicu@adobe.com020d6eb2014-04-17 01:00:26 +000054822014-04-16 Alexandru Chiculita <achicu@adobe.com>
5483
5484 Improve performance of the RenderLayerCompositor::OverlapMap
5485 https://bugs.webkit.org/show_bug.cgi?id=115063
5486
5487 Reviewed by Simon Fraser.
5488
5489 Testing the performance of computing the overlap of 5000 layers.
5490
5491 * Layout/layers_overlap_2d.html: Added. Using non-composited layers, to check
5492 that the performance on the non-composited path is not changing with this patch.
5493 * Layout/layers_overlap_3d.html: Added. Records the time to do the layout of 5000
5494 non-overlapping 3D layers.
5495
zoltan@webkit.org79556942014-04-15 17:52:10 +000054962014-04-15 Zoltan Horvath <zoltan@webkit.org>
5497
5498 [CSS Shapes] Linking stylesheet instead of inline style definition has ruined ShapesRegions test
5499 https://bugs.webkit.org/show_bug.cgi?id=131572
5500
5501 Reviewed by Rob Buis.
5502
5503 In r167022 I moved the common CSS selectors into RegionsShapes.css, then I linked it into the perf test
5504 files, but the measurement results dropped down from about 400ms to 10ms. I realized it's caused by the
5505 linked css rule, so I've put the selectors back into every test case, which fixes the test measurements.
5506
5507 * Layout/Shapes/resources/RegionsShapes.css: Removed.
5508 * Layout/Shapes/resources/RegionsShapesContent.html:
5509 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html:
5510 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html:
5511 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html:
5512 * Layout/Shapes/resources/RegionsShapesContentNoShapes.html:
5513
ggaren@apple.com79011012014-04-14 19:11:50 +000055142014-04-14 Geoffrey Garen <ggaren@apple.com>
5515
ggaren@apple.comc1086e42014-04-15 03:52:39 +00005516 MallocBench should scavenge explicitly instead of waiting
5517 https://bugs.webkit.org/show_bug.cgi?id=131661
5518
5519 Reviewed by Andreas Kling.
5520
5521 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Don't build mbmalloc
5522 by default because it will overwrite any other mbmalloc you're working
5523 with in the WebKitBuild directory.
5524
5525 * MallocBench/MallocBench/Benchmark.cpp:
5526 (Benchmark::run): Scavenge explicitly instead of waiting. This is faster,
5527 and it's the only way to get FastMalloc to scavenge. (That's a bug in
5528 FastMalloc, but we don't want it to interfere with broader testing.)
5529
5530 * MallocBench/MallocBench/mbmalloc.cpp:
5531 * MallocBench/MallocBench/mbmalloc.h: Added a scavenge implementation
5532 for system malloc.
5533
55342014-04-14 Geoffrey Garen <ggaren@apple.com>
5535
ggaren@apple.com79011012014-04-14 19:11:50 +00005536 A few MallocBench record/replay fixes
5537 https://bugs.webkit.org/show_bug.cgi?id=131627
5538
5539 Reviewed by Andreas Kling.
5540
5541 * MallocBench/MallocBench/Interpreter.cpp:
5542 (Interpreter::run): Accept 0-sized allocations without asserting because
5543 WebKit does that sometimes.
5544
5545 * MallocBench/MallocBench/flickr.ops:
5546 * MallocBench/MallocBench/flickr_memory_warning.ops:
5547 * MallocBench/MallocBench/reddit.ops:
5548 * MallocBench/MallocBench/reddit_memory_warning.ops:
5549 * MallocBench/MallocBench/theverge.ops:
5550 * MallocBench/MallocBench/theverge_memory_warning.ops: Updated these
5551 recordings because a bug in the recording mechanism caused one out of
5552 every few thousand slot values to be bogus.
5553
ggaren@apple.comf4bc1dc2014-04-13 23:21:20 +000055542014-04-13 Geoffrey Garen <ggaren@apple.com>
5555
ggaren@apple.com58eb40e2014-04-14 00:02:08 +00005556 Added some website recordings to MallocBench -- taken from Membuster
5557 https://bugs.webkit.org/show_bug.cgi?id=131601
5558
5559 Reviewed by Ryosuke Niwa.
5560
5561 Added flickr, reddit, and theverge -- each recorded from Membuster's
5562 cache, with and without sending Safari a low memory warning.
5563
5564 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
5565 * MallocBench/MallocBench/Benchmark.cpp:
5566 * MallocBench/MallocBench/flickr.cpp: Added.
5567 (benchmark_flickr):
5568 (benchmark_flickr_memory_warning):
5569 * MallocBench/MallocBench/flickr.h: Added.
5570 * MallocBench/MallocBench/flickr.ops: Added.
5571 * MallocBench/MallocBench/flickr_memory_warning.ops: Added.
5572 * MallocBench/MallocBench/reddit.cpp: Added.
5573 (benchmark_reddit):
5574 (benchmark_reddit_memory_warning):
5575 * MallocBench/MallocBench/reddit.h: Added.
5576 * MallocBench/MallocBench/reddit.ops: Added.
5577 * MallocBench/MallocBench/reddit_memory_warning.ops: Added.
5578 * MallocBench/MallocBench/theverge.cpp: Added.
5579 (benchmark_theverge):
5580 (benchmark_theverge_memory_warning):
5581 * MallocBench/MallocBench/theverge.h: Added.
5582 * MallocBench/MallocBench/theverge.ops: Added.
5583 * MallocBench/MallocBench/theverge_memory_warning.ops: Added.
5584
55852014-04-13 Geoffrey Garen <ggaren@apple.com>
5586
ggaren@apple.comf4bc1dc2014-04-13 23:21:20 +00005587 MallocBench record/replay should support realloc
5588 https://bugs.webkit.org/show_bug.cgi?id=131598
5589
5590 Reviewed by Ryosuke Niwa.
5591
5592 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Fixed some linkage
5593 issues that caused us not to fully link to system malloc in the default
5594 case. Also marked mbmalloc.dylib as required so the error message will
5595 be clearer if we mess up.
5596
5597 * MallocBench/MallocBench/Interpreter.cpp:
5598 (Interpreter::run):
5599 * MallocBench/MallocBench/Interpreter.h: Added the realloc case, and
5600 upgraded one-letter names to full words.
5601
krit@webkit.org7c663702014-04-11 12:37:26 +000056022014-04-11 Dirk Schulze <krit@webkit.org>
5603
5604 Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
5605 https://bugs.webkit.org/show_bug.cgi?id=79659
5606
5607 Reviewed by Andreas Kling.
5608
krit@webkit.org9d81f8a2014-04-11 12:44:58 +00005609 Add performance tests for real this time.
5610
5611 * Canvas/compositing-drawimage.html: Added.
5612 * Canvas/compositing-fillRect.html: Added.
5613
5614
56152014-04-11 Dirk Schulze <krit@webkit.org>
5616
5617 Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
5618 https://bugs.webkit.org/show_bug.cgi?id=79659
5619
5620 Reviewed by Andreas Kling.
5621
krit@webkit.org7c663702014-04-11 12:37:26 +00005622 Add performance tests for fillRect() and drawImage() on composited contexts.
5623
5624 * Canvas/compositing-drawimage.html: Added.
5625 * Canvas/compositing-fillRect.html: Added.
5626
zoltan@webkit.org50242c92014-04-09 18:19:52 +000056272014-04-09 Zoltan Horvath <zoltan@webkit.org>
5628
zoltan@webkit.orgc52a85f2014-04-09 22:31:34 +00005629 [CSS Shapes] Add no shapes version of RegionsShapes performance test
5630 https://bugs.webkit.org/show_bug.cgi?id=131455
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00005631
zoltan@webkit.orgc52a85f2014-04-09 22:31:34 +00005632 Reviewed by Ryosuke Niwa.
5633
5634 This is a no shapes version of the RegionsShapes performance test. All the content
5635 will wrap around the floating containers. This way we can compare the runtime/memory
5636 usage of the RegionsShapes test with/without shapes. The test is skipped by default.
5637
5638 * Layout/Shapes/RegionsShapesNoShapes.html: Added.
5639 * Layout/Shapes/resources/RegionsShapesContentNoShapes.html: Added.
5640
56412014-04-09 Zoltan Horvath <zoltan@webkit.org>
5642
zoltan@webkit.org50242c92014-04-09 18:19:52 +00005643 [CSS Shapes] Add no regions version of RegionsShapes performance test
5644 https://bugs.webkit.org/show_bug.cgi?id=131442
5645
5646 Reviewed by Ryosuke Niwa.
5647
5648 We would like have a no regions version for RegionsShapes performance test. The new
5649 test produces similar layout to RegionsShapes.html without using regions. It is helpful
5650 for us to do further comparisons when necessary. This test is skipped by default.
5651
5652 * Layout/Shapes/RegionsShapesNoRegions.html: Added.
5653 * Layout/Shapes/resources/RegionsShapes.css: Added.
5654 (html, body):
5655 (.shape):
5656 (#circleShape):
5657 (#imageShape):
5658 (#insetShape):
5659 (#roundedInsetShape):
5660 (#triangleLeft):
5661 (#triangleRight):
5662 (#selfIntersectingStar):
5663 (#region1):
5664 (#region2):
5665 (#region3):
5666 * Layout/Shapes/resources/RegionsShapesContent.html:
5667 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html: Added.
5668 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html: Added.
5669 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html: Added.
5670
ggaren@apple.comf9d87382014-04-02 21:38:49 +000056712014-04-02 Geoffrey Garen <ggaren@apple.com>
5672
ggaren@apple.comcaddb3a2014-04-02 21:50:52 +00005673 Unreviewed.
5674
5675 Try to ignore some Xcode shmutz in MallocBench.
5676
5677 * MallocBench/MallocBench.xcodeproj: Added property svn:ignore.
5678
56792014-04-02 Geoffrey Garen <ggaren@apple.com>
5680
ggaren@apple.comf9d87382014-04-02 21:38:49 +00005681 Let's benchmark malloc
5682 https://bugs.webkit.org/show_bug.cgi?id=131118
5683
5684 Reviewed by Mark Hahnenberg.
5685
5686 I want to replace fastMalloc with something faster (fasterMalloc?).
5687 I wrote these benchmarks to test / drive development.
5688
5689 * MallocBench: Added.
5690 * MallocBench/MallocBench: Added.
5691 * MallocBench/MallocBench.xcodeproj: Added.
5692 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Added.
5693 * MallocBench/MallocBench/Benchmark.cpp: Added.
5694 (allocateHeap):
5695 (deallocateHeap):
5696 (Benchmark::Benchmark):
5697 (Benchmark::printBenchmarks):
5698 (Benchmark::runOnce):
5699 (Benchmark::run):
5700 (Benchmark::printReport):
5701 (Benchmark::currentTimeMS):
5702 (Benchmark::currentMemoryBytes):
5703 * MallocBench/MallocBench/Benchmark.h: Added.
5704 (Benchmark::Memory::Memory):
5705 (Benchmark::Memory::operator-):
5706 (Benchmark::isValid):
5707 * MallocBench/MallocBench/CPUCount.cpp: Added.
5708 (cpuCount):
5709 * MallocBench/MallocBench/CPUCount.h: Added.
5710 * MallocBench/MallocBench/CommandLine.cpp: Added.
5711 (CommandLine::printUsage):
5712 * MallocBench/MallocBench/CommandLine.h: Added.
5713 (CommandLine::isValid):
5714 (CommandLine::benchmarkName):
5715 (CommandLine::isParallel):
5716 (CommandLine::heapSize):
5717 (CommandLine::measureHeap):
5718 * MallocBench/MallocBench/Interpreter.cpp: Added.
5719 (Interpreter::Interpreter):
5720 (Interpreter::~Interpreter):
5721 (Interpreter::run):
5722 * MallocBench/MallocBench/Interpreter.h: Added.
5723 * MallocBench/MallocBench/balloon.cpp: Added.
5724 (benchmark_balloon):
5725 * MallocBench/MallocBench/balloon.h: Added.
5726 * MallocBench/MallocBench/big.cpp: Added.
5727 (benchmark_big):
5728 * MallocBench/MallocBench/big.h: Added.
5729 * MallocBench/MallocBench/churn.cpp: Added.
5730 (HeapDouble::operator new):
5731 (HeapDouble::operator delete):
5732 (HeapDouble::HeapDouble):
5733 (HeapDouble::operator+=):
5734 (benchmark_churn):
5735 * MallocBench/MallocBench/churn.h: Added.
5736 * MallocBench/MallocBench/crash.ops: Added.
5737 * MallocBench/MallocBench/facebook.cpp: Added.
5738 (benchmark_facebook):
5739 * MallocBench/MallocBench/facebook.h: Added.
5740 * MallocBench/MallocBench/facebook.ops: Added.
5741 * MallocBench/MallocBench/fragment.cpp: Added.
5742 (validate):
5743 (benchmark_fragment):
5744 (benchmark_fragment_iterate):
5745 * MallocBench/MallocBench/fragment.h: Added.
5746 * MallocBench/MallocBench/list.cpp: Added.
5747 (benchmark_list_allocate):
5748 (benchmark_list_traverse):
5749 * MallocBench/MallocBench/list.h: Added.
5750 * MallocBench/MallocBench/main.cpp: Added.
5751 (main):
5752 * MallocBench/MallocBench/mbmalloc.cpp: Added.
5753 * MallocBench/MallocBench/mbmalloc.h: Added.
5754 * MallocBench/MallocBench/medium.cpp: Added.
5755 (benchmark_medium):
5756 * MallocBench/MallocBench/medium.h: Added.
5757 * MallocBench/MallocBench/message.cpp: Added.
5758 (benchmark_message_one):
5759 (benchmark_message_many):
5760 * MallocBench/MallocBench/message.h: Added.
5761 * MallocBench/MallocBench/realloc.cpp: Added.
5762 (benchmark_realloc):
5763 * MallocBench/MallocBench/realloc.h: Added.
5764 * MallocBench/MallocBench/tree.cpp: Added.
5765 (benchmark_tree_allocate):
5766 (benchmark_tree_traverse):
5767 (benchmark_tree_churn):
5768 * MallocBench/MallocBench/tree.h: Added.
5769 * MallocBench/run-malloc-benchmarks: Added.
5770
mark.lam@apple.comfccecaa2014-03-30 16:53:53 +000057712014-03-29 Mark Lam <mark.lam@apple.com>
5772
5773 LongSpider 3d-morph result check is inappropriate.
5774 <https://webkit.org/b/130928>
5775
5776 Reviewed by Filip Pizlo.
5777
5778 The LongSpider 3d-morph component expected result check is incorrect.
5779 The existing test checks if the leading digit of a sum starts with "-1".
5780 However, it turned out that the expected sum is in the order of
5781 -1.8735013540549517e-16 (i.e. very close to 0). With small errors in
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00005782 the terms of the sum adding up, it is very easy for the resultant sum
mark.lam@apple.comfccecaa2014-03-30 16:53:53 +00005783 to fluctuate. There is no guarantee that the resultant sum's most
5784 significant digit will start with -1 either.
5785
5786 The fix is to do a tolerance check on all the terms of the sum as well
5787 as the total sum value instead. The tolerance should be more lenient
5788 for the sum which accumulates error from the individual terms, then for
5789 individual terms.
5790
5791 * LongSpider/3d-morph.js:
5792 (expect):
5793
zoltan@webkit.org31b9d432014-03-28 18:18:09 +000057942014-03-28 Zoltan Horvath <zoltan@webkit.org>
5795
5796 [CSS Shapes] Add performance tests for Shapes with Regions
5797 https://bugs.webkit.org/show_bug.cgi?id=129624
5798
5799 Reviewed by Ryosuke Niwa.
5800
5801 This tests introduces a real-life like page, which contains different types of shapes within
5802 shape-outsides. The content flows through regions, which use media queries. The performance test
5803 loads the actual Shapes-Regions test case into iframes with different page sizes (thus the layout
5804 triggers the media queries as well), and measures its load time.
5805
5806 * Layout/RegionsShapes.html: Added.
5807 * Layout/Shapes/resources/RegionsShapesContent.html: Added.
5808
zoltan@webkit.org0a592932014-03-21 04:05:05 +000058092014-03-20 Zoltan Horvath <zoltan@webkit.org>
5810
5811 Add option for hiding Confidence Interval Delta on the performance tests results page
5812 https://bugs.webkit.org/show_bug.cgi?id=130483
5813
5814 Reviewed by Ryosuke Niwa.
5815
5816 I've found it useful to hide the confidence interval delta from the results table
5817 sometimes, for example on copying data, or for a clearer look. This patch introduces
5818 a new button for it on the local results page.
5819
5820 * resources/results-template.html:
5821
lvidacs.u-szeged@partner.samsung.com8e34e632014-03-20 23:16:28 +000058222014-03-20 Laszlo Vidacs <lvidacs.u-szeged@partner.samsung.com>
5823
5824 Optimize RenderTable::colToEffCol() for tables without colspans
5825 https://bugs.webkit.org/show_bug.cgi?id=129298
5826
5827 Reviewed by Simon Fraser.
5828
5829 Create an alternative fast path to RenderTable colToEffCol() and effColToCol()
5830 when there is no colspan or colspan does not exceed the width of table.
5831 Blink merge https://codereview.chromium.org/154243002 by rhogan
5832
5833 * Layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html: Added.
5834 * Layout/large-table-with-collapsed-borders-and-colspans.html: Added.
5835 * Layout/large-table-with-collapsed-borders-and-no-colspans.html: Added.
5836 * Layout/resources/large-table-with-collapsed-borders.css: Added.
5837 * Layout/resources/large-table-with-collapsed-borders.js: Added.
5838
mjs@apple.com92047332014-03-15 04:08:27 +000058392014-03-14 Maciej Stachowiak <mjs@apple.com>
5840
5841 Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
5842 https://bugs.webkit.org/show_bug.cgi?id=130276
5843 <rdar://problem/16266927>
5844
5845 Reviewed by Simon Fraser.
5846
5847 * Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html:
5848 * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html:
5849 * Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html:
5850 * Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html:
5851 * LongSpider/3d-morph.js:
5852 * LongSpider/3d-raytrace.js:
5853 * LongSpider/math-cordic.js:
5854 * LongSpider/string-tagcloud.js:
5855 * Parser/resources/html5-8266.html:
5856 * Parser/resources/html5.html:
5857
zoltan@webkit.orgfe4a0512014-03-10 22:32:15 +000058582014-03-10 Zoltan Horvath <zoltan@webkit.org>
5859
5860 [CSS Shapes] Add performance tests for SVG shape with shape-margin
5861 https://bugs.webkit.org/show_bug.cgi?id=129930
5862
5863 Reviewed by Ryosuke Niwa.
5864
5865 The test is skipped by default.
5866
5867 * Layout/Shapes/ShapeOutsideSVGWithMargin.html: Added.
5868 * Layout/Shapes/resources/shape.svg: Added.
5869
zoltan@webkit.orgecae5392014-02-19 23:22:47 +000058702014-02-19 Zoltan Horvath <zoltan@webkit.org>
5871
5872 [CSS Shapes] Add performance test for stacked floats with shape-outsides
5873 https://bugs.webkit.org/show_bug.cgi?id=128821
5874
5875 Reviewed by Brent Fulgham.
5876
5877 This tests generate stacked floats content with shape-outsides.
5878 The test is skipped by default.
5879
5880 * Layout/Shapes/ShapeOutsideStackedPolygons.html: Added.
5881
zoltan@webkit.orgd81a0782014-02-15 08:27:16 +000058822014-02-15 Zoltan Horvath <zoltan@webkit.org>
5883
5884 [CSS Shapes] Add performance test for raster shape with shape-margin
5885 https://bugs.webkit.org/show_bug.cgi?id=128770
5886
5887 Reviewed by Ryosuke Niwa.
5888
5889 This patch introduces a new performance test for image valued shapes,
5890 where shape-margin is applied on the shape.
5891 The test is skipped by default.
5892
5893 * Layout/Shapes/ShapeOutsideRasterWithMargin.html: Added.
5894
rniwa@webkit.orgf0ed9ec2014-02-15 05:45:26 +000058952014-02-14 Ryosuke Niwa <rniwa@webkit.org>
5896
5897 Improve the appearance of DYEBench
5898 https://bugs.webkit.org/show_bug.cgi?id=128866
5899
5900 Reviewed by Antti Koivisto.
5901
5902 Add a div that shows progress during the test. Also show 95th percentile,
5903 and use a table instead of pre to show results.
5904
5905 * DoYouEvenBench/Full.html:
5906 (.addResult): Added. Shows results in a table.
5907 (benchmarkClient.willRunTest): Added to show the progress bar.
5908 (benchmarkClient.didRunTest):
5909 (benchmarkClient.didRunSuites):
5910 (benchmarkClient.didFinishLastIteration): Compute 95th percentile using Statistics.js
5911
5912 * DoYouEvenBench/resources/benchmark-runner.js:
5913 (BenchmarkRunner.prototype._appendFrame): Fix the bug where marginLeft and marginTop
5914 weren't correctly parsed. We were treating top as left and bottom as top somehow.
5915 (BenchmarkRunner.prototype._runTestAndRecordResults): Fixed a typo.
5916
zoltan@webkit.org351b2b72014-02-13 23:28:50 +000059172014-02-13 Zoltan Horvath <zoltan@webkit.org>
5918
zoltan@webkit.orge783f9e2014-02-14 01:17:14 +00005919 [CSS Shapes] Add performance test for complex polygon with shape-margin
5920 https://bugs.webkit.org/show_bug.cgi?id=128769
5921
5922 Reviewed by Ryosuke Niwa.
5923
5924 This patch modifies the logic of createShapeOutsideTest to accept multiple
5925 CSS properties from the test. The patch adds performance test for complex
5926 polygon shape (self intersecting at multiple places) case, moreover we
5927 apply shape-margin on the polygon also.
5928
5929 * Layout/Shapes/ShapeOutsideContentBox.html:
5930 * Layout/Shapes/ShapeOutsideInset.html:
5931 * Layout/Shapes/ShapeOutsidePolygonWithMargin.html: Added.
5932 * Layout/Shapes/ShapeOutsideRaster.html:
5933 * Layout/Shapes/ShapeOutsideSimplePolygon.html:
5934 * Layout/Shapes/resources/shapes.js:
5935
59362014-02-13 Zoltan Horvath <zoltan@webkit.org>
5937
zoltan@webkit.org351b2b72014-02-13 23:28:50 +00005938 [CSS Shapes] Add performance test for raster shape
5939 https://bugs.webkit.org/show_bug.cgi?id=128746
5940
5941 Reviewed by Ryosuke Niwa.
5942
5943 This patch adds performance testing for image valued shape-outside.
5944 The test is skipped by default for now.
5945
5946 * Layout/Shapes/ShapeOutsideRaster.html: Added.
5947 * Layout/Shapes/resources/shape.gif: Added.
5948
zoltan@webkit.org847b5ea2014-02-11 00:19:58 +000059492014-02-10 Zoltan Horvath <zoltan@webkit.org>
5950
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00005951 [CSS Shapes] Add initial performance tests for polygon shape
zoltan@webkit.org847b5ea2014-02-11 00:19:58 +00005952 https://bugs.webkit.org/show_bug.cgi?id=128554
5953
5954 Reviewed by Ryosuke Niwa.
5955
5956 This patch adds performance testing for simple polygon shape-outside.
5957 The Shapes performance tests directory is skipped by default.
5958
5959 * Layout/Shapes/ShapeOutsideSimplePolygon.html: Added.
5960
zoltan@webkit.orgde8db452014-02-08 02:39:12 +000059612014-02-07 Zoltan Horvath <zoltan@webkit.org>
5962
5963 [CSS Shapes] Add initial performance tests for inset shape
5964 https://bugs.webkit.org/show_bug.cgi?id=128378
5965
5966 Reviewed by Ryosuke Niwa.
5967
5968 * Layout/Shapes/ShapeOutsideContentBox.html: Move js to shapes.js.
5969 * Layout/Shapes/ShapeOutsideInset.html: Added.
5970 * Layout/Shapes/resources/shapes.js: Added.
5971 (.):
5972
rniwa@webkit.orge138fe42014-02-05 05:36:04 +000059732014-02-04 Ryosuke Niwa <rniwa@webkit.org>
5974
rniwa@webkit.org52f20d42014-02-05 07:11:57 +00005975 Undelete the "build" directory erroneously removed in r163427.
5976
5977 * DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/director/build:
5978
59792014-02-04 Ryosuke Niwa <rniwa@webkit.org>
5980
rniwa@webkit.orge78f9d22014-02-05 07:00:45 +00005981 Revert the change made in r162216 as it broke the benchmark on shipping Safari.
5982
5983 * DoYouEvenBench/resources/benchmark-runner.js:
5984
59852014-02-04 Ryosuke Niwa <rniwa@webkit.org>
5986
rniwa@webkit.orge138fe42014-02-05 05:36:04 +00005987 DoYouEvenBench: Update Ember.js test case
5988 https://bugs.webkit.org/show_bug.cgi?id=128227
5989
5990 Reviewed by Benjamin Poulain.
5991
5992 Updated the Ember.js TodoMVC implementation.
5993
5994 * DoYouEvenBench/resources/tests.js:
5995 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower.json:
5996 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Added.
5997 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js:
5998 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:
5999 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js:
6000 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js:
6001 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
6002 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js:
6003 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/index.html:
6004 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/app.js:
6005 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js:
6006 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js:
6007 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Added.
6008 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Removed.
6009 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/models/store.js: Removed.
6010 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/models/todo.js:
6011 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/router.js:
6012 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js:
6013 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Added.
6014 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/readme.md:
6015 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/test.html:
6016
zoltan@webkit.orgdca0cf72014-02-05 04:10:43 +000060172014-02-04 Zoltan Horvath <zoltan@webkit.org>
6018
6019 [CSS Shapes] Add initial performance test for shape-outside: content-box
6020 https://bugs.webkit.org/show_bug.cgi?id=128190
6021
6022 Reviewed by Ryosuke Niwa.
6023
6024 I've introduced Shapes subdirectory in Layout, every CSS Shapes related performance tests should
6025 go there in the future. The initial performance tests uses 'shape-outside: content-box' in order
6026 to tests the code paths of the Shapes implementation. I also introduced shapes.js, which allows us
6027 to easily add new, simple performance tests for shape-outside.
6028
6029 The entire progress is tracked under #128188 meta bug.
6030
6031 * Layout/Shapes/ShapeOutsideContentBox.html: Added.
6032 * Layout/Shapes/resources/shapes.css: Added.
6033 * Layout/Shapes/resources/shapes.js: Added.
6034 * Skipped: We skip running the tests by default for now.
6035
rego@igalia.comd5c81a62014-01-17 22:22:13 +000060362014-01-17 Manuel Rego Casasnovas <rego@igalia.com>
6037
6038 [CSS Regions] Minor fixes in regions performance tests
6039 https://bugs.webkit.org/show_bug.cgi?id=127041
6040
6041 Reviewed by Ryosuke Niwa.
6042
6043 Fix minor issues in CSS Regions performance tests.
6044
6045 * Layout/RegionsAuto.html: Change type to lower case.
6046 * Layout/RegionsAutoMaxHeight.html: Ditto.
6047 * Layout/RegionsFixed.html: Ditto.
6048 * Layout/RegionsFixedShort.html: Ditto.
6049 * Layout/RegionsSelection.html: Ditto. Move test methods from regions.js.
6050 * Layout/resources/regions.js: Remove moved methods.
6051
rniwa@webkit.orgb6da4f62014-01-17 09:23:59 +000060522014-01-17 Ryosuke Niwa <rniwa@webkit.org>
6053
rniwa@webkit.org8efbd3e2014-01-17 21:10:37 +00006054 Host DoYouEvenBench on webkit.org
6055 https://bugs.webkit.org/show_bug.cgi?id=127185
6056
6057 Reviewed by Benjamin Poulain.
6058
6059 Compute the resources directory relative to the benchmark-runner's location
6060 so that we can load tests even if the runner HTML was located elsewhere.
6061
6062 * DoYouEvenBench/Full.html:
6063 * DoYouEvenBench/resources/benchmark-runner.js:
6064 (BenchmarkState._containingDirectory):
6065
60662014-01-17 Ryosuke Niwa <rniwa@webkit.org>
6067
rniwa@webkit.org580d25e2014-01-17 20:43:26 +00006068 DoYouEvenBench: Move flightjs-example-app and todomvc into resources
6069 https://bugs.webkit.org/show_bug.cgi?id=127183
6070
6071 Rubber-stamped by Anders Carlsson.
6072
6073 * DoYouEvenBench/InteractiveRunner.html: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
6074 * DoYouEvenBench/benchmark.html: Removed.
6075 * DoYouEvenBench/flightjs-example-app: Removed.
6076 * DoYouEvenBench/flightjs-example-app/LICENSE.md: Removed.
6077 * DoYouEvenBench/flightjs-example-app/README.md: Removed.
6078 * DoYouEvenBench/flightjs-example-app/app: Removed.
6079 * DoYouEvenBench/flightjs-example-app/app/boot: Removed.
6080 * DoYouEvenBench/flightjs-example-app/app/boot/page.js: Removed.
6081 * DoYouEvenBench/flightjs-example-app/app/component_data: Removed.
6082 * DoYouEvenBench/flightjs-example-app/app/component_data/compose_box.js: Removed.
6083 * DoYouEvenBench/flightjs-example-app/app/component_data/mail_items.js: Removed.
6084 * DoYouEvenBench/flightjs-example-app/app/component_data/move_to.js: Removed.
6085 * DoYouEvenBench/flightjs-example-app/app/component_ui: Removed.
6086 * DoYouEvenBench/flightjs-example-app/app/component_ui/compose_box.js: Removed.
6087 * DoYouEvenBench/flightjs-example-app/app/component_ui/folders.js: Removed.
6088 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_controls.js: Removed.
6089 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_items.js: Removed.
6090 * DoYouEvenBench/flightjs-example-app/app/component_ui/move_to_selector.js: Removed.
6091 * DoYouEvenBench/flightjs-example-app/app/component_ui/with_select.js: Removed.
6092 * DoYouEvenBench/flightjs-example-app/app/css: Removed.
6093 * DoYouEvenBench/flightjs-example-app/app/css/custom.css: Removed.
6094 * DoYouEvenBench/flightjs-example-app/app/data.js: Removed.
6095 * DoYouEvenBench/flightjs-example-app/app/templates.js: Removed.
6096 * DoYouEvenBench/flightjs-example-app/components: Removed.
6097 * DoYouEvenBench/flightjs-example-app/components/bootstrap: Removed.
6098 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css: Removed.
6099 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Removed.
6100 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Removed.
6101 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.css: Removed.
6102 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Removed.
6103 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img: Removed.
6104 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Removed.
6105 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Removed.
6106 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js: Removed.
6107 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.js: Removed.
6108 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Removed.
6109 * DoYouEvenBench/flightjs-example-app/components/es5-shim: Removed.
6110 * DoYouEvenBench/flightjs-example-app/components/es5-shim/.gitignore: Removed.
6111 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CHANGES: Removed.
6112 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Removed.
6113 * DoYouEvenBench/flightjs-example-app/components/es5-shim/LICENSE: Removed.
6114 * DoYouEvenBench/flightjs-example-app/components/es5-shim/README.md: Removed.
6115 * DoYouEvenBench/flightjs-example-app/components/es5-shim/component.json: Removed.
6116 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.js: Removed.
6117 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.min.js: Removed.
6118 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.js: Removed.
6119 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.min.js: Removed.
6120 * DoYouEvenBench/flightjs-example-app/components/es5-shim/package.json: Removed.
6121 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests: Removed.
6122 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers: Removed.
6123 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Removed.
6124 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Removed.
6125 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Removed.
6126 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/index.html: Removed.
6127 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib: Removed.
6128 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Removed.
6129 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Removed.
6130 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Removed.
6131 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Removed.
6132 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Removed.
6133 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec: Removed.
6134 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Removed.
6135 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Removed.
6136 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Removed.
6137 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Removed.
6138 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Removed.
6139 * DoYouEvenBench/flightjs-example-app/components/flight: Removed.
6140 * DoYouEvenBench/flightjs-example-app/components/flight/.travis.yml: Removed.
6141 * DoYouEvenBench/flightjs-example-app/components/flight/lib: Removed.
6142 * DoYouEvenBench/flightjs-example-app/components/flight/lib/advice.js: Removed.
6143 * DoYouEvenBench/flightjs-example-app/components/flight/lib/component.js: Removed.
6144 * DoYouEvenBench/flightjs-example-app/components/flight/lib/compose.js: Removed.
6145 * DoYouEvenBench/flightjs-example-app/components/flight/lib/index.js: Removed.
6146 * DoYouEvenBench/flightjs-example-app/components/flight/lib/logger.js: Removed.
6147 * DoYouEvenBench/flightjs-example-app/components/flight/lib/registry.js: Removed.
6148 * DoYouEvenBench/flightjs-example-app/components/flight/lib/utils.js: Removed.
6149 * DoYouEvenBench/flightjs-example-app/components/flight/tools: Removed.
6150 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug: Removed.
6151 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug/debug.js: Removed.
6152 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight: Removed.
6153 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/LICENSE.md: Removed.
6154 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/README.md: Removed.
6155 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/bower.json: Removed.
6156 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib: Removed.
6157 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Removed.
6158 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery: Removed.
6159 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib: Removed.
6160 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Removed.
6161 * DoYouEvenBench/flightjs-example-app/components/jquery: Removed.
6162 * DoYouEvenBench/flightjs-example-app/components/jquery/component.json: Removed.
6163 * DoYouEvenBench/flightjs-example-app/components/jquery/composer.json: Removed.
6164 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.js: Removed.
6165 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.min.js: Removed.
6166 * DoYouEvenBench/flightjs-example-app/components/mustache: Removed.
6167 * DoYouEvenBench/flightjs-example-app/components/mustache/mustache.js: Removed.
6168 * DoYouEvenBench/flightjs-example-app/components/requirejs: Removed.
6169 * DoYouEvenBench/flightjs-example-app/components/requirejs/require.js: Removed.
6170 * DoYouEvenBench/flightjs-example-app/index.html: Removed.
6171 * DoYouEvenBench/flightjs-example-app/karma.conf.js: Removed.
6172 * DoYouEvenBench/flightjs-example-app/package.json: Removed.
6173 * DoYouEvenBench/flightjs-example-app/requireMain.js: Removed.
6174 * DoYouEvenBench/resources/benchmark-runner.js:
6175 * DoYouEvenBench/resources/flightjs-example-app: Copied from PerformanceTests/DoYouEvenBench/flightjs-example-app.
6176 * DoYouEvenBench/resources/todomvc: Copied from PerformanceTests/DoYouEvenBench/todomvc.
6177 * DoYouEvenBench/todomvc: Removed.
6178 * DoYouEvenBench/todomvc/architecture-examples: Removed.
6179 * DoYouEvenBench/todomvc/architecture-examples/angularjs: Removed.
6180 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower.json: Removed.
6181 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components: Removed.
6182 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular: Removed.
6183 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks: Removed.
6184 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Removed.
6185 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Removed.
6186 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common: Removed.
6187 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Removed.
6188 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Removed.
6189 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Removed.
6190 * DoYouEvenBench/todomvc/architecture-examples/angularjs/index.html: Removed.
6191 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js: Removed.
6192 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/app.js: Removed.
6193 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers: Removed.
6194 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Removed.
6195 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives: Removed.
6196 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Removed.
6197 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Removed.
6198 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Removed.
6199 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services: Removed.
6200 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Removed.
6201 * DoYouEvenBench/todomvc/architecture-examples/angularjs/readme.md: Removed.
6202 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test: Removed.
6203 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config: Removed.
6204 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Removed.
6205 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/package.json: Removed.
6206 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/readme.md: Removed.
6207 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit: Removed.
6208 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Removed.
6209 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Removed.
6210 * DoYouEvenBench/todomvc/architecture-examples/backbone: Removed.
6211 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower.json: Removed.
6212 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components: Removed.
6213 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone: Removed.
6214 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage: Removed.
6215 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Removed.
6216 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Removed.
6217 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery: Removed.
6218 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Removed.
6219 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common: Removed.
6220 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Removed.
6221 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Removed.
6222 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Removed.
6223 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore: Removed.
6224 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Removed.
6225 * DoYouEvenBench/todomvc/architecture-examples/backbone/index.html: Removed.
6226 * DoYouEvenBench/todomvc/architecture-examples/backbone/js: Removed.
6227 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/app.js: Removed.
6228 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections: Removed.
6229 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections/todos.js: Removed.
6230 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models: Removed.
6231 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models/todo.js: Removed.
6232 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers: Removed.
6233 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers/router.js: Removed.
6234 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views: Removed.
6235 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/app-view.js: Removed.
6236 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/todo-view.js: Removed.
6237 * DoYouEvenBench/todomvc/architecture-examples/backbone/readme.md: Removed.
6238 * DoYouEvenBench/todomvc/architecture-examples/emberjs: Removed.
6239 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower.json: Removed.
6240 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components: Removed.
6241 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember: Removed.
6242 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter: Removed.
6243 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Removed.
6244 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Removed.
6245 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars: Removed.
6246 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Removed.
6247 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery: Removed.
6248 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Removed.
6249 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common: Removed.
6250 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Removed.
6251 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Removed.
6252 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Removed.
6253 * DoYouEvenBench/todomvc/architecture-examples/emberjs/index.html: Removed.
6254 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js: Removed.
6255 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/app.js: Removed.
6256 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers: Removed.
6257 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Removed.
6258 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Removed.
6259 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs: Removed.
6260 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Removed.
6261 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models: Removed.
6262 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/store.js: Removed.
6263 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/todo.js: Removed.
6264 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/router.js: Removed.
6265 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views: Removed.
6266 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Removed.
6267 * DoYouEvenBench/todomvc/architecture-examples/emberjs/readme.md: Removed.
6268 * DoYouEvenBench/todomvc/architecture-examples/emberjs/test.html: Removed.
6269 * DoYouEvenBench/todomvc/architecture-examples/jquery: Removed.
6270 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower.json: Removed.
6271 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components: Removed.
6272 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars: Removed.
6273 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Removed.
6274 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery: Removed.
6275 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Removed.
6276 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common: Removed.
6277 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Removed.
6278 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Removed.
6279 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Removed.
6280 * DoYouEvenBench/todomvc/architecture-examples/jquery/css: Removed.
6281 * DoYouEvenBench/todomvc/architecture-examples/jquery/css/app.css: Removed.
6282 * DoYouEvenBench/todomvc/architecture-examples/jquery/index.html: Removed.
6283 * DoYouEvenBench/todomvc/architecture-examples/jquery/js: Removed.
6284 * DoYouEvenBench/todomvc/architecture-examples/jquery/js/app.js: Removed.
6285 * DoYouEvenBench/todomvc/architecture-examples/jquery/readme.md: Removed.
6286 * DoYouEvenBench/todomvc/labs: Removed.
6287 * DoYouEvenBench/todomvc/labs/architecture-examples: Removed.
6288 * DoYouEvenBench/todomvc/labs/architecture-examples/react: Removed.
6289 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower.json: Removed.
6290 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components: Removed.
6291 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director: Removed.
6292 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Removed.
6293 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Removed.
6294 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build: Removed.
6295 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js: Removed.
6296 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js: Removed.
6297 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js: Removed.
6298 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react: Removed.
6299 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Removed.
6300 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Removed.
6301 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Removed.
6302 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Removed.
6303 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common: Removed.
6304 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Removed.
6305 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Removed.
6306 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Removed.
6307 * DoYouEvenBench/todomvc/labs/architecture-examples/react/index.html: Removed.
6308 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js: Removed.
6309 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/app.jsx: Removed.
6310 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/footer.jsx: Removed.
6311 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Removed.
6312 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/utils.jsx: Removed.
6313 * DoYouEvenBench/todomvc/labs/architecture-examples/react/readme.md: Removed.
6314 * DoYouEvenBench/todomvc/license.md: Removed.
6315 * DoYouEvenBench/todomvc/readme.md: Removed.
6316 * DoYouEvenBench/todomvc/vanilla-examples: Removed.
6317 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs: Removed.
6318 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower.json: Removed.
6319 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components: Removed.
6320 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common: Removed.
6321 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Removed.
6322 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Removed.
6323 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Removed.
6324 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/index.html: Removed.
6325 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js: Removed.
6326 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/app.js: Removed.
6327 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/controller.js: Removed.
6328 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/helpers.js: Removed.
6329 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/model.js: Removed.
6330 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/store.js: Removed.
6331 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/view.js: Removed.
6332 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/readme.md: Removed.
6333 * Skipped:
6334
63352014-01-17 Ryosuke Niwa <rniwa@webkit.org>
6336
rniwa@webkit.orgb6da4f62014-01-17 09:23:59 +00006337 Build fix. Skip HTML files that are not tests.
6338
6339 * Skipped:
6340
rniwa@webkit.orga8a32212014-01-17 06:06:36 +000063412014-01-16 Ryosuke Niwa <rniwa@webkit.org>
6342
6343 Automate DoYouEvenBench
6344 https://bugs.webkit.org/show_bug.cgi?id=124497
6345
6346 Reviewed by Geoffrey Garen.
6347
6348 Enable DoYouEvenBench/Full.html on perf bots by default.
6349
6350 Put a space between the time and ms, and fixed a typo in runner.js so that the aggregator name will be reported.
6351
6352 * DoYouEvenBench/Full.html:
6353 * Skipped:
6354 * resources/runner.js:
6355
rego@igalia.comd0fdff42014-01-15 11:26:33 +000063562014-01-15 Manuel Rego Casasnovas <rego@igalia.com>
6357
6358 [CSS Regions] Add performance tests for selection with mixed content
6359 https://bugs.webkit.org/show_bug.cgi?id=126427
6360
6361 Reviewed by Ryosuke Niwa.
6362
6363 Add new performance tests for selection in CSS Regions mixing regular
6364 content with regions. 2 new tests are added, one checking select all
6365 command and another simulating a user selection passing through all the
6366 paragraphs (similar to Layout/RegionsSelection.html).
6367
6368 Test are skipped for now while implementation of selection in CSS
6369 Regions is still evolving.
6370
6371 * Layout/RegionsExtendingSelectionMixedContent.html: Added.
6372 * Layout/RegionsSelectAllMixedContent.html: Added.
6373 * Layout/resources/regions.css:
6374 (.regular):
6375 * Layout/resources/regions.js:
6376 * Skipped:
6377
rniwa@webkit.org879e1d72014-01-15 08:01:52 +000063782014-01-14 Ryosuke Niwa <rniwa@webkit.org>
6379
6380 Make DoYouEvenBench runnable by run-perf-tests
6381 https://bugs.webkit.org/show_bug.cgi?id=127030
6382
6383 Reviewed by Andreas Kling.
6384
6385 Added Full.html that runs 5 iterations of DoYouEvenBench. This is the canonical DoYouEvenBench,
6386 which is also runnable by run-perf-tests.
6387
6388 * DoYouEvenBench/Full.html: Added.
6389
6390 * DoYouEvenBench/benchmark.html:
6391 (startTest): Updated the code to account for the fact old measuredValues is pushed down to tests
6392 property and we now have total property so that we don't have to manually compute the total.
6393
6394 * DoYouEvenBench/resources/benchmark-report.js: Added. When we're inside a DRT/WTR, use
6395 PerfTestRunner to output that can be parsed by run-perf-tests. Do the same when the query part
6396 or the fragment part of the current URL is "webkit" for debugging purposes.
6397
6398 * DoYouEvenBench/resources/benchmark-runner.js:
6399 (BenchmarkRunner):
6400 (BenchmarkRunner.prototype._appendFrame): Position the frame at (0, 0) inside DRT and WTR since
6401 we have exactly 800px by 600px inside those two test runners. Also always insert the iframe as
6402 the first child of body to avoid inserting it after the pre inserted by the test runner.
6403 (BenchmarkRunner.prototype.step): Initializes _measuredValues.
6404 (BenchmarkRunner.prototype.runAllSteps): Merged callNextStep in benchmark.html.
6405 (BenchmarkRunner.prototype.runMultipleIterations): Added.
6406 (BenchmarkRunner.prototype._runTestAndRecordResults): Compute the grand total among suites.
6407 Also push down the sync and async time into tests property for consistency.
6408 (BenchmarkRunner.prototype._finalize):
6409
6410 * Dromaeo/resources/dromaeorunner.js:
6411 (DRT.testObject): Renamed dromaeoIterationCount to customIterationCount as this option is also
6412 used by DoYouEvenBench.
6413
6414 * resources/runner.js: Ditto.
6415 (.finish): Spit out the aggregator name.
6416
rniwa@webkit.org98471c52014-01-07 23:22:22 +000064172014-01-07 Ryosuke Niwa <rniwa@webkit.org>
6418
rniwa@webkit.org4f872c22014-01-08 03:58:16 +00006419 DoYouEvenBench: Turn BenchmarkRunner into a real class
6420 https://bugs.webkit.org/show_bug.cgi?id=126613
6421
6422 Reviewed by Stephanie Lewis.
6423
6424 Made BenchmarkRunner an instantiatable class. Made tests.js simply create an array of suite objects
6425 instead of calling BenchmarkRunner.Suite now that we can have mulitple instances of BenchmarkRunner.
6426
6427 * DoYouEvenBench/benchmark.html:
6428 (formatTestName): Moved and renamed from BenchmarkRunner._testName.
6429 (createUIForSuites): Extracted from a giant blob of code.
6430 (startTest): Ditto.
6431 * DoYouEvenBench/resources/benchmark-runner.js:
6432 (BenchmarkRunner): Added.
6433 (BenchmarkRunner.prototype.waitForElement):
6434 (BenchmarkRunner.prototype._removeFrame):
6435 (BenchmarkRunner.prototype._appendFrame):
6436 (BenchmarkRunner.prototype._waitAndWarmUp):
6437 (BenchmarkRunner.prototype._runTest):
6438 (BenchmarkState.prototype.prepareCurrentSuite):
6439 (BenchmarkRunner.prototype.step):
6440 (BenchmarkRunner.prototype._runTestAndRecordResults):
6441 (BenchmarkRunner.prototype._finalize):
6442 * DoYouEvenBench/resources/tests.js:
6443
64442014-01-07 Ryosuke Niwa <rniwa@webkit.org>
6445
rniwa@webkit.org98471c52014-01-07 23:22:22 +00006446 DoYouEvenBench: Extract tests and runner code from benchmark.js/html
6447 https://bugs.webkit.org/show_bug.cgi?id=126596
6448
6449 Reviewed by Stephanie Lewis.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00006450
rniwa@webkit.org98471c52014-01-07 23:22:22 +00006451 Extracted benchmark-runner.js and tests.js out of benchmark.js and benchmark.html.
6452
6453 Added a "client" interface to BenchmarkRunner so that benchmark.html could register necessary hooks to
6454 update its UI. Also made BenchmarkRunner store a tree of results so that the serialization of test names
6455 could be isolated from BenchmarkRunner itself in the future.
6456
6457 * DoYouEvenBench/benchmark.html:
6458 Moved the code to instantiate and update UI here from benchmark.js. The test code was moved out of this
6459 file into resources/tests.js.
6460
6461 * DoYouEvenBench/resources/benchmark-runner.js: Renamed from PerformanceTests/DoYouEvenBench/benchmark.js.
6462 (SimplePromise): Moved from benchmark.js
6463 (SimplePromise.prototype.then): Ditto.
6464 (SimplePromise.prototype.resolve): Ditto.
6465 (BenchmarkTestStep): Added. Wraps each test step.
6466 (BenchmarkRunner.suite): Moved from benchmark.js.
6467 (BenchmarkRunner.setClient): Added.
6468 (BenchmarkRunner.waitForElement): Moved.
6469 (BenchmarkRunner._removeFrame): Ditto.
6470 (BenchmarkRunner._appendFrame): Ditto. Set the width and the height of the iframe as they're more than
6471 presentational as they affect performance.
6472 (BenchmarkRunner._waitAndWarmUp): Ditto.
6473 (BenchmarkRunner._runTest): Ditto.
6474 (BenchmarkRunner._testName): Ditto.
6475 (BenchmarkState): Ditto.
6476 (BenchmarkState.prototype.currentSuite): Ditto.
6477 (BenchmarkState.prototype.currentTest): Ditto.
6478 (BenchmarkState.prototype.next): Ditto.
6479 (BenchmarkState.prototype.isFirstTest): Ditto.
6480 (BenchmarkState.prototype.prepareCurrentSuite): Ditto.
6481 (BenchmarkRunner.step): Ditto.
6482 (BenchmarkRunner._runTestAndRecordResults): Ditto. Note the code to update the UI has been move to
6483 benchmark.html. Also moved the code to accumulate the totals here from _finalize.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00006484 (BenchmarkRunner._finalize): Moved.
rniwa@webkit.org98471c52014-01-07 23:22:22 +00006485
6486 * DoYouEvenBench/resources/tests.js: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
6487 Uses BenchmarkTestStep instead of an array for each test step.
6488
mmaxfield@apple.com22d3d432014-01-02 23:32:47 +000064892014-01-02 Myles C. Maxfield <mmaxfield@apple.com>
6490
6491 Allow ImageBuffer to re-use IOSurfaces
6492 https://bugs.webkit.org/show_bug.cgi?id=125477
6493
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00006494 Reviewed by Geoff Garen.
mmaxfield@apple.com22d3d432014-01-02 23:32:47 +00006495
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00006496 This test times creating a variety of different sizes of canvases
6497 once some have already been created. The second creation of the
6498 canvases should re-use the existing IOSurfaces.
6499
mmaxfield@apple.com22d3d432014-01-02 23:32:47 +00006500 * Canvas/reuse.html: Added.
6501
commit-queue@webkit.org82d99102013-12-23 18:27:20 +000065022013-12-23 Commit Queue <commit-queue@webkit.org>
6503
6504 Unreviewed, rolling out r160945.
6505 http://trac.webkit.org/changeset/160945
6506 https://bugs.webkit.org/show_bug.cgi?id=126164
6507
6508 Seems to have broken multiple canvas tests (Requested by ap on
6509 #webkit).
6510
6511 * Canvas/reuse.html: Removed.
6512
mmaxfield@apple.com056ce852013-12-21 00:43:27 +000065132013-12-09 Myles C. Maxfield <mmaxfield@apple.com>
6514
6515 Allow ImageBuffer to re-use IOSurfaces
6516 https://bugs.webkit.org/show_bug.cgi?id=125477
6517
6518 Reviewed by Geoff Garen.
6519
6520 This test times creating a variety of different sizes of canvases
6521 once some have already been created. The second creation of the
6522 canvases should re-use the existing IOSurfaces.
6523
6524 * Canvas/reuse.html: Added.
6525
rniwa@webkit.org12932952013-12-16 05:56:25 +000065262013-12-15 Ryosuke Niwa <rniwa@webkit.org>
6527
6528 REGRESSION: 2x regression on Dromaeo DOM query tests
6529 https://bugs.webkit.org/show_bug.cgi?id=125377
6530
6531 Reviewed by Filip Pizlo.
6532
6533 Added a micro-benchmark for updating a named property on document.
6534
6535 * Bindings/update-name-getter.html: Added.
6536 * Skipped:
6537
rego@igalia.com98e9a582013-12-03 22:35:19 +000065382013-12-03 Manuel Rego Casasnovas <rego@igalia.com>
6539
6540 [CSS Regions] Fix Layout/RegionsSelection.html in Mac platform
6541 https://bugs.webkit.org/show_bug.cgi?id=124963
6542
6543 Reviewed by Ryosuke Niwa.
6544
6545 Layout/RegionsSelection.html introduced in r159488 was not working in
6546 Mac platform because of it was trying to use mouse events out of the
6547 window dimensions. Use collapse() and extend() methods from Selection
6548 object to solve the issue.
6549
6550 * Layout/resources/regions.js: Use collapse() and extend() instead of
6551 mouse events.
6552
rniwa@webkit.org2bf3ec52013-11-27 16:12:34 +000065532013-11-27 Ryosuke Niwa <rniwa@webkit.org>
6554
6555 Build fix after r159805.
6556
6557 * resources/runner.js:
6558
svillar@igalia.com93acf8f2013-11-27 08:31:14 +000065592013-11-26 Sergio Villar Senin <svillar@igalia.com>
6560
6561 [CSS Grid Layout] Support grid-definition-{rows|columns} repeat() syntax
6562 https://bugs.webkit.org/show_bug.cgi?id=103312
6563
6564 Reviewed by Andreas Kling.
6565
6566 Use the repeat() syntax to build the huge grids used by the
6567 performance tests.
6568
6569 * Layout/auto-grid-lots-of-data.html:
6570 * Layout/fixed-grid-lots-of-data.html:
6571
rniwa@webkit.org7a4f0952013-11-27 04:36:18 +000065722013-11-26 Ryosuke Niwa <rniwa@webkit.org>
6573
rniwa@webkit.org081e85f2013-11-27 05:33:17 +00006574 Record subtest values in Dromaeo tests
6575 https://bugs.webkit.org/show_bug.cgi?id=124498
6576
6577 Reviewed by Andreas Kling.
6578
6579 Made Dromaeo's test runner report values in DRT.progress via newly added PerfTestRunner.reportValues.
6580
6581 * Dromaeo/resources/dromaeorunner.js:
6582 (.): Moved the definition out of DRT.setup.
6583 (DRT.setup): Ditto.
6584 (DRT.testObject): Extracted from DRT.setup. Set the subtest name and continueTesting.
6585 continueTesting is set true for subtests; i.e. when name is specified.
6586 (DRT.progress): Call PerfTestRunner.reportValues to report subtest results.
6587 (DRT.teardown): Call PerfTestRunner.reportValues instead of measureValueAsync.
6588
6589 * resources/runner.js: Made various changes for newly added PerfTestRunner.reportValues.
6590 (.): Moved the initialization of completedIterations, results, jsHeapResults, and mallocHeapResults into
6591 start since they need to be initialized before running each subtest. Initialize logLines here since we
6592 need to use the same logger for all subtests.
6593 (.start): Initialize the variables mentioned above here. Also respect doNotLogStart used by reportValues.
6594 (ignoreWarmUpAndLog): Added doNotLogProgress. Used by reportValues since it reports all values at once.
6595 (finish): Compute the metric name such as FrameFrame and Runs from unit. Also don't log or notify done
6596 when continueTesting is set on the test object.
6597 (PerfTestRunner.reportValues): Added. Reports all values for the main/sub test.
6598
65992013-11-26 Ryosuke Niwa <rniwa@webkit.org>
6600
rniwa@webkit.org7a4f0952013-11-27 04:36:18 +00006601 Remove replay performance tests as it's not actively maintained
6602 https://bugs.webkit.org/show_bug.cgi?id=124764
6603
6604 Reviewed by Andreas Kling.
6605
6606 Removed the replay performance tests. We can add them back when time comes.
6607
6608 * Replay/Chinese/chinaz.com.replay: Removed.
6609 * Replay/Chinese/www.163.com.replay: Removed.
6610 * Replay/Chinese/www.alipay.com.replay: Removed.
6611 * Replay/Chinese/www.baidu.com.replay: Removed.
6612 * Replay/Chinese/www.csdn.net.replay: Removed.
6613 * Replay/Chinese/www.douban.com.replay: Removed.
6614 * Replay/Chinese/www.hao123.com.replay: Removed.
6615 * Replay/Chinese/www.xinhuanet.com.replay: Removed.
6616 * Replay/Chinese/www.xunlei.com.replay: Removed.
6617 * Replay/Chinese/www.youku.com.replay: Removed.
6618 * Replay/English/beatonna.livejournal.com.replay: Removed.
6619 * Replay/English/cakewrecks.blogspot.com.replay: Removed.
6620 * Replay/English/chemistry.about.com.replay: Removed.
6621 * Replay/English/digg.com.replay: Removed.
6622 * Replay/English/en.wikipedia.org-rorschach_test.replay: Removed.
6623 * Replay/English/icanhascheezburger.com.replay: Removed.
6624 * Replay/English/imgur.com-gallery.replay: Removed.
6625 * Replay/English/online.wsj.com.replay: Removed.
6626 * Replay/English/stockoverflow.com-best-comment.replay: Removed.
6627 * Replay/English/www.alibaba.com.replay: Removed.
6628 * Replay/English/www.amazon.com-kindle.replay: Removed.
6629 * Replay/English/www.apple.com.replay: Removed.
6630 * Replay/English/www.cnet.com.replay: Removed.
6631 * Replay/English/www.dailymotion.com.replay: Removed.
6632 * Replay/English/www.ehow.com-prevent-fire.replay: Removed.
6633 * Replay/English/www.filestube.com-amy-adams.replay: Removed.
6634 * Replay/English/www.foxnews.replay: Removed.
6635 * Replay/English/www.huffingtonpost.com.replay: Removed.
6636 * Replay/English/www.imdb.com-twilight.replay: Removed.
6637 * Replay/English/www.mozilla.com-all-order.replay: Removed.
6638 * Replay/English/www.php.net.replay: Removed.
6639 * Replay/English/www.reddit.com.replay: Removed.
6640 * Replay/English/www.telegraph.co.uk.replay: Removed.
6641 * Replay/English/www.w3.org-htmlcss.replay: Removed.
6642 * Replay/English/www.w3schools.com-html.replay: Removed.
6643 * Replay/English/www.youtube.com-music.replay: Removed.
6644 * Replay/French/www.orange.fr.replay: Removed.
6645 * Replay/Italian/www.repubblica.it.replay: Removed.
6646 * Replay/Japanese/2ch.net-newsplus.replay: Removed.
6647 * Replay/Japanese/entameblog.seesaa.net.replay: Removed.
6648 * Replay/Japanese/ja.wikipedia.org.replay: Removed.
6649 * Replay/Japanese/www.hatena.ne.jp.replay: Removed.
6650 * Replay/Japanese/www.livedoor.com.replay: Removed.
6651 * Replay/Japanese/www.nicovideo.jp.replay: Removed.
6652 * Replay/Japanese/www.rakuten.co.jp.replay: Removed.
6653 * Replay/Japanese/www.yahoo.co.jp.replay: Removed.
6654 * Replay/Korean/www.naver.com.replay: Removed.
6655 * Replay/Persian/blogfa.com.replay: Removed.
6656 * Replay/Polish/www.wp.pl.replay: Removed.
6657 * Replay/Portuguese/www.uol.com.br.replay: Removed.
6658 * Replay/Russian/lenta.ru.replay: Removed.
6659 * Replay/Russian/vkontakte.ru-help.replay: Removed.
6660 * Replay/Russian/www.ixbt.com.replay: Removed.
6661 * Replay/Russian/www.kp.ru.replay: Removed.
6662 * Replay/Russian/www.liveinternet.ru.replay: Removed.
6663 * Replay/Russian/www.pravda.ru.replay: Removed.
6664 * Replay/Russian/www.rambler.ru.replay: Removed.
6665 * Replay/Russian/www.ucoz.ru.replay: Removed.
6666 * Replay/Russian/www.yandex.ru.replay: Removed.
6667 * Replay/Spanish/www.taringa.net.replay: Removed.
6668 * Replay/Swedish/www.flashback.se.replay: Removed.
6669 * Replay/Swedish/www.tradera.com.replay: Removed.
6670 * Replay/www.google.com.replay: Removed.
6671 * Replay/www.techcrunch.com.replay: Removed.
6672 * Replay/www.youtube.com.replay: Removed.
6673
rniwa@webkit.orgb252a9d2013-11-23 04:50:45 +000066742013-11-22 Ryosuke Niwa <rniwa@webkit.org>
6675
6676 Layout Test editing/deleting/password-delete-performance.html is failing
6677 https://bugs.webkit.org/show_bug.cgi?id=124781
6678
6679 Reviewed by Alexey Proskuryakov.
6680
6681 Add a new performance test to replace editing/deleting/password-delete-performance.html.
6682 We skip this test by default since it's a micro benchmark.
6683
6684 * Interactive/DeletingInPasswordField.html: Added.
6685 * Skipped:
6686
svillar@igalia.combec27322013-11-22 11:03:32 +000066872013-11-18 Sergio Villar Senin <svillar@igalia.com>
6688
6689 [CSS Grid Layout] Improve content-sized track layout
6690 https://bugs.webkit.org/show_bug.cgi?id=124408
6691
6692 Reviewed by Dean Jackson.
6693
6694 From Blink r156122 by <jchaffraix@chromium.org>
6695
6696 New test to check the performance of layouting grids with content sized tracks.
6697
6698 * Layout/auto-grid-lots-of-data.html: Added.
6699
svillar@igalia.com261d4342013-11-22 09:25:01 +000067002013-11-08 Sergio Villar Senin <svillar@igalia.com>
6701
6702 [CSS Grid Layout] Run the content-sized tracks sizing algorithm only when required
6703 https://bugs.webkit.org/show_bug.cgi?id=124039
6704
6705 Reviewed by Dean Jackson.
6706
6707 From Blink r156028 and r156168 by <jchaffraix@chromium.org>.
6708
6709 New performance tests for layouts in grids with fixed size tracks.
6710
6711 * Layout/fixed-grid-lots-of-data.html: Added.
6712
rego@igalia.comec186002013-11-19 09:28:38 +000067132013-11-19 Manuel Rego Casasnovas <rego@igalia.com>
6714
6715 [CSS Regions] Add performance test for selection
6716 https://bugs.webkit.org/show_bug.cgi?id=119230
6717
6718 Reviewed by Ryosuke Niwa.
6719
6720 Add new performance test for selection in CSS Regions. It checks a
6721 selection from the first region to the last one, passing through all the
6722 regions.
6723
6724 Test is skipped for now while implementation of selection in CSS Regions
6725 is still evolving.
6726
6727 * Layout/RegionsSelection.html: Added.
6728 * Layout/resources/regions.js:
6729 (.):
6730 * Skipped:
6731
rniwa@webkit.org2d9dd882013-11-18 15:28:47 +000067322013-11-18 Ryosuke Niwa <rniwa@webkit.org>
6733
rniwa@webkit.org22892652013-11-18 23:40:36 +00006734 Simplify and reformat the output of performance tests inside test runners
6735 https://bugs.webkit.org/show_bug.cgi?id=124496
6736
6737 Reviewed by Antti Koivisto.
6738
6739 As a preparation to support subtests for Dromaeo and DoYouEvenBench, simplify the output performance tests generate.
6740 Also modernize the output to better support "metric" concept we introduced a while ago.
6741
6742 New output on Dromaeo/dom-attr looks like this:
6743 -----------------------------------------------
6744 Running 5 times
6745 getAttribute -> [1105, 1108, 1134, 1137, 1154]
6746 element.property -> [1634, 1655, 1685, 1696, 1723]
6747 setAttribute -> [646.3536463536464, 651, 651, 656.3436563436563, 658]
6748 element.property = value -> [934, 949, 963, 964, 974]
6749 element.expando = value -> [419, 419.5804195804196, 421.57842157842157, 425.57442557442556, 429]
6750 element.expando -> [501, 517, 519.4805194805194, 521.4785214785214, 525]
6751
6752 1: 117.40644785571585 runs/s
6753 2: 118.84720469666297 runs/s
6754 3: 119.80547640905021 runs/s
6755 4: 120.51886194758805 runs/s
6756 5: 121.51924380569295 runs/s
6757
6758 :Time -> [117.40644785571585, 118.84720469666297, 119.80547640905021, 120.51886194758805, 121.51924380569295] runs/s
6759 mean: 119.619446942942 runs/s
6760 median: 119.80547640905021 runs/s
6761 stdev: 1.5769040458730506 runs/s
6762 min: 117.40644785571585 runs/s
6763 max: 121.51924380569295 runs/s
6764 -----------------------------------------------
6765
6766 * Dromaeo/resources/dromaeorunner.js:
6767 (DRT.progress): Use the new format for subtest reports.
6768 * resources/runner.js:
6769 (.): Declare verboseLogging, which is set to true outside of test runners.
6770 (PerfTestRunner.logInfo): Use verboseLogging instead of directly checking window.testRunner.
6771 (PerfTestRunner.logDetail): Added. Logs informative text with a label such as "mean: 123 s" with 4-space indentation.
6772 (PerfTestRunner.logStatistics): Use logDetail.
6773 (.start): Initialize verboseLogging. Also log "Running 20 times" as an informative log using logDetail.
6774 (.ignoreWarmUpAndLog): Use logDetail for showing the progress. These logs were useless inside test runners anyway
6775 because perftest didn't get to see any output until the test finished running.
6776 (.finish): Call logStatistics with metric name as opposed to a label. Each metric name is now prefixed with ':' to be
6777 distinguishable from subtests, making the new format forward compatible.
6778
67792013-11-18 Ryosuke Niwa <rniwa@webkit.org>
6780
rniwa@webkit.org2d9dd882013-11-18 15:28:47 +00006781 [Performance tests] Interactive/SelectAll.html throws an exception
6782 https://bugs.webkit.org/show_bug.cgi?id=124495
6783
6784 Reviewed by Antti Koivisto
6785
6786 Return a boolean indicating whether more values are needed or not in
6787 PerfTestRunner.measureValueAsync so that runTest can terminate gracefully.
6788
6789 * Interactive/SelectAll.html:
6790 (runTest): Don't schedule a timer for runTest if we've got enough values.
6791 * resources/runner.js:
6792 (PerfTestRunner.measureValueAsync): Returns true iff more values are needed.
6793
antti@apple.com67e53962013-11-13 12:26:55 +000067942013-11-13 Antti Koivisto <antti@apple.com>
6795
6796 This was supposed to test overflow-wrap:break-word instead of word-break:break-all.
6797
6798 Rubber-stamped by Andreas Kling.
6799
6800 * Layout/line-layout-simple.html:
6801
akling@apple.com9b6223e2013-11-12 09:44:27 +000068022013-11-12 Andreas Kling <akling@apple.com>
6803
akling@apple.com31b95722013-11-12 18:19:11 +00006804 Remove body onload handler from html5-8266.html that was causing
6805 the test to sometimes finish before doing anything interesting.
6806
6807 Unskip Parser/HTML5-8266-FullRender.html now that it's stable.
6808
6809 Rubber-stamped by Antti Koivisto.
6810
6811 * Parser/resources/html5-8266.html:
6812 * Skipped:
6813
68142013-11-12 Andreas Kling <akling@apple.com>
6815
akling@apple.com0a0c12d2013-11-12 14:03:06 +00006816 Neutralize external resource loads in the new HTML5 spec copy.
6817
6818 Skip Parser/HTML5-8266-FullRender.html until I can make it less flaky.
6819
6820 * Parser/resources/html5-8266.html:
6821 * Skipped:
6822
68232013-11-12 Andreas Kling <akling@apple.com>
6824
akling@apple.com9b6223e2013-11-12 09:44:27 +00006825 Import a fresh version of the full HTML5 spec for perf testing.
6826
6827 Rubber-stamped by Antti Koivisto.
6828
6829 * Parser/HTML5-8266-FullRender.html: Added.
6830 * Parser/HTML5-8266-ParseOnly.html: Added.
6831 * Parser/resources/html5-8266.html: Added.
6832
antti@apple.coma8052e12013-11-09 11:14:37 +000068332013-11-09 Antti Koivisto <antti@apple.com>
6834
6835 Add subtest for word-break:break-all to Layout/line-layout-simple.html
6836 https://bugs.webkit.org/show_bug.cgi?id=124103
6837
6838 Reviewed by Andreas Kling.
6839
6840 * Layout/line-layout-simple.html:
6841
6842 Combination "white-space:pre-wrap; word-break:break-all" is common for pure text.
6843
antti@apple.comc3a1d122013-11-08 14:57:51 +000068442013-11-08 Antti Koivisto <antti@apple.com>
6845
6846 Add line layout performance test that exercises more cases
6847 https://bugs.webkit.org/show_bug.cgi?id=124041
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00006848
antti@apple.comc3a1d122013-11-08 14:57:51 +00006849 Reviewed by Anders Carlsson.
6850
6851 The existing line-layout.html covers the most basic left-aligned case only.
6852 Add a test with more coverage for things that are mostly not yet supported by the simple
6853 line layout path:
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00006854
antti@apple.comc3a1d122013-11-08 14:57:51 +00006855 - centered text
6856 - right aligned text
6857 - justified text
6858 - pre
6859 - white-space:pre-wrap
6860 - text with simple inlines
6861 - text with br
6862
6863 * Layout/line-layout-simple.html: Added.
6864
svillar@igalia.comcb4d1572013-10-25 10:31:56 +000068652013-10-25 Sergio Villar Senin <svillar@igalia.com>
6866
6867 Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
6868 https://bugs.webkit.org/show_bug.cgi?id=118620
6869
6870 Reviewed by Antti Koivisto.
6871
6872 From Blink r152960 by <ojan@chromium.org>
6873
6874 New performance test for layouts in flexboxes.
6875
6876 * Layout/flexbox-lots-of-data.html: Added.
6877
commit-queue@webkit.org0165fb42013-10-24 16:35:44 +000068782013-10-24 Commit Queue <commit-queue@webkit.org>
6879
6880 Unreviewed, rolling out r157916.
6881 http://trac.webkit.org/changeset/157916
6882 https://bugs.webkit.org/show_bug.cgi?id=123274
6883
6884 Broke Layout/flexbox-lots-of-data.html on perfbot (Requested
6885 by ap on #webkit).
6886
6887 * Layout/flexbox-lots-of-data.html: Removed.
6888
svillar@igalia.coma4099802013-10-24 06:53:10 +000068892013-10-14 Sergio Villar Senin <svillar@igalia.com>
6890
6891 Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
6892 https://bugs.webkit.org/show_bug.cgi?id=118620
6893
6894 Reviewed by Antti Koivisto.
6895
6896 From Blink r152960 by <ojan@chromium.org>
6897
6898 New performance test for layouts in flexboxes.
6899
6900 * Layout/flexbox-lots-of-data.html: Added.
6901
rniwa@webkit.org3a43ae32013-10-06 22:07:48 +000069022013-10-06 Ryosuke Niwa <rniwa@webkit.org>
6903
6904 DoYouEvenBench: Make it work on Internet Explorer 11 Release Preview
6905 https://bugs.webkit.org/show_bug.cgi?id=122406
6906
6907 Reviewed by Darin Adler.
6908
6909 On Internet Explorer 11, $(elem).closest('li').data('id') fails to find the containig li of elem once
6910 the first item is marked complete or deleted until we get back to the event loop in the jQuery/TodoMVC.
6911 Worked around this limitation by overriding app.getTodo to use each item's id computed in advance.
6912
6913 Also use $.text instead of execCommand('InsertText') in FlightJS/MailClient since Internet Explorer
6914 doesn't support execCommand('InsertText'). Also select the recipient to avoid exceptions.
6915
6916 * DoYouEvenBench/benchmark.html:
6917
rniwa@webkit.org32439c52013-10-05 09:41:19 +000069182013-10-05 Ryosuke Niwa <rniwa@webkit.org>
6919
6920 DoYouEvenBench: Add Facebook's React TodoMVC test case
6921 https://bugs.webkit.org/show_bug.cgi?id=122379
6922
6923 Reviewed by Andreas Kling.
6924
6925 Add React/TodoMVC as a new test case. Somehow we beat Firefox on this one as well.
6926
6927 * DoYouEvenBench/benchmark.html:
6928 * DoYouEvenBench/todomvc/labs: Added.
6929 * DoYouEvenBench/todomvc/labs/architecture-examples: Added.
6930 * DoYouEvenBench/todomvc/labs/architecture-examples/react: Added.
6931 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower.json: Added.
6932 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components: Added.
6933 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director: Added.
6934 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Added.
6935 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Added.
6936 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build: Added.
6937 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js: Added.
6938 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js: Added.
6939 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js: Added.
6940 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react: Added.
6941 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Added.
6942 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Added.
6943 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Added.
6944 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Added.
6945 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common: Added.
6946 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Added.
6947 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Added.
6948 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Added.
6949 * DoYouEvenBench/todomvc/labs/architecture-examples/react/index.html: Added.
6950 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js: Added.
6951 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/app.jsx: Added.
6952 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/footer.jsx: Added.
6953 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Added.
6954 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/utils.jsx: Added.
6955 * DoYouEvenBench/todomvc/labs/architecture-examples/react/readme.md: Added.
6956
rniwa@webkit.org0ee4d6f2013-09-25 22:18:52 +000069572013-09-25 Ryosuke Niwa <rniwa@webkit.org>
6958
6959 DoYouEvenBench: Add a test case for FlightJS
6960 https://bugs.webkit.org/show_bug.cgi?id=121926
6961
6962 Reviewed by Antti Koivisto.
6963
6964 Add a FlightJS test case.
6965
6966 * DoYouEvenBench/benchmark.html:
6967 * DoYouEvenBench/benchmark.js:
6968 * DoYouEvenBench/flightjs-example-app: Added.
6969 * DoYouEvenBench/flightjs-example-app/LICENSE.md: Added.
6970 * DoYouEvenBench/flightjs-example-app/README.md: Added.
6971 * DoYouEvenBench/flightjs-example-app/app: Added.
6972 * DoYouEvenBench/flightjs-example-app/app/boot: Added.
6973 * DoYouEvenBench/flightjs-example-app/app/boot/page.js: Added.
6974 * DoYouEvenBench/flightjs-example-app/app/component_data: Added.
6975 * DoYouEvenBench/flightjs-example-app/app/component_data/compose_box.js: Added.
6976 * DoYouEvenBench/flightjs-example-app/app/component_data/mail_items.js: Added.
6977 * DoYouEvenBench/flightjs-example-app/app/component_data/move_to.js: Added.
6978 * DoYouEvenBench/flightjs-example-app/app/component_ui: Added.
6979 * DoYouEvenBench/flightjs-example-app/app/component_ui/compose_box.js: Added.
6980 * DoYouEvenBench/flightjs-example-app/app/component_ui/folders.js: Added.
6981 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_controls.js: Added.
6982 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_items.js: Added.
6983 * DoYouEvenBench/flightjs-example-app/app/component_ui/move_to_selector.js: Added.
6984 * DoYouEvenBench/flightjs-example-app/app/component_ui/with_select.js: Added.
6985 * DoYouEvenBench/flightjs-example-app/app/css: Added.
6986 * DoYouEvenBench/flightjs-example-app/app/css/custom.css: Added.
6987 * DoYouEvenBench/flightjs-example-app/app/data.js: Added.
6988 * DoYouEvenBench/flightjs-example-app/app/templates.js: Added.
6989 * DoYouEvenBench/flightjs-example-app/components: Added.
6990 * DoYouEvenBench/flightjs-example-app/components/bootstrap: Added.
6991 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css: Added.
6992 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Added.
6993 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Added.
6994 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.css: Added.
6995 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Added.
6996 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img: Added.
6997 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Added.
6998 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Added.
6999 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js: Added.
7000 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.js: Added.
7001 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Added.
7002 * DoYouEvenBench/flightjs-example-app/components/es5-shim: Added.
7003 * DoYouEvenBench/flightjs-example-app/components/es5-shim/.gitignore: Added.
7004 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CHANGES: Added.
7005 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Added.
7006 * DoYouEvenBench/flightjs-example-app/components/es5-shim/LICENSE: Added.
7007 * DoYouEvenBench/flightjs-example-app/components/es5-shim/README.md: Added.
7008 * DoYouEvenBench/flightjs-example-app/components/es5-shim/component.json: Added.
7009 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.js: Added.
7010 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.min.js: Added.
7011 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.js: Added.
7012 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.min.js: Added.
7013 * DoYouEvenBench/flightjs-example-app/components/es5-shim/package.json: Added.
7014 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests: Added.
7015 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers: Added.
7016 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Added.
7017 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Added.
7018 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Added.
7019 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/index.html: Added.
7020 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib: Added.
7021 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Added.
7022 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Added.
7023 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Added.
7024 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Added.
7025 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Added.
7026 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec: Added.
7027 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Added.
7028 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Added.
7029 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Added.
7030 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Added.
7031 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Added.
7032 * DoYouEvenBench/flightjs-example-app/components/flight: Added.
7033 * DoYouEvenBench/flightjs-example-app/components/flight/.travis.yml: Added.
7034 * DoYouEvenBench/flightjs-example-app/components/flight/lib: Added.
7035 * DoYouEvenBench/flightjs-example-app/components/flight/lib/advice.js: Added.
7036 * DoYouEvenBench/flightjs-example-app/components/flight/lib/component.js: Added.
7037 * DoYouEvenBench/flightjs-example-app/components/flight/lib/compose.js: Added.
7038 * DoYouEvenBench/flightjs-example-app/components/flight/lib/index.js: Added.
7039 * DoYouEvenBench/flightjs-example-app/components/flight/lib/logger.js: Added.
7040 * DoYouEvenBench/flightjs-example-app/components/flight/lib/registry.js: Added.
7041 * DoYouEvenBench/flightjs-example-app/components/flight/lib/utils.js: Added.
7042 * DoYouEvenBench/flightjs-example-app/components/flight/tools: Added.
7043 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug: Added.
7044 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug/debug.js: Added.
7045 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight: Added.
7046 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/LICENSE.md: Added.
7047 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/README.md: Added.
7048 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/bower.json: Added.
7049 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib: Added.
7050 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Added.
7051 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery: Added.
7052 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib: Added.
7053 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Added.
7054 * DoYouEvenBench/flightjs-example-app/components/jquery: Added.
7055 * DoYouEvenBench/flightjs-example-app/components/jquery/component.json: Added.
7056 * DoYouEvenBench/flightjs-example-app/components/jquery/composer.json: Added.
7057 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.js: Added.
7058 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.min.js: Added.
7059 * DoYouEvenBench/flightjs-example-app/components/mustache: Added.
7060 * DoYouEvenBench/flightjs-example-app/components/mustache/mustache.js: Added.
7061 * DoYouEvenBench/flightjs-example-app/components/requirejs: Added.
7062 * DoYouEvenBench/flightjs-example-app/components/requirejs/require.js: Added.
7063 * DoYouEvenBench/flightjs-example-app/index.html: Added.
7064 * DoYouEvenBench/flightjs-example-app/karma.conf.js: Added.
7065 * DoYouEvenBench/flightjs-example-app/package.json: Added.
7066 * DoYouEvenBench/flightjs-example-app/requireMain.js: Added.
7067
rniwa@webkit.orgc239f9f2013-09-19 08:07:48 +000070682013-09-19 Ryosuke Niwa <rniwa@webkit.org>
7069
rniwa@webkit.org47d051a2013-09-19 17:57:47 +00007070 DoYouEvenBench: Indentations in benchmark.js and benchmark.html are all messed up
7071 https://bugs.webkit.org/show_bug.cgi?id=121597
7072
7073 Reviewed by Anders Carlsson.
7074
7075 Fixed indentations.
7076
7077 * DoYouEvenBench/benchmark.html:
7078 * DoYouEvenBench/benchmark.js:
7079 (SimplePromise.prototype.resolve.else):
7080 (SimplePromise.prototype.resolve):
7081 (BenchmarkRunner.waitForElement.resolveIfReady):
7082 (BenchmarkRunner.waitForElement):
7083 (BenchmarkRunner._waitAndWarmUp.Fibonacci):
7084 (BenchmarkRunner._finalize):
7085
70862013-09-19 Ryosuke Niwa <rniwa@webkit.org>
7087
rniwa@webkit.orgc239f9f2013-09-19 08:07:48 +00007088 Add an AngularJS test to DoYouEvenBench
7089 https://bugs.webkit.org/show_bug.cgi?id=121595
7090
7091 Reviewed by Antti Koivisto.
7092
7093 * DoYouEvenBench/benchmark.html:
7094 * DoYouEvenBench/todomvc/architecture-examples/angularjs: Added.
7095 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower.json: Added.
7096 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components: Added.
7097 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular: Added.
7098 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks: Added.
7099 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Added.
7100 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Added.
7101 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common: Added.
7102 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Added.
7103 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Added.
7104 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Added.
7105 * DoYouEvenBench/todomvc/architecture-examples/angularjs/index.html: Added.
7106 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js: Added.
7107 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/app.js: Added.
7108 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers: Added.
7109 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Added.
7110 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives: Added.
7111 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Added.
7112 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Added.
7113 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Added.
7114 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services: Added.
7115 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Added.
7116 * DoYouEvenBench/todomvc/architecture-examples/angularjs/readme.md: Added.
7117 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test: Added.
7118 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config: Added.
7119 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Added.
7120 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/package.json: Added.
7121 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/readme.md: Added.
7122 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit: Added.
7123 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Added.
7124 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Added.
7125
rniwa@webkit.org41ae1952013-09-19 00:15:35 +000071262013-09-17 Ryosuke Niwa <rniwa@webkit.org>
7127
7128 Add a not completely unrealistic DOM Benchmark
7129 https://bugs.webkit.org/show_bug.cgi?id=121361
7130
7131 Reviewed by Filip Pizlo.
7132
7133 Add a DOM benchmark based on TodoMVC for vanilla JS, Ember.js, Backbone.js, and jQuery.
7134 We'll add more frameworks and demo apps as we go.
7135
7136 * DoYouEvenBench: Added.
7137 * DoYouEvenBench/benchmark.html: Added.
7138 * DoYouEvenBench/benchmark.js: Added.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00007139 (SimplePromise):
rniwa@webkit.org41ae1952013-09-19 00:15:35 +00007140 (SimplePromise.prototype.then):
7141 (SimplePromise.prototype.resolve.else):
7142 (SimplePromise.prototype.resolve):
7143 (BenchmarkRunner.suite):
7144 (BenchmarkRunner.waitForElement.resolveIfReady):
7145 (BenchmarkRunner.waitForElement):
7146 (BenchmarkRunner._removeFrame):
7147 (BenchmarkRunner._appendFrame):
7148 (BenchmarkRunner._waitAndWarmUp.Fibonacci):
7149 (BenchmarkRunner._testName):
7150 (BenchmarkRunner._testItemId):
7151 (BenchmarkRunner.listSuites.button.onclick):
7152 (BenchmarkRunner.listSuites.callNextStep):
7153 (BenchmarkRunner.listSuites):
7154 (BenchmarkState):
7155 (BenchmarkState.prototype.currentSuite):
7156 (BenchmarkState.prototype.currentTest):
7157 (BenchmarkState.prototype.next):
7158 (BenchmarkState.prototype.isFirstTest):
7159 (BenchmarkState.prototype.prepareCurrentSuite.frame.onload):
7160 (BenchmarkRunner.step):
7161 (BenchmarkRunner._runTestAndRecordResults):
7162 (BenchmarkRunner._finalize):
7163 * DoYouEvenBench/todomvc: Added.
7164 * DoYouEvenBench/todomvc/architecture-examples: Added.
7165 * DoYouEvenBench/todomvc/architecture-examples/backbone: Added.
7166 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower.json: Added.
7167 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components: Added.
7168 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone: Added.
7169 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage: Added.
7170 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Added.
7171 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Added.
7172 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery: Added.
7173 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Added.
7174 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common: Added.
7175 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Added.
7176 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Added.
7177 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Added.
7178 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore: Added.
7179 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Added.
7180 * DoYouEvenBench/todomvc/architecture-examples/backbone/index.html: Added.
7181 * DoYouEvenBench/todomvc/architecture-examples/backbone/js: Added.
7182 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/app.js: Added.
7183 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections: Added.
7184 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections/todos.js: Added.
7185 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models: Added.
7186 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models/todo.js: Added.
7187 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers: Added.
7188 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers/router.js: Added.
7189 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views: Added.
7190 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/app-view.js: Added.
7191 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/todo-view.js: Added.
7192 * DoYouEvenBench/todomvc/architecture-examples/backbone/readme.md: Added.
7193 * DoYouEvenBench/todomvc/architecture-examples/emberjs: Added.
7194 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower.json: Added.
7195 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components: Added.
7196 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember: Added.
7197 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter: Added.
7198 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Added.
7199 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Added.
7200 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars: Added.
7201 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Added.
7202 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery: Added.
7203 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Added.
7204 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common: Added.
7205 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Added.
7206 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Added.
7207 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Added.
7208 * DoYouEvenBench/todomvc/architecture-examples/emberjs/index.html: Added.
7209 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js: Added.
7210 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/app.js: Added.
7211 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers: Added.
7212 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Added.
7213 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Added.
7214 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs: Added.
7215 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Added.
7216 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models: Added.
7217 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/store.js: Added.
7218 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/todo.js: Added.
7219 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views: Added.
7220 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Added.
7221 * DoYouEvenBench/todomvc/architecture-examples/emberjs/readme.md: Added.
7222 * DoYouEvenBench/todomvc/architecture-examples/emberjs/test.html: Added.
7223 * DoYouEvenBench/todomvc/architecture-examples/jquery: Added.
7224 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower.json: Added.
7225 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components: Added.
7226 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars: Added.
7227 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Added.
7228 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery: Added.
7229 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Added.
7230 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common: Added.
7231 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Added.
7232 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Added.
7233 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Added.
7234 * DoYouEvenBench/todomvc/architecture-examples/jquery/css: Added.
7235 * DoYouEvenBench/todomvc/architecture-examples/jquery/css/app.css: Added.
7236 * DoYouEvenBench/todomvc/architecture-examples/jquery/index.html: Added.
7237 * DoYouEvenBench/todomvc/architecture-examples/jquery/js: Added.
7238 * DoYouEvenBench/todomvc/architecture-examples/jquery/js/app.js: Added.
7239 * DoYouEvenBench/todomvc/architecture-examples/jquery/readme.md: Added.
7240 * DoYouEvenBench/todomvc/license.md: Added.
7241 * DoYouEvenBench/todomvc/readme.md: Added.
7242 * DoYouEvenBench/todomvc/vanilla-examples: Added.
7243 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs: Added.
7244 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower.json: Added.
7245 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components: Added.
7246 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common: Added.
7247 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Added.
7248 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Added.
7249 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Added.
7250 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/index.html: Added.
7251 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js: Added.
7252 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/app.js: Added.
7253 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/controller.js: Added.
7254 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/helpers.js: Added.
7255 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/model.js: Added.
7256 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/store.js: Added.
7257 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/view.js: Added.
7258 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/readme.md: Added.
7259 * Skipped:
7260
fpizlo@apple.comb144d212013-09-05 02:53:16 +000072612013-09-04 Filip Pizlo <fpizlo@apple.com>
7262
7263 Introduce a version of SunSpider that runs for a really long time (about 1 sec on my machine)
7264
7265 Rubber stamped by Mark Hahnenberg.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00007266
fpizlo@apple.comb144d212013-09-05 02:53:16 +00007267 This isn't meant for serious VM-to-VM performance comparisons, but it is useful
7268 to see how these benchmarks behave when they're completely warmed up.
7269
7270 * LongSpider: Added.
7271 * LongSpider/3d-cube.js: Added.
7272 (DrawLine):
7273 (CalcCross):
7274 (CalcNormal):
7275 (CreateP):
7276 (MMulti):
7277 (VMulti):
7278 (VMulti2):
7279 (MAdd):
7280 (Translate):
7281 (RotateX):
7282 (RotateY):
7283 (RotateZ):
7284 (DrawQube):
7285 (Loop):
7286 (Init):
7287 * LongSpider/3d-morph.js: Added.
7288 (loops.3500.nx.120.nz.120.morph):
7289 * LongSpider/3d-raytrace.js: Added.
7290 (createVector):
7291 (sqrLengthVector):
7292 (lengthVector):
7293 (addVector):
7294 (subVector):
7295 (scaleVector):
7296 (normaliseVector):
7297 (add):
7298 (sub):
7299 (scalev):
7300 (dot):
7301 (scale):
7302 (cross):
7303 (normalise):
7304 (transformMatrix):
7305 (invertMatrix):
7306 (Triangle):
7307 (Triangle.prototype.intersect):
7308 (Scene):
7309 (Scene.prototype.intersect):
7310 (Scene.prototype.blocked):
7311 (Camera):
7312 (Camera.prototype.generateRayPair):
7313 (renderRows):
7314 (Camera.prototype.render):
7315 (raytraceScene.floorShader):
7316 (raytraceScene):
7317 (arrayToCanvasCommands):
7318 * LongSpider/access-binary-trees.js: Added.
7319 (TreeNode):
7320 (TreeNode.prototype.itemCheck):
7321 (bottomUpTree):
7322 * LongSpider/access-fannkuch.js: Added.
7323 (fannkuch):
7324 * LongSpider/access-nbody.js: Added.
7325 (Body):
7326 (Body.prototype.offsetMomentum):
7327 (Jupiter):
7328 (Saturn):
7329 (Uranus):
7330 (Neptune):
7331 (Sun):
7332 (NBodySystem):
7333 (NBodySystem.prototype.advance):
7334 (NBodySystem.prototype.energy):
7335 * LongSpider/access-nsieve.js: Added.
7336 (pad):
7337 (nsieve):
7338 (sieve):
7339 * LongSpider/bitops-3bit-bits-in-byte.js: Added.
7340 (fast3bitlookup):
7341 (TimeFunc):
7342 * LongSpider/bitops-bits-in-byte.js: Added.
7343 (bitsinbyte):
7344 (TimeFunc):
7345 * LongSpider/bitops-nsieve-bits.js: Added.
7346 (pad):
7347 (primes):
7348 (sieve):
7349 * LongSpider/controlflow-recursive.js: Added.
7350 (ack):
7351 (fib):
7352 (tak):
7353 * LongSpider/crypto-aes.js: Added.
7354 (Cipher):
7355 (SubBytes):
7356 (ShiftRows):
7357 (MixColumns):
7358 (AddRoundKey):
7359 (KeyExpansion):
7360 (SubWord):
7361 (RotWord):
7362 (AESEncryptCtr):
7363 (AESDecryptCtr):
7364 (escCtrlChars):
7365 * LongSpider/crypto-md5.js: Added.
7366 (hex_md5):
7367 (b64_md5):
7368 (str_md5):
7369 (hex_hmac_md5):
7370 (b64_hmac_md5):
7371 (str_hmac_md5):
7372 (md5_vm_test):
7373 (core_md5):
7374 (md5_cmn):
7375 (md5_ff):
7376 (md5_gg):
7377 (md5_hh):
7378 (md5_ii):
7379 (core_hmac_md5):
7380 (safe_add):
7381 (bit_rol):
7382 (str2binl):
7383 (binl2str):
7384 (binl2hex):
7385 (binl2b64):
7386 * LongSpider/crypto-sha1.js: Added.
7387 (hex_sha1):
7388 (b64_sha1):
7389 (str_sha1):
7390 (hex_hmac_sha1):
7391 (b64_hmac_sha1):
7392 (str_hmac_sha1):
7393 (sha1_vm_test):
7394 (core_sha1):
7395 (sha1_ft):
7396 (sha1_kt):
7397 (core_hmac_sha1):
7398 (safe_add):
7399 (rol):
7400 (str2binb):
7401 (binb2str):
7402 (binb2hex):
7403 (binb2b64):
7404 * LongSpider/date-format-tofte.js: Added.
7405 (arrayExists):
7406 (.a):
7407 (.A):
7408 (.B):
7409 (.d):
7410 (.D):
7411 (.F):
7412 (.g):
7413 (.G):
7414 (.h):
7415 (.H):
7416 (.i):
7417 (.j):
7418 (.l):
7419 (.L):
7420 (.m):
7421 (.M):
7422 (.n):
7423 (.O):
7424 (.r):
7425 (.S):
7426 (.s):
7427 (.t):
7428 (.U):
7429 (.W):
7430 (.w):
7431 (.Y):
7432 (.y):
7433 (.z):
7434 (Date.prototype.formatDate):
7435 * LongSpider/date-format-xparb.js: Added.
7436 (Date.prototype.dateFormat):
7437 (Date.createNewFormat):
7438 (Date.getFormatCode):
7439 (Date.parseDate):
7440 (Date.createParser):
7441 (Date.formatCodeToRegex):
7442 (Date.prototype.getTimezone):
7443 (Date.prototype.getGMTOffset):
7444 (Date.prototype.getDayOfYear):
7445 (Date.prototype.getWeekOfYear):
7446 (Date.prototype.isLeapYear):
7447 (Date.prototype.getFirstDayOfMonth):
7448 (Date.prototype.getLastDayOfMonth):
7449 (Date.prototype.getDaysInMonth):
7450 (Date.prototype.getSuffix):
7451 (String.escape):
7452 * LongSpider/math-cordic.js: Added.
7453 (FIXED):
7454 (FLOAT):
7455 (DEG2RAD):
7456 (cordicsincos):
7457 (cordic):
7458 * LongSpider/math-partial-sums.js: Added.
7459 (partial):
7460 * LongSpider/math-spectral-norm.js: Added.
7461 (A):
7462 (Au):
7463 (Atu):
7464 (AtAu):
7465 (spectralnorm):
7466 * LongSpider/string-base64.js: Added.
7467 (toBase64):
7468 (base64ToString):
7469 * LongSpider/string-fasta.js: Added.
7470 (rand):
7471 (makeCumulative):
7472 (fastaRepeat):
7473 (fastaRandom):
7474 * LongSpider/string-tagcloud.js: Added.
7475 (.Array.prototype.toJSONString):
7476 (.Boolean.prototype.toJSONString):
7477 (.Date.prototype.toJSONString):
7478 (.Number.prototype.toJSONString):
7479 (.Object.prototype.toJSONString):
7480 (.):
7481
commit-queue@webkit.orgafd67192013-06-10 14:19:13 +000074822013-06-10 Radu Stavila <stavila@adobe.com>
7483
7484 [CSS Regions] Rename region-overflow to region-fragment
7485 https://bugs.webkit.org/show_bug.cgi?id=117397
7486
7487 Renamed -webkit-region-overflow to -webkit-region-fragment according to the new working draft
7488 at http://www.w3.org/TR/2013/WD-css3-regions-20130528/#the-region-fragment-property
7489
7490 Reviewed by Alexander Pavlov.
7491
7492 * Layout/resources/regions.css:
7493
zandobersek@gmail.com43a80132013-06-05 07:08:40 +000074942013-06-05 Zan Dobersek <zdobersek@igalia.com>
7495
7496 Move MemoryInfo under window.internals
7497 https://bugs.webkit.org/show_bug.cgi?id=117197
7498
7499 Reviewed by Ryosuke Niwa.
7500
7501 * resources/runner.js: Remove the setMemoryEnabled call, it's not required anymore as the memory
7502 info is now accessed through window.internals and doesn't need the setting to be enabled to work.
7503
rniwa@webkit.orgce185592013-05-30 10:43:06 +000075042013-05-30 Ryosuke Niwa <rniwa@webkit.org>
7505
7506 Web Inspector: tests in PerformanceTests/inspector/ are timing out
7507 https://bugs.webkit.org/show_bug.cgi?id=77024
7508
7509 Reviewed by Andreas Kling.
7510
7511 These tests have been disabled for ages and don't conform to the standard format.
7512
7513 * Skipped:
7514 * inspector: Removed.
7515 * inspector/console-300-lines.html: Removed.
7516 * inspector/first-open-elements.html: Removed.
7517 * inspector/first-open-resources.html: Removed.
7518 * inspector/first-open-scripts.html.broken: Removed.
7519 * inspector/heap-snapshot-advanced.html: Removed.
7520 * inspector/heap-snapshot-performance-test.js: Removed.
7521 * inspector/heap-snapshot.html: Removed.
7522 * inspector/inspector-startup-time.html: Removed.
7523 * inspector/network-append-30-requests.html.broken: Removed.
7524 * inspector/performance-test.js: Removed.
7525 * inspector/show-panel.html.broken: Removed.
7526
benjamin@webkit.org6943fd32013-05-27 22:31:02 +000075272013-05-27 Benjamin Poulain <benjamin@webkit.org>
7528
7529 Add a balanced benchmark for QuerySelector
7530 https://bugs.webkit.org/show_bug.cgi?id=116811
7531
7532 Reviewed by Sam Weinig.
7533
7534 The goal of this benchmark is to have an overview of querySelector as typically used
7535 by webpages.
7536
7537 It uses queries similar to what is used by popular websites and applies somewhat
7538 similar weighting for each type of query.
7539
7540 The tree used for the queries is intentionally kept simple to ensure we measure QuerySelector
7541 a not purely the overhead of traversal.
7542
7543 * CSS/QuerySelector.html: Added.
7544 * CSS/resources/query-selector.html: Added.
7545
rniwa@webkit.orgd5113052013-05-18 19:27:29 +000075462013-05-18 Ryosuke Niwa <rniwa@webkit.org>
7547
7548 Add a performance test for copying
7549 https://bugs.webkit.org/show_bug.cgi?id=116394
7550
7551 Reviewed by Andreas Kling.
7552
7553 Added. We're going to skip this test by default since it's such a microbenchmark, and also because
7554 it currently takes 30 minutes to run. As insane as it sounds, each copy takes rouhgly 57 seconds.
7555
7556 Running Interactive/CopyAll.html (1 of 1)
7557 RESULT Interactive: CopyAll: Time= 57618.05 ms
7558 median= 57135.0 ms, stdev= 1542.07271571 ms, min= 55095.0 ms, max= 60913.0 ms
7559 RESULT Interactive: CopyAll: JSHeap= 102811.2 bytes
7560 median= 103272.0 bytes, stdev= 1115.28148913 bytes, min= 100648.0 bytes, max= 103504.0 bytes
7561 RESULT Interactive: CopyAll: Malloc= 446408712.0 bytes
7562 median= 459156772.0 bytes, stdev= 20007346.3266 bytes, min= 415564040.0 bytes, max= 462011928.0 bytes
7563 Finished: 1766.883236 s
7564
7565 * Interactive/CopyAll.html: Added.
7566 * Skipped:
7567
commit-queue@webkit.org9a0524c2013-05-13 14:03:57 +000075682013-05-13 Seokju Kwon <seokju.kwon@gmail.com>
7569
7570 Web Inspector: Get rid of native-memory-snapshot in performance test
7571 https://bugs.webkit.org/show_bug.cgi?id=116013
7572
7573 Reviewed by Andreas Kling.
7574
7575 Remove native-memory-snapshot.html from PerformanceTests.
7576
7577 * inspector/native-memory-snapshot.html: Removed.
7578 * inspector/performance-test.js:
7579 (initialize_TimeTracker.Timer):
7580 (initialize_TimeTracker.Timer.prototype._dump):
7581 (initialize_TimeTracker.InspectorTest.runPerformanceTest):
7582
benjamin@webkit.org8cee4972013-04-11 00:20:36 +000075832013-04-10 Benjamin Poulain <bpoulain@apple.com>
7584
7585 Mass remove all the empty directories
7586
7587 Rubberstamped by Ryosuke Niwa.
7588
7589 * Bindings/resources: Removed.
7590
glenn@skynav.com5e4d7e02013-04-02 23:31:18 +000075912013-04-02 Glenn Adams <glenn@skynav.com>
7592
7593 Need japanese line layout performance test
7594 https://bugs.webkit.org/show_bug.cgi?id=113811
7595
7596 Reviewed by Ryosuke Niwa.
7597
7598 Will be used by https://bugs.webkit.org/show_bug.cgi?id=105692 to test potential performance regression
7599 for Japanese (and other CJK) line break changes.
7600
7601 * Layout/LineLayoutJapanese.html: Added.
7602 * Skipped: Skip this test by default.
7603
abucur@adobe.combfe3d622013-03-29 14:14:23 +000076042013-03-29 Andrei Bucur <abucur@adobe.com>
7605
7606 [CSS Regions] Add performance tests
7607 https://bugs.webkit.org/show_bug.cgi?id=113303
7608
7609 Reviewed by Antti Koivisto.
7610
7611 Add simple performance tests for regions, without nested named flows: a region chain and a flow article.
7612 The regions.js script is used to generate the tests and can set the following parameters: the number of regions,
7613 the number of paragraphs, the regions width, height, max-height and the propability of a forced break after a paragraph.
7614
7615 The tests are skipped for now. They should be enabled once the regions performance is stable enough to create a baseline.
7616
7617 * Layout/RegionsAuto.html: Added. A few regions with a short article. The regions have auto-height and some
7618 paragraphs (80%) have forced breaks after. Stress test for the auto-height algorithm.
7619 * Layout/RegionsAutoMaxHeight.html: Added. A lot of regions with auto-height and max-height. Tests the impact of
7620 max-height on the auto-height algorithm.
7621 * Layout/RegionsFixed.html: Added. A lot of regions with a long article. Some paragraphs (50%) have forced breaks after.
7622 Stress test for the regions layout algorithm.
7623 * Layout/RegionsFixedShort.html: Added. A lot of short regions with a long content. Tests the impact of unforced breaks
7624 on the layout speed.
7625 * Layout/resources/regions.css: Added.
7626 (.articleInFlow):
7627 (.articleNone):
7628 (.region):
7629 (.contentParagraph):
7630 (.breakAfter):
7631 (.regionContainer):
7632 * Layout/resources/regions.js: Added.
7633 (.):
7634 * Skipped:
7635
rniwa@webkit.org4fffc652013-03-27 17:54:52 +000076362013-03-26 Ryosuke Niwa <rniwa@webkit.org>
7637
7638 Add a performance tests for selecting all content in a document
7639 https://bugs.webkit.org/show_bug.cgi?id=113358
7640
7641 Reviewed by Levi Weintraub.
7642
7643 Add a performance test for selecting all. We wait for paint to happen by setTimeout(~, 0).
7644
7645 Example outputs:
7646 RESULT Interactive: SelectAll: Time= 652.6 ms
7647 median= 644.5 ms, stdev= 54.6177144967 ms, min= 599.0 ms, max= 773.0 ms
7648
7649 RESULT Interactive: SelectAll: Time= 654.4 ms
7650 median= 633.5 ms, stdev= 55.9223145368 ms, min= 600.0 ms, max= 769.0 ms
7651
7652 RESULT Interactive: SelectAll: Time= 657.9 ms
7653 median= 640.0 ms, stdev= 54.1420159833 ms, min= 604.0 ms, max= 774.0 ms
7654
7655 * Interactive/SelectAll.html: Added.
7656 * Skipped:
7657
commit-queue@webkit.orgebcd28d2013-03-19 16:06:42 +000076582013-03-19 Alexei Filippov <alph@chromium.org>
7659
7660 Web Inspector: Fix heap profiler performance tests.
7661 https://bugs.webkit.org/show_bug.cgi?id=112701
7662
7663 Reviewed by Yury Semikhatsky.
7664
7665 The tests were broken by profile types refactoring.
7666
7667 * inspector/heap-snapshot-performance-test.js:
7668 (test.performanceTest.step0):
7669 (test.performanceTest.step1):
7670
eric@webkit.orgc037fd22013-03-05 19:07:26 +000076712013-03-05 Eric Seidel <eric@webkit.org>
7672
7673 Add html-parser-threaded perf test now that the threaded parser is enabled by default
7674 https://bugs.webkit.org/show_bug.cgi?id=111200
7675
7676 Reviewed by Ryosuke Niwa.
7677
7678 The old srcdoc test no longer triggers the threaded parser due to compatibility fixes.
7679
7680 * Parser/html-parser-threaded.html: Renamed from PerformanceTests/Parser/html-parser-srcdoc.html.
7681 * Skipped: Unfortunately this new test is still skipped too.
7682
eric@webkit.org3303e622013-03-05 01:58:41 +000076832013-03-04 Eric Seidel <eric@webkit.org>
7684
7685 Add PerformanceTest for document startup via iframe append/remove
7686 https://bugs.webkit.org/show_bug.cgi?id=111389
7687
7688 Reviewed by Kentaro Hara.
7689
7690 We'd like pages with lots of iframes to be fast.
7691 This test shows that at least for V8/Chromium we spend
7692 all our time booting v8.
7693
7694 On my 32-core linux machine I see about 70 runs/sec in
7695 Release and 5 runs/sec in Debug.
7696
7697 * DOM/iframe-append-remove.html: Added.
7698
rniwa@webkit.org855a7722013-03-03 23:19:31 +000076992013-03-03 Ryosuke Niwa <rniwa@webkit.org>
7700
7701 Some perf. tests have variances that differ greatly between runs
7702 https://bugs.webkit.org/show_bug.cgi?id=97510
7703
7704 Reviewed by Benjamin Poulain.
7705
7706 In order to control the number of iterations and processes to use from run-perf-tests, always use 20
7707 iterations on all tests except Dromaeo, where even doing 5 iterations is prohibitively slow, by default.
7708 Without this change, it'll become extremely hard for us to tweak the number of iterations and processes
7709 to use from run-perf-tests.
7710
7711 * Animation/balls.html:
7712 * DOM/DOMTable.html:
7713 * DOM/resources/dom-perf.js:
7714 (runBenchmarkSuite.PerfTestRunner.measureTime):
7715 * Dromaeo/resources/dromaeorunner.js:
7716 * Layout/floats_100_100.html:
7717 * Layout/floats_100_100_nested.html:
7718 * Layout/floats_20_100.html:
7719 * Layout/floats_20_100_nested.html:
7720 * Layout/floats_2_100.html:
7721 * Layout/floats_2_100_nested.html:
7722 * Layout/floats_50_100.html:
7723 * Layout/floats_50_100_nested.html:
7724 * Layout/subtree-detaching.html:
7725 * Parser/html5-full-render.html:
7726 * SVG/SvgHitTesting.html:
7727 * resources/runner.js:
7728 * resources/results-template.html:
7729
rniwa@webkit.org2069f252013-02-27 05:02:14 +000077302013-02-25 Ryosuke Niwa <rniwa@webkit.org>
7731
7732 Use perf.webkit.org JSON format in results page
7733 https://bugs.webkit.org/show_bug.cgi?id=110842
7734
7735 Reviewed by Benjamin Poulain.
7736
7737 Updated the results page template to use the new JSON format.
7738
7739 Since new JSON format doesn't contain statistics such as stdev and min, added statistics.js to compute
7740 these values. Also use 95% percentile confidence interval instead of standard deviation in various places.
7741
7742 * resources/results-template.html: Added statistics.js as dependency.
7743 (TestResult): Updated to take a metric instead of its test. Replaced stdev() with confidenceIntervalDelta()
7744 now that we have a fancy Statistics class.
7745
7746 (TestRun.webkitRevision):
7747 (PerfTestMetric): Renamed from PerfTest since this object now encapsulates each measurement (such as time,
7748 JS heap, and malloc) in test. Also added a conversion table from a metric name to a unit since new format
7749 doesn't contain units.
7750 (PerfTestMetric.name): Updated to compute the full metric name from test name and metric name, matching
7751 the old behavior.
7752 (PerfTestMetric.isMemoryTest): Explicitly look for 'JSHeap' and 'Malloc' tests.
7753 (PerfTestMetric.smallerIsBetter):
7754
7755 (attachPlot): Deleted the code to deal with tests that don't provide individual iteration measurement
7756 since such tests no longer exist. Also fixed up the code compute y-axis range.
7757
7758 (createTableRow.markupForRun): Updated to use confidenceIntervalDelta() instead of stdev().
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00007759
rniwa@webkit.org2069f252013-02-27 05:02:14 +00007760 (init.addTests): Added. Recursively add metrics.
7761
7762 * resources/statistics.js: Added. Imported from perf.webkit.org.
7763 (Statistics.max):
7764 (Statistics.min):
7765 (Statistics.sum):
7766 (Statistics.squareSum):
7767 (Statistics.sampleStandardDeviation):
7768 (Statistics.supportedConfidenceLevels):
7769 (Statistics.confidenceIntervalDelta):
7770 (Statistics.confidenceInterval):
7771
commit-queue@webkit.org616b3d62013-02-11 13:54:01 +000077722013-02-11 Alexei Filippov <alph@chromium.org>
7773
7774 Web Inspector: Split Profiler domain in protocol into Profiler and HeapProfiler
7775 https://bugs.webkit.org/show_bug.cgi?id=108653
7776
7777 Reviewed by Yury Semikhatsky.
7778
7779 Currently CPU and heap profilers share the same domain 'Profiler' in the protocol.
7780 In fact these two profile types have not too much in common. So put each into its own domain.
7781 It should also help when Profiles panel gets split into several tools.
7782 This is the phase 1 which adds InspectorHeapProfilerAgent but doesn't
7783 change the original InspectorProfilerAgent.
7784
7785 * inspector/heap-snapshot-performance-test.js:
7786 (test.performanceTest.cleanup):
7787
dominik.rottsches@intel.com711fbce2013-02-05 19:15:57 +000077882013-02-05 Dominik Röttsches <dominik.rottsches@intel.com>
7789
7790 Add a performance test for arabic line breaking
7791 https://bugs.webkit.org/show_bug.cgi?id=108948
7792
7793 Reviewed by Eric Seidel.
7794
7795 Adding a perfomance test based to exercise the complex
7796 font path used in rendering arabic script.
7797
7798 * Layout/ArabicLineLayout.html: Added.
7799 * Skipped: New test skipped by default as per Ryosuke's request.
7800
yurys@chromium.org0d1a0842013-01-23 14:58:44 +000078012013-01-23 Yury Semikhatsky <yurys@chromium.org>
7802
7803 Web Inspector: some measurements are missing in PerformanceTests/inspector/heap-*.html
7804 https://bugs.webkit.org/show_bug.cgi?id=107687
7805
7806 Reviewed by Pavel Feldman.
7807
7808 * inspector/heap-snapshot-performance-test.js: override methods on JSHeapSnapshot instead
7809 of HeapSnapshot, otherwise overrides from JSHeapSnapshot will rule.
7810
rniwa@webkit.org63c6e252013-01-18 09:47:36 +000078112013-01-18 Ryosuke Niwa <rniwa@webkit.org>
7812
7813 Skip DOM/TraverseChildNodes.html as intended in r140070.
7814
7815 * Skipped:
7816
dominicc@chromium.org215464f2013-01-18 03:00:50 +000078172013-01-17 Dominic Cooney <dominicc@chromium.org>
7818
7819 Unreviewed, re-land r140051.
7820
7821 I overzealously rolled this out; the test was intended to be
7822 skipped, but was not skipped because of a typo in Skipped. See
7823 <https://bugs.webkit.org/show_bug.cgi?id=107210>
7824
7825 * Parser/html-parser-srcdoc.html: Added.
7826 * Skipped: Big-P Parser.
7827
dominicc@chromium.org5c1567f2013-01-18 01:58:12 +000078282013-01-17 Sheriff Bot <webkit.review.bot@gmail.com>
7829
7830 Unreviewed, rolling out r140051.
7831 http://trac.webkit.org/changeset/140051
7832 https://bugs.webkit.org/show_bug.cgi?id=107210
7833
7834 html-parser-srcdoc.html failing on Chromium Linux Perf and
7835 Chromium Mac Perf with a lot of error spew about blocked
7836 script execution in 'about:srcdoc' (Requested by dominicc on
7837 #webkit).
7838
7839 * Parser/html-parser-srcdoc.html: Removed.
7840 * Skipped:
7841
rniwa@webkit.orge6ab3252013-01-18 00:35:57 +000078422013-01-16 Ryosuke Niwa <rniwa@webkit.org>
7843
7844 Remove NodeListsNodeData when it's no longer needed
7845 https://bugs.webkit.org/show_bug.cgi?id=107074
7846
7847 Reviewed by Darin Adler.
7848
7849 Added a micro benchmark to see the benefit of removing NodeListsNodeData.
7850 The test traverses all elements in the html5 specification page and accesses childNodes.
7851
7852 Don't enable this test for now since it's really a micro benchmark specifically
7853 designed to test this patch.
7854
7855 * DOM/TraverseChildNodes.html: Added.
7856 * Skipped: Don't enable newly added test by default.
7857 * resources/results-template.html: Compare against the unscaled unit (e.g. "bytes") as
7858 opposed to scaled units such as "K bytes".
7859 * resources/runner.js:
7860 (.start): Moved the code to call currentTest.setup from measureRunsPerSecondOnce so that
7861 it'll be ran for all test types, namely of PerfTestRunner.measureTime.
7862 (.measureRunsPerSecondOnce):
7863
eric@webkit.orgd6c45992013-01-17 22:53:14 +000078642013-01-17 Eric Seidel <eric@webkit.org>
7865
7866 Add a version of the html-parser benchmark which uses srcdoc instead of document.write so it tests the threaded parser
7867 https://bugs.webkit.org/show_bug.cgi?id=107158
7868
7869 Reviewed by Ryosuke Niwa.
7870
7871 Currently this test even opts-in to the threaded parser if available.
7872 We'll remove that line when the threaded parser becomes default or goes away.
7873
7874 * Parser/html-parser-srcdoc.html: Added.
7875
commit-queue@webkit.org6cfbe232013-01-16 20:25:06 +000078762013-01-16 Arnaud Renevier <a.renevier@sisa.samsung.com>
7877
7878 inconsistency in drawImage with target rect negative dimensions.
7879 https://bugs.webkit.org/show_bug.cgi?id=100026
7880
7881 Reviewed by Dean Jackson.
7882
7883 Create a drawImage performance test. There is no significative change
7884 in performance: 27144.6851528 runs/s without the patch; 27153.517612
7885 runs/s with the patch. Test is currently skipped.
7886
7887 * Canvas/drawimage.html: Added.
7888 * Skipped:
7889
dominicc@chromium.org60fa1002013-01-15 09:42:25 +000078902013-01-15 Dominic Cooney <dominicc@chromium.org>
7891
7892 Allow zero values as results from the runFunction.
7893 https://bugs.webkit.org/show_bug.cgi?id=102500
7894
7895 Reviewed by Kentaro Hara.
7896
7897 DOM/DOMWalk.js fails on the Chromium Win perf bot because one or
7898 more parts of the test usually return zero at some point.
7899
7900 * resources/runner.js: Accept merely non-negative results.
7901
yurys@chromium.orga002c112012-12-28 09:26:02 +000079022012-12-28 Yury Semikhatsky <yurys@chromium.org>
7903
7904 Web Inspector: rename distanceToWindow to distance
7905 https://bugs.webkit.org/show_bug.cgi?id=105823
7906
7907 Reviewed by Pavel Feldman.
7908
7909 Updated heap profiler performance test after renaming distanceToWindow to distance.
7910
7911 * inspector/heap-snapshot-performance-test.js:
7912
hayato@chromium.org8c5a5502012-12-19 04:18:43 +000079132012-12-18 Hayato Ito <hayato@chromium.org>
7914
7915 Use element.webkitCreateShadowRoot instead of WebKitShadowRoot in PerformanceTests.
7916 https://bugs.webkit.org/show_bug.cgi?id=105256
7917
7918 Reviewed by Dimitri Glazkov.
7919
7920 WebKitShadowRoot constructor was deleted in favor of element.webkitCreateShadowRoot().
7921
7922 * ShadowDOM/ChangingClassNameShadowDOM.html:
7923 * ShadowDOM/ChangingSelect.html:
7924 * ShadowDOM/ContentReprojection.html:
7925 * ShadowDOM/DistributionWithMultipleShadowRoots.html:
7926 * ShadowDOM/LargeDistributionWithLayout.html:
7927 * ShadowDOM/MultipleInsertionPoints.html:
7928 * ShadowDOM/ShadowReprojection.html:
7929 * ShadowDOM/SmallDistributionWithLayout.html:
7930
shinyak@chromium.org5eb25112012-12-18 07:28:52 +000079312012-12-17 Shinya Kawanaka <shinyak@chromium.org>
7932
7933 [Shadow] LargeDistributionWithLayout.html should be updated
7934 https://bugs.webkit.org/show_bug.cgi?id=105242
7935
7936 Reviewed by Ryosuke Niwa.
7937
7938 Since this test was written when distribution took O(N^2). However, now it's almost O(N), so this test finishes
7939 in very short time. We should convert it unit to runs/s.
7940
7941 This test contains a some error to cause test failure, e.g. using obsolete API, so they also should be fixed.
7942
7943 * ShadowDOM/LargeDistributionWithLayout.html:
7944
rniwa@webkit.org420b2dc2012-12-13 19:11:16 +000079452012-12-13 Ryosuke Niwa <rniwa@webkit.org>
7946
7947 [chromium perf] DOM/DOMWalk.html failures
7948 https://bugs.webkit.org/show_bug.cgi?id=104866
7949
7950 Reviewed by Eric Seidel.
7951
7952 Use PerfTestRunner.now which in turn uses window.performance.now() when it's available.
7953
7954 * DOM/resources/dom-perf.js:
7955 (Interval.start):
7956 (Interval.stop):
7957 (BenchmarkSuite.prototype.RunSingle):
7958
shinyak@chromium.orgb8601222012-12-06 06:08:19 +000079592012-12-05 Shinya Kawanaka <shinyak@chromium.org>
7960
shinyak@chromium.org96206852012-12-06 06:31:22 +00007961 [Shadow] Performance tests for ShadowDOM distribution
7962 https://bugs.webkit.org/show_bug.cgi?id=103617
7963
7964 Reviewed by Dimitri Glazkov.
7965
7966 We would like to measure ShadowDOM distribution performance in various cases.
7967 In this patch, we add performance tests for several distribution patterns.
7968
7969 * ShadowDOM/ContentReprojection.html: Added.
7970 * ShadowDOM/DistributionWithMultipleShadowRoots.html: Added.
7971 * ShadowDOM/LargeDistributionWithLayout.html: Added.
7972 * ShadowDOM/MultipleInsertionPoints.html: Added.
7973 * ShadowDOM/ShadowReprojection.html: Added.
7974 * ShadowDOM/SmallDistributionWithLayout.html: Added.
7975
79762012-12-05 Shinya Kawanaka <shinyak@chromium.org>
7977
shinyak@chromium.orgb8601222012-12-06 06:08:19 +00007978 [Shadow] Performance tests of distribution for changing className
7979 https://bugs.webkit.org/show_bug.cgi?id=103612
7980
7981 Reviewed by Dimitri Glazkov.
7982
7983 We would like to measure ShadowDOM performance and compare it to the similar functional HTML without using ShadowDOM.
7984 In this patch, we add a case when classNames of distributed elemeents are changed.
7985
7986 * ShadowDOM/ChangingClassName.html: Added.
7987 * ShadowDOM/ChangingClassNameShadowDOM.html: Added.
7988
rniwa@webkit.org96514be2012-12-04 10:00:54 +000079892012-12-03 Ryosuke Niwa <rniwa@webkit.org>
7990
7991 Dromaeo should report individual test result
7992 https://bugs.webkit.org/show_bug.cgi?id=99800
7993
7994 Reviewed by Eric Seidel.
7995
7996 Made one small modification to Droameo's webrunner.js so that it reports individual runs/s values
7997 for each subtest. This allows us to compute the aggregated run/s for each iteration like other
7998 performance tests.
7999
8000 Also stop measuring memory usage in Dromaeo tests because some Dromaeo tests (e.g. jslib-modify-jquery)
8001 have unrealistic memory usage, and measuring them at the time of teardown doesn't make much sense.
8002
8003 * Animation/balls.html: Fixed typo: measureValueAync.
8004 * Dromaeo/resources/dromaeo/web/webrunner.js:
8005
8006 * Dromaeo/resources/dromaeorunner.js:
8007 (DRT.setup): Call prepareToMeasureValuesAsync so that DRT.teardown can use meausreValueAsync, and log
8008 "Running 5 times". Since the log container will be inserted before iframe, we need to explicitly insert
8009 the iframe as the first child of the body element to avoid logs from affecting the iframe's position.
8010 Also specify the number of iterations by calling PerfTestRunner.iterationCount() so that we may adjust
8011 the number of iterations in PerfTestRunner.
8012
8013 (DRT.progress): Log individual measurement for each subtest.
8014 (DRT.teardown): Compute the aggregated result for each iteration, and log them using measureValueAsync.
8015
8016 * resources/runner.js:
8017 (PerfTestRunner.logStatistics): Merged printStatistics since it's no longer needed after r131638.
8018 (PerfTestRunner): Removed getAndPrintMemoryStatistics since it was used only in Dromaeo tests but
8019 we no longer measure memory usage in Dromaeo tests.
8020
8021 (start): Increment completedRuns from -1 to 0 for Dromaeo tests where we don't want to ignore the initial
8022 measurement. Note that ignoreWarmUpAndLog ignores the measurements for which completedRuns is negative.
8023
8024 (ignoreWarmUpAndLog): We don't measure memory usage in Dromaeo tests. See above.
8025 (PerfTestRunner.iterationCount): Added. This abstraction allows us to auto-adjust the number of iterations from
8026 run-perf-tests in near future.
8027 (PerfTestRunner.measureValueAsync): Renamed from measureValueAync.
8028
shinyak@chromium.org0240c792012-11-29 11:26:33 +000080292012-11-29 Shinya Kawanaka <shinyak@chromium.org>
8030
8031 [Shadow] Performance tests of distribution for changing select attribute
8032 https://bugs.webkit.org/show_bug.cgi?id=103611
8033
8034 Reviewed by Hajime Morita.
8035
8036 We would like to measure ShadowDOM performance and compare it to the similar functional HTML without using ShadowDOM.
8037 In this patch, we add a case when select attribute of HTMLContentElement is changed.
8038
8039 * ShadowDOM/ChangingSelect.html: Added.
8040 * ShadowDOM/ChangingSelectWithoutShadow.html: Added.
8041 * Skipped:
8042
shinyak@chromium.org81d17782012-11-19 18:14:04 +000080432012-11-19 Shinya Kawanaka <shinyak@chromium.org>
8044
8045 Changing id, className, or attribute should invalidate distribution
8046 https://bugs.webkit.org/show_bug.cgi?id=100738
8047
8048 Reviewed by Dimitri Glazkov.
8049
8050 Added test code to modify id/class/attribute.
8051
8052 * DOM/ModifyAttribute.html: Added.
8053 * DOM/resources/dom-perf/modify-attribute.js: Added.
8054 (ModifyAttribute.CreateElementToSetUp):
8055 (ModifyAttribute.ModifyId):
8056 (ModifyAttribute.ModifyClass):
8057 (ModifyAttribute.ModifyTitle):
8058
rniwa@webkit.org6853f482012-11-14 19:34:49 +000080592012-11-14 Ryosuke Niwa <rniwa@webkit.org>
8060
8061 runCount in runner.js should be renamed to iterationCount
8062 https://bugs.webkit.org/show_bug.cgi?id=102208
8063
8064 Reviewed by Tony Chang.
8065
8066 Prior to this patch, there were terminology confusions between "runs" and "iterations".
8067 The term "run" should refer to running a performance test once, and "iteration" should
8068 refer to one measurement in the test. i.e. Executing run-perf-should once will result in
8069 a single "run" of performance tests and each test may execute multiple "iterations"
8070 to complete the run.
8071
8072 Unfortunately, we still overload the meaning of "runs" in "runs/s" (is "function calls/s")
8073 but that could be addressed in a separate patch.
8074
8075 * Animation/balls.html:
8076 * DOM/DOMTable.html:
8077 * DOM/resources/dom-perf.js:
8078 * Layout/floats_100_100.html:
8079 * Layout/floats_100_100_nested.html:
8080 * Layout/floats_20_100.html:
8081 * Layout/floats_20_100_nested.html:
8082 * Layout/floats_2_100.html:
8083 * Layout/floats_2_100_nested.html:
8084 * Layout/floats_50_100.html:
8085 * Layout/floats_50_100_nested.html:
8086 * Layout/subtree-detaching.html:
8087 * Parser/html5-full-render.html:
8088 * SVG/SvgHitTesting.html:
8089 * resources/runner.js:
8090
dglazkov@chromium.org503331b2012-11-13 18:53:36 +000080912012-11-13 Dimitri Glazkov <dglazkov@chromium.org>
8092
8093 Unreviewed, rolling out r134367.
8094 http://trac.webkit.org/changeset/134367
8095 https://bugs.webkit.org/show_bug.cgi?id=100738
8096
8097 Speculative rollout, could have cause Dromaeo setAttribute
8098 perf regression.
8099
8100 * DOM/ModifyAttribute.html: Removed.
8101 * DOM/resources/dom-perf/modify-attribute.js: Removed.
8102
shinyak@chromium.orgf2bd9cb2012-11-13 06:50:15 +000081032012-11-12 Shinya Kawanaka <shinyak@chromium.org>
8104
8105 Changing id, className, or attribute should invalidate distribution
8106 https://bugs.webkit.org/show_bug.cgi?id=100738
8107
8108 Reviewed by Dimitri Glazkov.
8109
8110 Added test code to modify id/class/attribute.
8111
8112 * DOM/ModifyAttribute.html: Added.
8113 * DOM/resources/dom-perf/modify-attribute.js: Added.
8114 (ModifyAttribute.CreateElementToSetUp):
8115 (ModifyAttribute.ModifyId):
8116 (ModifyAttribute.ModifyClass):
8117 (ModifyAttribute.ModifyTitle):
8118
abarth@webkit.orge0439722012-11-06 20:25:52 +000081192012-11-06 Adam Barth <abarth@webkit.org>
8120
8121 DOMImplementation should use ScriptWrappable
8122 https://bugs.webkit.org/show_bug.cgi?id=101279
8123
8124 Reviewed by Eric Seidel.
8125
8126 This simple PerformanceTest measure how quickly we can access
8127 document.implementation. The goal of this performance test is just to
8128 validate that using ScriptWrappable actually makes the bindings faster.
8129
8130 * Bindings/document-implementation.html: Added.
8131
ggaren@apple.com87827fd2012-11-06 00:14:52 +000081322012-11-05 Geoffrey Garen <ggaren@apple.com>
8133
8134 WebKit should have performance tests for book chapter reflow
8135 https://bugs.webkit.org/show_bug.cgi?id=101271
8136
8137 Reviewed by Dan Bernstein.
8138
8139 I grabbed a book chapter from the Project Gutenberg front page:
8140
8141 * Layout/chapter-reflow-once.html: Added.
8142 * Layout/chapter-reflow-thrice.html: Added.
8143 * Layout/chapter-reflow-twice.html: Added.
8144 * Layout/chapter-reflow.html: Added.
8145
8146 I also created a torture-test random text generator:
8147
8148 * Layout/chapter-reflow-once-random.html: Added.
8149
zoltan@webkit.org18f61b32012-10-29 17:30:56 +000081502012-10-29 Zoltan Horvath <zoltan@webkit.org>
8151
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00008152 Turn PageLoad tests into simple performancetests, commit #7 (last)
zoltan@webkit.org18f61b32012-10-29 17:30:56 +00008153 https://bugs.webkit.org/show_bug.cgi?id=99899
8154
8155 Reviewed by Ryosuke Niwa.
8156
8157 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
8158 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
8159 to their new location and adds html/js wrappers for them.
8160
8161 This is the #7 (last) commit of the whole patch.
8162
8163 * PageLoad: Removed.
8164 * PageLoad/svg: Removed.
8165 * PageLoad/svg/LICENSES: Removed.
8166 * PageLoad/svg/files: Removed.
8167 * PageLoad/svg/files/33041-Samurai.svg: Removed.
8168 * PageLoad/svg/files/42450-under the see.svg: Removed.
8169 * PageLoad/svg/files/world-iso.svg: Removed.
8170 * PageLoad/svg/svg.pltsuite: Removed.
8171 * SVG/Samurai.html: Added.
8172 * SVG/UnderTheSee.html: Added.
8173 * SVG/WorldIso.html: Added.
8174 * SVG/resources/LICENSES: Copied from PerformanceTests/PageLoad/svg/LICENSES.
8175 * SVG/resources/Samurai.svg: Copied from PerformanceTests/PageLoad/svg/files/33041-Samurai.svg.
8176 * SVG/resources/UnderTheSee.svg: Copied from PerformanceTests/PageLoad/svg/files/42450-under%20the%20see.svg.
8177 * SVG/resources/WorldIso.svg: Copied from PerformanceTests/PageLoad/svg/files/world-iso.svg.
8178 * SVG/resources/svg.pltsuite: Copied from PerformanceTests/PageLoad/svg/svg.pltsuite.
8179 * Skipped: Rename the files on the skipped list also.
8180
eric@webkit.org41bf6742012-10-27 01:37:12 +000081812012-10-26 Eric Seidel <eric@webkit.org>
8182
8183 Add a microbenchmark for Hindi (complex-text) line-layout
8184 https://bugs.webkit.org/show_bug.cgi?id=100024
8185
8186 Reviewed by Ryosuke Niwa.
8187
8188 I wrote this to make sure that we don't regress line-breaking performance
8189 for the complex-text codepath. This test has shown me that TOT is
8190 already 5% slower than Safari 6.0.1 here. :(
8191
8192 * Layout/hindi-line-layout.html: Added.
8193
zoltan@webkit.org529fb012012-10-26 16:31:33 +000081942012-10-26 Zoltan Horvath <zoltan@webkit.org>
8195
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00008196 Turn PageLoad tests into simple performancetests, commit #6
zoltan@webkit.orgdafba0f2012-10-26 21:20:33 +00008197 https://bugs.webkit.org/show_bug.cgi?id=99899
8198
8199 Reviewed by Ryosuke Niwa.
8200
8201 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
8202 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
8203 to their new location and adds html/js wrappers for them.
8204
8205 This is the #6 commit of the whole patch.
8206
8207 * PageLoad/svg/files/gearflowers.svg: Removed.
8208 * PageLoad/svg/files/hereGear4.svg: Removed.
8209 * PageLoad/svg/files/worldcup.svg: Removed.
8210 * SVG/GearFlowers.html: Added.
8211 * SVG/HereGear.html: Added.
8212 * SVG/Worldcup.html: Added.
8213 * SVG/resources/GearFlowers.svg: Copied from PerformanceTests/PageLoad/svg/files/gearflowers.svg.
8214 * SVG/resources/HereGear.svg: Copied from PerformanceTests/PageLoad/svg/files/hereGear4.svg.
8215 * SVG/resources/Worldcup.svg: Copied from PerformanceTests/PageLoad/svg/files/worldcup.svg.
8216 * Skipped: Rename the files on the skipped list also.
8217
82182012-10-26 Zoltan Horvath <zoltan@webkit.org>
8219
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00008220 Turn PageLoad tests into simple performancetests, commit #5
zoltan@webkit.org529fb012012-10-26 16:31:33 +00008221 https://bugs.webkit.org/show_bug.cgi?id=99899
8222
8223 Reviewed by Ryosuke Niwa.
8224
8225 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
8226 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
8227 to their new location and adds html/js wrappers for them.
8228
8229 This is the #5 commit of the whole patch.
8230
8231 * PageLoad/svg/files/Harvey_Rayner.svg: Removed.
8232 * PageLoad/svg/files/Sierpinski_carpet_6.svg: Removed.
8233 * PageLoad/svg/files/mtsthelens.svg: Removed.
8234 * PageLoad/svg/files/mtsthelens0.jpg: Removed.
8235 * SVG/HarveyRayner.html: Added.
8236 * SVG/MtSaintHelens.html: Added.
8237 * SVG/SierpinskiCarpet.html: Added.
8238 * SVG/resources/HarveyRayner.svg: Copied from PerformanceTests/PageLoad/svg/files/Harvey_Rayner.svg.
8239 * SVG/resources/MtSaintHelens.svg: Copied from PerformanceTests/PageLoad/svg/files/mtsthelens.svg.
8240 * SVG/resources/SierpinskiCarpet.svg: Copied from PerformanceTests/PageLoad/svg/files/Sierpinski_carpet_6.svg.
8241 * SVG/resources/mtsthelens0.jpg: Copied from PerformanceTests/PageLoad/svg/files/mtsthelens0.jpg.
8242 * Skipped: Rename the files on the skipped list also.
8243
zoltan@webkit.org9760f812012-10-25 21:00:40 +000082442012-10-25 Zoltan Horvath <zoltan@webkit.org>
8245
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00008246 Turn PageLoad tests into simple performancetests, commit #4
zoltan@webkit.orgee168c72012-10-25 23:32:09 +00008247 https://bugs.webkit.org/show_bug.cgi?id=99899
8248
8249 Reviewed by Ryosuke Niwa.
8250
8251 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
8252 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
8253 to their new location and adds html/js wrappers for them.
8254
8255 This is the #4 commit of the whole patch.
8256
8257 * PageLoad/svg/files/france.svg: Removed.
8258 * PageLoad/svg/files/francobollo_gnome_ezechi_02.svg: Removed.
8259 * SVG/France.html: Added.
8260 * SVG/FrancoBolloGnomeEzechi.html: Added.
8261 * SVG/resources/France.svg: Copied from PerformanceTests/PageLoad/svg/files/france.svg.
8262 * SVG/resources/FrancoBolloGnomeEzechi.svg: Copied from PerformanceTests/PageLoad/svg/files/francobollo_gnome_ezechi_02.svg.
8263 * Skipped: Rename the files on the skipped list also.
8264
82652012-10-25 Zoltan Horvath <zoltan@webkit.org>
8266
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00008267 Turn PageLoad tests into simple performancetests, commit #3
zoltan@webkit.org9760f812012-10-25 21:00:40 +00008268 https://bugs.webkit.org/show_bug.cgi?id=99899
8269
8270 Reviewed by Ryosuke Niwa.
8271
8272 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
8273 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
8274 to their new location and adds html/js wrappers for them.
8275
8276 This is the #3 commit of the whole patch.
8277
8278 * PageLoad/svg/files/42470-flower_from_my_garden_v2.svg: Removed.
8279 * PageLoad/svg/files/44057-drops on a blade.svg: Removed.
8280 * PageLoad/svg/files/deb9frac1.svg: Removed.
8281 * PageLoad/svg/files/food_leif_lodahl_01.svg: Removed.
8282 * SVG/Debian.html: Added.
8283 * SVG/DropsOnABlade.html: Added.
8284 * SVG/FlowerFromMyGarden.html: Added.
8285 * SVG/FoodLeifLodahl.html: Added.
8286 * SVG/resources/Debian.svg: Copied from PerformanceTests/PageLoad/svg/files/deb9frac1.svg.
8287 * SVG/resources/DropsOnABlade.svg: Copied from PerformanceTests/PageLoad/svg/files/44057-drops%20on%20a%20blade.svg.
8288 * SVG/resources/FlowerFromMyGarden.svg: Copied from PerformanceTests/PageLoad/svg/files/42470-flower_from_my_garden_v2.svg.
8289 * SVG/resources/FoodLeifLodahl.svg: Copied from PerformanceTests/PageLoad/svg/files/food_leif_lodahl_01.svg.
8290
zoltan@webkit.orga01a8c72012-10-24 16:23:22 +000082912012-10-24 Zoltan Horvath <zoltan@webkit.org>
8292
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00008293 Turn PageLoad tests into simple performancetests, commit #2
zoltan@webkit.org870ac012012-10-25 18:20:17 +00008294 https://bugs.webkit.org/show_bug.cgi?id=99899
8295
8296 Reviewed by Ryosuke Niwa.
8297
8298 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
8299 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
8300 to their new location and adds html/js wrappers for them.
8301
8302 This is the #2 commit of the whole patch.
8303
8304 * PageLoad/svg/files/cacuts_01.svg: Removed.
8305 * PageLoad/svg/files/cowboy.svg: Removed.
8306 * PageLoad/svg/files/crawfish2_ganson.svg: Removed.
8307 * SVG/Cactus.html: Added.
8308 * SVG/Cowboy.html: Added.
8309 * SVG/CrawFishGanson.html: Added.
8310 * SVG/resources/Cactus.svg: Copied from PerformanceTests/PageLoad/svg/files/cacuts_01.svg.
8311 * SVG/resources/Cowboy.svg: Copied from PerformanceTests/PageLoad/svg/files/cowboy.svg.
8312 * SVG/resources/CrawFishGanson.svg: Copied from PerformanceTests/PageLoad/svg/files/crawfish2_ganson.svg.
8313 * Skipped: Remove az-lizard_benji_park_01.svg from the skipped list.
8314
83152012-10-24 Zoltan Horvath <zoltan@webkit.org>
8316
jonlee@apple.com0efe85f2016-01-08 04:29:42 +00008317 Turn PageLoad tests into simple performancetests, commit #1
zoltan@webkit.orga0040bb2012-10-24 18:48:08 +00008318 https://bugs.webkit.org/show_bug.cgi?id=99899
8319
8320 Reviewed by Ryosuke Niwa.
8321
8322 We cannot provide an elegant way to measure the memory consumption of the PageLoad tests, but we can turn them into simple
8323 performance tests and measure their memory footprint and performance that way. This change moves and renames the related files
8324 to their new location and adds html/js wrappers for them.
8325
8326 This is the #1 commit of the whole patch.
8327
8328 * PageLoad/svg/files/az-lizard_benji_park_01.svg: Removed.
8329 * PageLoad/svg/files/bamboo_01.svg: Removed.
8330 * SVG/AzLizardBenjiPark.html: Added.
8331 * SVG/Bamboo.html: Added.
8332 * SVG/resources: Added.
8333 * SVG/resources/AzLizardBenjiPark.svg: Copied from PerformanceTests/PageLoad/svg/files/az-lizard_benji_park_01.svg.
8334 * SVG/resources/Bamboo.svg: Copied from PerformanceTests/PageLoad/svg/files/bamboo_01.svg.
8335
83362012-10-24 Zoltan Horvath <zoltan@webkit.org>
8337
zoltan@webkit.orga01a8c72012-10-24 16:23:22 +00008338 REGRESSION(r131982): Skip SVG/SvgNestedUse.html performancetest since it is crashing
8339 https://bugs.webkit.org/show_bug.cgi?id=100262
8340
8341 Unreviewed.
8342
8343 Skip until proper fix.
8344
8345 * Skipped: Add SVG/SvgNestedUse.html
8346
zoltan@webkit.orgb9cfa8e2012-10-23 22:03:55 +000083472012-10-23 Zoltan Horvath <zoltan@webkit.org>
8348
zoltan@webkit.orgc140a7302012-10-24 06:43:28 +00008349 Store the loaded file locally in measurePageLoadTime
8350 https://bugs.webkit.org/show_bug.cgi?id=100172
8351
8352 Reviewed by Csaba Osztrogonác.
8353
8354 Store the loaded file as a local variable instead of attaching it to the test object.
8355 Handle chunkSize inside test.run.
8356
8357 * resources/runner.js:
8358 (.):
8359
83602012-10-23 Zoltan Horvath <zoltan@webkit.org>
8361
zoltan@webkit.orgb9cfa8e2012-10-23 22:03:55 +00008362 Add measurePageLoadTime function to PerfTestRunner
8363 https://bugs.webkit.org/show_bug.cgi?id=100029
8364
8365 Reviewed by Ryosuke Niwa.
8366
8367 Adopt chunk based loading logic from html5-full-render.html into measurePageLoadTime function,
8368 this is needed to measure the performance and the memory consumption of the PageLoadTests as
8369 we do it for all other performancetests.
8370
8371 * Parser/html5-full-render.html: Move the behavior to runner.js.
8372 * resources/runner.js:
8373 (.): Add measurePageLoadTime function.
8374
abarth@webkit.orgee7102d2012-10-22 18:50:11 +000083752012-10-22 Adam Barth <abarth@webkit.org>
8376
8377 [V8] Vastly simplify V8GCController's NodeVisitor
8378 https://bugs.webkit.org/show_bug.cgi?id=99884
8379
8380 Reviewed by Kentaro Hara.
8381
8382 Adds some performance tests for the garbage collector.
8383
8384 * Bindings/gc-forest.html: Added.
8385 * Bindings/gc-mini-tree.html: Added.
8386 * Bindings/gc-tree.html: Added.
8387
rniwa@webkit.org667af5d2012-10-17 20:57:46 +000083882012-10-17 Ryosuke Niwa <rniwa@webkit.org>
8389
rniwa@webkit.orge75a1302012-10-18 01:33:56 +00008390 Bump up the number of iterations of html5-full-render to 5
8391 https://bugs.webkit.org/show_bug.cgi?id=99657
8392
8393 Reviewed by Andreas Kling.
8394
8395 Now that html5-full-render.html runs in less than 15 seconds after r131553,
8396 we can afford to get 5 instead of 2 samples.
8397
8398 * Parser/html5-full-render.html:
8399
84002012-10-17 Ryosuke Niwa <rniwa@webkit.org>
8401
rniwa@webkit.orgbf61dcd2012-10-17 22:06:52 +00008402 Rename PerfTestRunner.runPerSecond to PerfTestRunner.measureRunsPerSecond for consistency
8403 https://bugs.webkit.org/show_bug.cgi?id=99642
8404
8405 Reviewed by Dirk Pranke.
8406
8407 Renamed the method.
8408
8409 * Bindings/append-child.html:
8410 * Bindings/create-element.html:
8411 * Bindings/event-target-wrapper.html:
8412 * Bindings/first-child.html:
8413 * Bindings/get-attribute.html:
8414 * Bindings/get-element-by-id.html:
8415 * Bindings/get-elements-by-tag-name.html:
8416 * Bindings/id-getter.html:
8417 * Bindings/id-setter.html:
8418 * Bindings/insert-before.html:
8419 * Bindings/node-list-access.html:
8420 * Bindings/scroll-top.html:
8421 * Bindings/set-attribute.html:
8422 * Bindings/typed-array-construct-from-array.html:
8423 * Bindings/typed-array-construct-from-same-type.html:
8424 * Bindings/typed-array-construct-from-typed.html:
8425 * Bindings/typed-array-set-from-typed.html:
8426 * Bindings/undefined-first-child.html:
8427 * Bindings/undefined-get-element-by-id.html:
8428 * Bindings/undefined-id-getter.html:
8429 * CSS/CSSPropertySetterGetter.html:
8430 * CSS/CSSPropertyUpdateValue.html:
8431 * CSS/PseudoClassSelectors.html:
8432 * DOM/textarea-dom.html:
8433 * DOM/textarea-edit.html:
8434 * Interactive/resources/window-resize.js:
8435 * Layout/flexbox-column-nowrap.html:
8436 * Layout/flexbox-column-wrap.html:
8437 * Layout/flexbox-row-nowrap.html:
8438 * Layout/flexbox-row-wrap.html:
8439 * Layout/line-layout.html:
8440 * Parser/css-parser-yui.html:
8441 * Parser/innerHTML-setter.html:
8442 * Parser/query-selector-deep.html:
8443 * Parser/query-selector-first.html:
8444 * Parser/query-selector-last.html:
8445 * Parser/simple-url.html:
8446 * Parser/textarea-parsing.html:
8447 * Parser/tiny-innerHTML.html:
8448 * Parser/url-parser.html:
8449 * Parser/xml-parser.html:
8450 * SVG/SvgNestedUse.html:
8451 * resources/runner.js:
8452
84532012-10-17 Ryosuke Niwa <rniwa@webkit.org>
8454
rniwa@webkit.org667af5d2012-10-17 20:57:46 +00008455 Performance test should support asynchronous tests
8456 https://bugs.webkit.org/show_bug.cgi?id=95668
8457
8458 Reviewed by Dirk Pranke.
8459
8460 Added PerfTestRunner.prepareToMeasureValuesAsync and PerfTestRunner.measureValueAsync,
8461 and deployed it in Animation/balls.
8462
8463 * Animation/balls.html:
8464 * resources/runner.js:
8465
commit-queue@webkit.org1e475f02012-10-17 06:50:45 +000084662012-10-16 Elliott Sprehn <esprehn@chromium.org>
8467
8468 html5-full-render.html test uses substring but meant substr
8469 https://bugs.webkit.org/show_bug.cgi?id=99495
8470
8471 Reviewed by Adam Barth.
8472
8473 This test intended to chunk up the HTML5 spec into chunks of 500k chars, but used
8474 substring(to,from) instead of substr(from,length) so it actually loaded 5x more
8475 content than was in the HTML5 spec.
8476
8477 * Parser/html5-full-render.html:
8478
simonjam@chromium.org29630d32012-10-11 23:08:13 +000084792012-10-11 James Simonsen <simonjam@chromium.org>
8480
8481 unprefix window.performance.webkitNow()
8482 https://bugs.webkit.org/show_bug.cgi?id=88278
8483
8484 Reviewed by Tony Gentilcore.
8485
8486 * resources/runner.js: Bind to proper object to avoid invalid invocation errors.
8487
rniwa@webkit.orgb679bb12012-10-08 19:02:06 +000084882012-10-08 Ryosuke Niwa <rniwa@webkit.org>
8489
rniwa@webkit.orgc61349e2012-10-09 01:48:12 +00008490 Skip Layout/subtree-detaching.html temporarily as it's very noisy and
8491 takes 112s to run on Chromium Mac. This is tracked by the bug 98708.
8492
8493 * Skipped:
8494
84952012-10-08 Ryosuke Niwa <rniwa@webkit.org>
8496
rniwa@webkit.org92c0a862012-10-09 01:43:08 +00008497 Perf. test results page is broken when runs have different sets of tests
8498 https://bugs.webkit.org/show_bug.cgi?id=98691
8499
8500 Reviewed by Daniel Bates.
8501
8502 Add "missing" columns for tests that are missing some runs.
8503
8504 Also fix regressions from the previous patch:
8505 - Make reference run switch work again
8506 - Load jquery plugins from the remote server when the jquery is loaded from the remote server.
8507
8508 * resources/results-template.html:
8509
85102012-10-08 Ryosuke Niwa <rniwa@webkit.org>
8511
rniwa@webkit.orgb679bb12012-10-08 19:02:06 +00008512 Perf test pesults page takes forever to load on a machine with a slow Internet connection
8513 https://bugs.webkit.org/show_bug.cgi?id=98561
8514
8515 Reviewed by Ojan Vafai.
8516
8517 Try loading jquery both locally and remotely, and use the same method to load the remaining
8518 jquery plugins when either one succeeds.
8519
8520 * resources/results-template.html:
8521
hayato@chromium.orgcbf6b632012-10-05 04:47:21 +000085222012-10-04 Hayato Ito <hayato@chromium.org>
8523
8524 [Refactoring] Introduce a traversal strategy in SelectorChecker
8525 https://bugs.webkit.org/show_bug.cgi?id=97298
8526
8527 Reviewed by Antti Koivisto.
8528
8529 Introduces querySelector() performance tests to check SelectorChecker performance.
8530
8531 * CSS/PseudoClassSelectors.html: Added.
8532
pdr@google.com04234e32012-10-04 06:29:45 +000085332012-10-03 Philip Rogers <pdr@google.com>
8534
8535 Force GC between PageLoad tests.
8536 https://bugs.webkit.org/show_bug.cgi?id=98203
8537
8538 Reviewed by Ryosuke Niwa.
8539
8540 Previously, our PageLoad PerfTests had multi-modal distributions,
8541 typically with a small cluster at 1-2x the median. This turned out
8542 to be caused by not garbage collecting between tests!
8543
8544 This patch adds a new file, force-gc.html, and loads this file between
8545 PageLoad tests to force a GC. I manually verified that this cleans up
8546 our perf test outliers.
8547
8548 * resources/force-gc.html: Added.
8549
jchaffraix@webkit.org74ac0732012-10-03 23:28:46 +000085502012-10-03 Julien Chaffraix <jchaffraix@webkit.org>
8551
8552 Add a performance test for subtree detaching
8553 https://bugs.webkit.org/show_bug.cgi?id=98281
8554
8555 Reviewed by Eric Seidel.
8556
8557 The new test tries to stress detaching on a heavy subtree (2 levels deep but with 1,000 nodes per level).
8558 We set display: none on the root and measure the time it takes to update the tree. Note that we will also
8559 measure the time taken by recalcStyle and relayout but I don't think we can avoid that.
8560
8561 * Layout/subtree-detaching.html: Added.
8562
rniwa@webkit.orgdf79b202012-10-02 16:52:09 +000085632012-10-02 Ryosuke Niwa <rniwa@webkit.org>
8564
8565 Build fix after r130135. Dromaeo tests only report single memory value,
8566 and computeStatistics should report variance as 0 in such cases.
8567
8568 * resources/runner.js:
8569
pdr@google.com70539192012-10-02 08:10:47 +000085702012-10-02 Philip Rogers <pdr@google.com>
8571
8572 Fix PerfTest standard deviation calculation.
8573 https://bugs.webkit.org/show_bug.cgi?id=98115
8574
8575 Reviewed by Ryosuke Niwa.
8576
8577 Previously our standard deviation calculation was incorrect. This patch
8578 updates perftest.py's algorithm to calculate the sample standard deviation
8579 (with Bessel's correction) using Knuth's online algorithm:
8580 http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Online_algorithm
8581 An existing test has been modified to prove our new results.
8582
8583 This patch also updates runner.js to use Bessel's correction in
8584 its sample standard deviation calculation, which is more accurate
8585 for small sample sizes.
8586
8587 Additionally, runner.js has been modified to not calculate
8588 the 'sum' statistic, which was not very useful.
8589
8590 * resources/runner.js:
8591 (PerfTestRunner.computeStatistics):
8592
rniwa@webkit.org3fe74f42012-10-01 23:48:17 +000085932012-10-01 Ryosuke Niwa <rniwa@webkit.org>
8594
rniwa@webkit.orgca89e212012-10-02 04:57:33 +00008595 PerfTestRunner: Move all functions into the closure and always use double quotation for string literals
8596 https://bugs.webkit.org/show_bug.cgi?id=98093
8597
8598 Reviewed by Ojan Vafai.
8599
8600 Move all methods of PerfTestRunner into the closure that defines it.
8601 Also always use double quotations for string literals for consistency.
8602
8603 * resources/runner.js:
8604
86052012-10-01 Ryosuke Niwa <rniwa@webkit.org>
8606
rniwa@webkit.org3fe74f42012-10-01 23:48:17 +00008607 Encapsulate private properties in PerfTestRunner better
8608 https://bugs.webkit.org/show_bug.cgi?id=97833
8609
8610 Reviewed by Ojan Vafai.
8611
8612 This patch moves "private" methods and properties of PerfTestRunner into a closure so that they're
8613 inaccssible from outside. Also catch exceptions from test.run, test.done, and other runner code
8614 to ensure we call notifyDone() even if we broke tests. Otherwise DRT will timeout and we end up
8615 waiting for 10 minutes per each broken test on bots.
8616
8617 * resources/runner.js:
8618 (PerfTestRunner.gc):
8619 (logInDocument): Extracted from PerfTestRunner.log.
8620 (PerfTestRunner.log): Moved.
8621 (logFatalError): Added.
8622 (start): Renamed from PerfTestRunner._start.
8623 (scheduleNextRun): Extracted from PerfTestRunner._runLoop. Also catch any exceptions that happen
8624 in the runner and ignoreWarmUpAndLog so that we don't end up timing out. We call logFatalError in
8625 such cases, which in turn ensures notifyDone() is called.
8626 (ignoreWarmUpAndLog): Renamed from PerfTestRunner._ignoreWarmUpAndLog.
8627 (finish): Extracted from PerfTestRunner._runLoop.
8628 (PerfTestRunner.measureTime): Moved. The initialization of runCount is moved into start().
8629 (measureTimeOnce): Renamed from PerfTestRunner._measureTimeOnce.
8630 (PerfTestRunner.runPerSecond): Moved. Ditto about runCount.
8631 (measureRunsPerSecondOnce): Renamed from PerfTestRunner._measureRunsPerSecondOnce.
8632 (callRunAndMeasureTime): Renamed from PerfTestRunner._perSecondRunnerIterator.
8633
fmalita@chromium.orgf72ad702012-10-01 20:53:45 +000086342012-10-01 Florin Malita <fmalita@chromium.org>
8635
8636 Add a performance test for nested <use> elements
8637 https://bugs.webkit.org/show_bug.cgi?id=98047
8638
8639 Reviewed by Ryosuke Niwa.
8640
8641 Currently at ~5 runs per second on my workstation, but should go up significantly (100+)
8642 after landing a fix for https://bugs.webkit.org/show_bug.cgi?id=97905.
8643
8644 * SVG/SvgNestedUse.html: Added.
8645
rniwa@webkit.orgf7c1c4e2012-09-28 07:36:47 +000086462012-09-28 Ryosuke Niwa <rniwa@webkit.org>
8647
8648 Add back test.runCount for runPerSecond as it's used by tests in fast/harness/perftests.
8649
8650 * resources/runner.js:
8651 (PerfTestRunner.runPerSecond):
8652
rniwa@webkit.orgd93297a2012-09-27 23:23:53 +000086532012-09-27 Ryosuke Niwa <rniwa@webkit.org>
8654
rniwa@webkit.org8d02be52012-09-28 04:18:04 +00008655 Build fix after r129824.
8656
8657 * DOM/resources/dom-perf.js:
8658 (runBenchmarkSuite):
8659
86602012-09-27 Ryosuke Niwa <rniwa@webkit.org>
8661
rniwa@webkit.orgd879f112012-09-28 04:16:48 +00008662 Remove unused features and reduce code duplications in PerfTestRunner
8663 https://bugs.webkit.org/show_bug.cgi?id=97852
8664
8665 Reviewed by Kentaro Hara.
8666
8667 Made the following refactoring changes:
8668 - Remove PerfTestRunner.info since it's never used.
8669 - Moved the js heap/malloc related functions up to where they belong.
8670 - Moved the initialization of _callsPerIteration, _test, and -description into _start,
8671 and stopped initializing _runFunction and _doneFunction since both test times now
8672 use _test object.
8673 - Made _measureTimeOnce and _measureRunsPerSecondOnce return the measured value
8674 instead of calling ignoreWarmUpAndLog and _runLoop to share the code; they're now
8675 called in _measureRunsPerSecondOnce.
8676
8677 * resources/runner.js:
8678 (PerfTestRunner.storeHeapResults): Moved.
8679 (PerfTestRunner.getUsedMallocHeap): Moved.
8680 (PerfTestRunner.getUsedJSHeap): Moved.
8681 (PerfTestRunner.getAndPrintMemoryStatistics): Moved.
8682 (PerfTestRunner._scheduleNextMeasurementOrNotifyDone): Renamed from _runLoop. Calls
8683 ignoreWarmUpAndLog and schedules the next call.
8684 (PerfTestRunner._measureTimeOnce): Renamed from _runner.
8685 (PerfTestRunner._start): Renamed from initAndStartLoop.
8686 (PerfTestRunner.measureTime):
8687 (PerfTestRunner.runPerSecond):
8688 (PerfTestRunner._measureRunsPerSecondOnce): Renamed from _measureRunsPerSecondOnce.
8689 (PerfTestRunner._perSecondRunnerIterator):
8690
86912012-09-27 Ryosuke Niwa <rniwa@webkit.org>
8692
rniwa@webkit.org8e72d08d2012-09-28 00:26:14 +00008693 PerfTestRunner.run should take an object
8694 https://bugs.webkit.org/show_bug.cgi?id=97743
8695
8696 Reviewed by Kentaro Hara.
8697
8698 Rename PerfTestRunner.run to PerfTestRunner.measureTime and make it take an object instead of
8699 5 arguments. Also get rid of PerfTestRunner._loopsPerRun since it's no longer used (it's always 1).
8700
8701 * CSS/StyleSheetInsert.html:
8702 * DOM/resources/dom-perf.js:
8703 * Layout/floats_100_100.html:
8704 * Layout/floats_100_100_nested.html:
8705 * Layout/floats_20_100.html:
8706 * Layout/floats_20_100_nested.html:
8707 * Layout/floats_2_100.html:
8708 * Layout/floats_2_100_nested.html:
8709 * Layout/floats_50_100.html:
8710 * Layout/floats_50_100_nested.html:
8711 * Parser/html-parser.html:
8712 * Parser/html5-full-render.html:
8713 * SVG/SvgCubics.html:
8714 * SVG/SvgHitTesting.html:
8715 * resources/runner.js:
8716
87172012-09-27 Ryosuke Niwa <rniwa@webkit.org>
8718
rniwa@webkit.org73c6e212012-09-27 23:39:09 +00008719 PerformanceTests/CSS/StyleSheetInsert.html has a time-dependent non-Gaussian distribution
8720 https://bugs.webkit.org/show_bug.cgi?id=97741
8721
8722 Reviewed by Antti Koivisto.
8723
8724 Reset the content in the iframe in each run so that the runtime from each run follows a normal distribution.
8725 We can cleanup this code once my patch to replace the argument list of run by an object is landed.
8726
8727 * CSS/StyleSheetInsert.html:
8728
87292012-09-27 Ryosuke Niwa <rniwa@webkit.org>
8730
rniwa@webkit.org5dbbcea2012-09-27 23:35:44 +00008731 Unreviewed. Minor appearance tweaks after r129813.
8732
8733 * resources/results-template.html:
8734
87352012-09-27 Ryosuke Niwa <rniwa@webkit.org>
8736
rniwa@webkit.orgd93297a2012-09-27 23:23:53 +00008737 Results page should warn about time-dependent distributions
8738 https://bugs.webkit.org/show_bug.cgi?id=97818
8739
8740 Reviewed by Ojan Vafai.
8741
8742 Add a simple linear regression analysis on results page to detect time-dependent distributions.
8743 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.
8744 Also added time-series graphs per run under the bar graphs so that humans can manually inspect them.
8745
8746 A nice follow up would be to add some normality test (e.g. Shapiro-Wilk) to detect bi-modal distributions
8747 but we probably need to restructure the code to run it asynchronously since normality tests are slow.
8748
8749 * resources/results-template.html:
8750
rniwa@webkit.org69bb9ed2012-09-26 17:51:42 +000087512012-09-26 Ryosuke Niwa <rniwa@webkit.org>
8752
8753 Use runPerSecond in PerformanceTests/Bindings/typed-array* and event-target-wrapper
8754 https://bugs.webkit.org/show_bug.cgi?id=97625
8755
8756 Reviewed by Eric Seidel.
8757
8758 Use PerfTestRunner.runPerSecond instead of PerfTestRunner.run. Also reduce the fixed number of
8759 elements and iterations in these tests by a factor of 10 since runPerSecond can dynamically
8760 adjust the number of function calls.
8761
8762 * Bindings/event-target-wrapper.html:
8763 * Bindings/typed-array-construct-from-array.html:
8764 * Bindings/typed-array-construct-from-same-type.html:
8765 * Bindings/typed-array-construct-from-typed.html:
8766 * Bindings/typed-array-set-from-typed.html:
8767
antti@apple.com0517bdf2012-09-26 14:52:19 +000087682012-09-25 Antti Koivisto <antti@apple.com>
8769
8770 Optimize stylesheet insertions
8771 https://bugs.webkit.org/show_bug.cgi?id=97627
8772
8773 Reviewed by Andreas Kling.
8774
8775 Add synthetic performance test for avoiding style recalcs on stylesheet inserts.
8776
8777 * CSS/StyleSheetInsert.html: Added.
8778
rniwa@webkit.org32631812012-09-25 22:52:34 +000087792012-09-25 Ryosuke Niwa <rniwa@webkit.org>
8780
8781 Skip Dromaeo/jslib-modify-jquery.html per bug 95376.
8782 It runs out of memory on Chromium port, and it takes unreasonably long time (~5 minutes)
8783 to run on other ports.
8784
8785 * Skipped:
8786
rniwa@webkit.orgd50e4122012-09-20 20:04:31 +000087872012-09-20 Ryosuke Niwa <rniwa@webkit.org>
8788
rniwa@webkit.org77342952012-09-20 20:35:28 +00008789 Results page should show indivisual value
8790 https://bugs.webkit.org/show_bug.cgi?id=97178
8791
8792 Reviewed by Tony Chang.
8793
8794 Show indivisual values instead of statistics (min, max, stdev).
8795
8796 * resources/results-template.html:
8797
87982012-09-20 Ryosuke Niwa <rniwa@webkit.org>
8799
rniwa@webkit.orgd50e4122012-09-20 20:04:31 +00008800 run-perf-tests should record individual value instead of statistics
8801 https://bugs.webkit.org/show_bug.cgi?id=97155
8802
8803 Reviewed by Hajime Morita.
8804
8805 Report the list of values as "values" so that run-perf-tests can parse them.
8806
8807 * resources/runner.js:
8808 (PerfTestRunner.computeStatistics):
8809 (PerfTestRunner.printStatistics):
8810
ossy@webkit.org179faf42012-09-20 13:11:50 +000088112012-09-20 Sheriff Bot <webkit.review.bot@gmail.com>
8812
8813 Unreviewed, rolling out r129091.
8814 http://trac.webkit.org/changeset/129091
8815 https://bugs.webkit.org/show_bug.cgi?id=97205
8816
8817 It broke perf tests everywhere (Requested by Ossy on #webkit).
8818
8819 * resources/runner.js:
8820 (PerfTestRunner.computeStatistics):
8821 (PerfTestRunner.printStatistics):
8822
rniwa@webkit.org12f3ed02012-09-20 05:14:16 +000088232012-09-19 Ryosuke Niwa <rniwa@webkit.org>
8824
8825 run-perf-tests should record indivisual value instead of statistics
8826 https://bugs.webkit.org/show_bug.cgi?id=97155
8827
8828 Reviewed by Hajime Morita.
8829
8830 Report the list of values as "values" so that run-perf-tests can parse them.
8831
8832 * resources/runner.js:
8833 (PerfTestRunner.computeStatistics):
8834 (PerfTestRunner.printStatistics):
8835
rniwa@webkit.org3b6a0d82012-09-17 18:17:10 +000088362012-09-17 Ryosuke Niwa <rniwa@webkit.org>
8837
8838 Perf test results is incomprehensive
8839 https://bugs.webkit.org/show_bug.cgi?id=94668
8840
8841 Reviewed by Eric Seidel.
8842
8843 Overhauled the results page to have a tabular view. Clicking on each row shows a flot graph we used to have.
8844 For each run and test, we show the mean value with the standard deviation along with the percent difference
8845 against the reference run chosen by the user if the difference is statistically significant; it also indicates
8846 whether the new value is progression or not.
8847
8848 The unit of each test is adjusted automatically using SI prefixes (Kilo, Mega, Milli), and rows can be sorted
8849 by each column. Time and memory results are separated into two tabs.
8850
8851 * resources/jquery.tablesorter.min.js: Added.
8852 * resources/results-template.html:
8853
rniwa@webkit.orge688af02012-09-14 20:51:13 +000088542012-09-14 Ryosuke Niwa <rniwa@webkit.org>
8855
8856 Use performance.webkitNow in PerfTestRunner
8857 https://bugs.webkit.org/show_bug.cgi?id=92826
8858
8859 Reviewed by Eric Seidel.
8860
8861 Use performance.webkitNow with Date.now as a fallback for more accurate time measurements.
8862
8863 * resources/runner.js:
8864 (PerfTestRunner._runner):
8865 (PerfTestRunner._perSecondRunnerIterator):
8866
ossy@webkit.org96b5d172012-09-14 10:40:40 +000088672012-09-14 Sheriff Bot <webkit.review.bot@gmail.com>
8868
8869 Unreviewed, rolling out r128562.
8870 http://trac.webkit.org/changeset/128562
8871 https://bugs.webkit.org/show_bug.cgi?id=96747
8872
8873 It broke perf tests on Qt and Chromium (Requested by Ossy on
8874 #webkit).
8875
8876 * resources/runner.js:
8877 (PerfTestRunner._runner):
8878 (PerfTestRunner._perSecondRunnerIterator):
8879
rniwa@webkit.org2338b742012-09-14 07:03:28 +000088802012-09-14 Ryosuke Niwa <rniwa@webkit.org>
8881
8882 Use performance.webkitNow in PerfTestRunner
8883 https://bugs.webkit.org/show_bug.cgi?id=92826
8884
8885 Reviewed by Eric Seidel.
8886
8887 Use performance.webkitNow with Date.now as a fallback for more acurate time measurements.
8888
8889 * resources/runner.js:
8890 (PerfTestRunner._runner):
8891 (PerfTestRunner._perSecondRunnerIterator):
8892
loislo@chromium.orgad761772012-08-23 10:46:56 +000088932012-08-23 Ilya Tikhonovsky <loislo@chromium.org>
8894
8895 WebInspector: unreviewed single line test fix.
8896
8897 The test has to open profiles panel explicitly because it is creating lazily.
8898
8899 * inspector/heap-snapshot-performance-test.js:
8900
commit-queue@webkit.org4ba6cdb2012-08-15 19:08:06 +000089012012-08-15 Scott Graham <scottmg@chromium.org>
8902
8903 Rename window.internals.fastMallocStatistics to mallocStatistics
8904 https://bugs.webkit.org/show_bug.cgi?id=94033
8905
8906 Reviewed by Adam Barth.
8907
8908 * resources/runner.js:
8909 (PerfTestRunner.storeHeapResults):
8910 (PerfTestRunner.getUsedMallocHeap):
8911 (PerfTestRunner.getAndPrintMemoryStatistics):
8912 (PerfTestRunner.initAndStartLoop):
8913
rniwa@webkit.orgd6813772012-08-10 20:10:57 +000089142012-08-10 Ryosuke Niwa <rniwa@webkit.org>
8915
8916 Unreviewed; fix an insanely silly typo.
8917
8918 * resources/results-template.html:
8919
rniwa@webkit.org0120caa2012-08-09 20:01:04 +000089202012-08-09 Ryosuke Niwa <rniwa@webkit.org>
8921
8922 Another build fix after r125178.
8923
8924 * resources/runner.js:
8925
zoltan@webkit.orgc95c19f2012-08-09 16:21:09 +000089262012-08-09 Zoltan Horvath <zoltan@webkit.org>
8927
zoltan@webkit.orgf092a302012-08-09 16:22:05 +00008928 Add memory measurement to balls.html and dromaeorunner.js
8929 https://bugs.webkit.org/show_bug.cgi?id=93617
8930
8931 Reviewed by Adam Barth.
8932
8933 Since we added memory measurement support to performance tests we need to modify these tests.
8934
8935 * Animation/balls.html:
8936 * Dromaeo/resources/dromaeorunner.js:
8937
89382012-08-09 Zoltan Horvath <zoltan@webkit.org>
8939
zoltan@webkit.orgc95c19f2012-08-09 16:21:09 +00008940 JSHeap and FastMallocStatistics based memory measurement for performance-tests
8941 https://bugs.webkit.org/show_bug.cgi?id=90858
8942
8943 Reviewed Ryosuke Niwa.
8944
8945 Measure the memory usage of the performancetests with the help of the windows.memory.usedJSHeapSize
8946 object and the window.internals.fastMallocStatistics() function call.
8947
8948 * resources/runner.js:
8949 (PerfTestRunner.logStatistics):
8950 (PerfTestRunner.printStatistics):
8951 (PerfTestRunner.storeHeapResults):
8952 (PerfTestRunner.getUsedFastMallocHeap):
8953 (PerfTestRunner.getUsedJSHeap):
8954 (PerfTestRunner.getAndPrintMemoryStatistics):
8955 (PerfTestRunner.ignoreWarmUpAndLog):
8956 (PerfTestRunner.initAndStartLoop):
8957
benjamin@webkit.orgbe9e5012012-08-08 21:48:38 +000089582012-08-08 Benjamin Poulain <benjamin@webkit.org>
8959
8960 Calling internals from the performance test runner prevents manual running
8961 https://bugs.webkit.org/show_bug.cgi?id=93527
8962
8963 Reviewed by Ryosuke Niwa.
8964
8965 Since r125065, it is impossible to run the Performance tests manually. The problem is
8966 "internals" is not defined when running outside the test runner, so the whole script
8967 evaluation fails.
8968
8969 * resources/runner.js: Verify is window.internals is available before invoking something on it.
8970
zoltan@webkit.org00e90982012-08-08 19:09:07 +000089712012-08-08 Zoltan Horvath <zoltan@webkit.org>
8972
8973 Set access to MemoryInfo enabled for the performance tests
8974 https://bugs.webkit.org/show_bug.cgi?id=92498
8975
8976 Reviewed by Ryosuke Niwa.
8977
8978 We need access to console.memory for the memory measurements.
8979
8980 * resources/runner.js:
8981
rniwa@webkit.org80e60362012-08-08 00:08:42 +000089822012-08-07 Ryosuke Niwa <rniwa@webkit.org>
8983
8984 run-perf-tests should support --no-show-results
8985 https://bugs.webkit.org/show_bug.cgi?id=93409
8986
8987 Reviewed by Dirk Pranke.
8988
8989 Add a flot as a separate file and load it as an external resource.
8990
8991 Also include scripts as external resources from both local filesystem and webkit.org
8992 so that it continues to work regardless of where you put it.
8993
8994 It breaks when someone else receives the file and save it somewhere and doesn't have
8995 a network connection but that seems like a scenario we don't care that much.
8996
8997 * resources/jquery.flot.min.js: Added.
8998 * resources/results-template.html:
8999
rniwa@webkit.org532509b2012-08-06 21:59:06 +000090002012-08-06 Ryosuke Niwa <rniwa@webkit.org>
9001
9002 run-webkit-tests should have ability to add description to its JSON output
9003 https://bugs.webkit.org/show_bug.cgi?id=93296
9004
9005 Reviewed by Dirk Pranke.
9006
9007 Parse description and show it with the WebKit revision on the results page. Also use bar graphs
9008 instead of line graphs since we're not depicting the time series here per arv's suggestion.
9009 Finally, add the ability to adjust y-axis between the adjusted value and 0 (plot even doesn't adjust
9010 y-axis automatically now) by a mouse click.
9011
9012 * resources/results-template.html:
9013
rniwa@webkit.org74fd5212012-08-04 21:12:36 +000090142012-08-04 Ryosuke Niwa <rniwa@webkit.org>
9015
9016 Use testRunner instead of layoutTestController in performance tests
9017 https://bugs.webkit.org/show_bug.cgi?id=93184
9018
9019 Reviewed by Adam Barth.
9020
9021 * Animation/balls.html:
9022 * Dromaeo/resources/dromaeorunner.js:
9023 * inspector/console-300-lines.html:
9024 * inspector/inspector-startup-time.html:
9025 * inspector/network-append-30-requests.html.broken:
9026 * inspector/show-panel.html.broken:
9027 * resources/runner.js:
9028 (PerfTestRunner.logInfo):
9029 (PerfTestRunner.initAndStartLoop):
9030
commit-queue@webkit.org18fabe92012-08-02 19:20:33 +000090312012-08-02 Arnaud Renevier <a.renevier@sisa.samsung.com>
9032
9033 TypedArray set method is slow when called with another typed array
9034 https://bugs.webkit.org/show_bug.cgi?id=92556
9035
9036 Reviewed by Kenneth Russell.
9037
9038 * Bindings/typed-array-set-from-typed.html: Added.
9039
rniwa@webkit.org87736d82012-07-29 22:03:35 +000090402012-07-28 Ryosuke Niwa <rniwa@webkit.org>
9041
9042 run-perf-tests should generate a results page
9043 https://bugs.webkit.org/show_bug.cgi?id=92575
9044
9045 Reviewed by Eric Seidel.
9046
9047 Add a results page template. This page includes flot and flot.fillbetween.
9048 jQuery and the json that contains test results are injected by run-perf-tests.
9049
9050 * resources/results-template.html: Added.
9051
commit-queue@webkit.org108c43a2012-07-27 23:32:19 +000090522012-07-27 Arnaud Renevier <a.renevier@sisa.samsung.com>
9053
9054 use createUninitialized when creating TypedArray from another array
9055 https://bugs.webkit.org/show_bug.cgi?id=92518
9056
9057 Reviewed by Kenneth Russell.
9058
9059 * Bindings/typed-array-construct-from-array.html: Added.
9060
commit-queue@webkit.orgc64bd0b2012-07-27 18:25:53 +000090612012-07-27 Ryosuke Niwa <rniwa@webkit.org>
9062
9063 Add more Russian replay performance tests
9064 https://bugs.webkit.org/show_bug.cgi?id=92462
9065
9066 Reviewed by Tony Chang.
9067
9068 Add more Russian sites as suggested by loislo.
9069
9070 * Replay/Russian/lenta.ru.replay: Added.
9071 * Replay/Russian/www.ixbt.com.replay: Added.
9072 * Replay/Russian/www.kp.ru.replay: Added.
9073 * Replay/Russian/www.liveinternet.ru.replay: Added.
9074 * Replay/Russian/www.pravda.ru.replay: Added.
9075
commit-queue@webkit.orgd8d6c692012-07-27 00:25:04 +000090762012-07-26 Arnaud Renevier <a.renevier@sisa.samsung.com>
9077
9078 constructing TypedArray from another TypedArray is slow
9079 https://bugs.webkit.org/show_bug.cgi?id=90838
9080
9081 Reviewed by Kenneth Russell.
9082
9083 * Bindings/typed-array-construct-from-same-type.html: Added.
9084 * Bindings/typed-array-construct-from-typed.html: Added.
9085
rniwa@webkit.orgd8c99952012-07-25 20:52:22 +000090862012-07-25 Ryosuke Niwa <rniwa@webkit.org>
9087
9088 Import more replay performance tests from Mozilla's Tp5 test suite
9089 https://bugs.webkit.org/show_bug.cgi?id=92229
9090
9091 Reviewed by Andreas Kling.
9092
9093 Add more replay tests based on Mozilla's Tp5 test suite [1]. Unfortunately,
9094 we cannot import all URLs because some of them are not archived on archive.org
9095 and others do not replay well on web-page-replay. Nonethless, we're still adding
9096 60+ URLs in this patch.
9097
9098 [1] http://people.mozilla.org/~jmaher/tp5.manifest
9099
9100 * Replay/Chinese: Added.
9101 * Replay/Chinese/chinaz.com.replay: Added.
9102 * Replay/Chinese/www.163.com.replay: Added.
9103 * Replay/Chinese/www.alipay.com.replay: Added.
9104 * Replay/Chinese/www.baidu.com.replay: Added.
9105 * Replay/Chinese/www.csdn.net.replay: Added.
9106 * Replay/Chinese/www.douban.com.replay: Added.
9107 * Replay/Chinese/www.hao123.com.replay: Added.
9108 * Replay/Chinese/www.xinhuanet.com.replay: Added.
9109 * Replay/Chinese/www.xunlei.com.replay: Added.
9110 * Replay/Chinese/www.youku.com.replay: Added.
9111 * Replay/English: Added.
9112 * Replay/English/beatonna.livejournal.com.replay: Added.
9113 * Replay/English/cakewrecks.blogspot.com.replay: Added.
9114 * Replay/English/chemistry.about.com.replay: Added.
9115 * Replay/English/digg.com.replay: Added.
9116 * Replay/English/en.wikipedia.org-rorschach_test.replay: Added.
9117 * Replay/English/icanhascheezburger.com.replay: Added.
9118 * Replay/English/imgur.com-gallery.replay: Added.
9119 * Replay/English/online.wsj.com.replay: Added.
9120 * Replay/English/stockoverflow.com-best-comment.replay: Added.
9121 * Replay/English/www.alibaba.com.replay: Added.
9122 * Replay/English/www.amazon.com-kindle.replay: Added.
9123 * Replay/English/www.apple.com.replay: Added.
9124 * Replay/English/www.cnet.com.replay: Added.
9125 * Replay/English/www.dailymotion.com.replay: Added.
9126 * Replay/English/www.ehow.com-prevent-fire.replay: Added.
9127 * Replay/English/www.filestube.com-amy-adams.replay: Added.
9128 * Replay/English/www.foxnews.replay: Added.
9129 * Replay/English/www.huffingtonpost.com.replay: Added.
9130 * Replay/English/www.imdb.com-twilight.replay: Added.
9131 * Replay/English/www.mozilla.com-all-order.replay: Added.
9132 * Replay/English/www.php.net.replay: Added.
9133 * Replay/English/www.reddit.com.replay: Added.
9134 * Replay/English/www.telegraph.co.uk.replay: Added.
9135 * Replay/English/www.w3.org-htmlcss.replay: Added.
9136 * Replay/English/www.w3schools.com-html.replay: Added.
9137 * Replay/English/www.youtube.com-music.replay: Added.
9138 * Replay/French: Added.
9139 * Replay/French/www.orange.fr.replay: Added.
9140 * Replay/German: Added.
9141 * Replay/Italian: Added.
9142 * Replay/Italian/www.repubblica.it.replay: Added.
9143 * Replay/Japanese/entameblog.seesaa.net.replay: Added.
9144 * Replay/Japanese/www.hatena.ne.jp.replay: Added.
9145 * Replay/Japanese/www.nicovideo.jp.replay: Added.
9146 * Replay/Korean: Added.
9147 * Replay/Korean/www.naver.com.replay: Added.
9148 * Replay/Persian: Added.
9149 * Replay/Persian/blogfa.com.replay: Added.
9150 * Replay/Polish: Added.
9151 * Replay/Polish/www.wp.pl.replay: Added.
9152 * Replay/Portuguese: Added.
9153 * Replay/Portuguese/www.uol.com.br.replay: Added.
9154 * Replay/Russian: Added.
9155 * Replay/Russian/vkontakte.ru-help.replay: Added.
9156 * Replay/Russian/www.rambler.ru.replay: Added.
9157 * Replay/Russian/www.ucoz.ru.replay: Added.
9158 * Replay/Russian/www.yandex.ru.replay: Added.
9159 * Replay/Spanish: Added.
9160 * Replay/Spanish/www.taringa.net.replay: Added.
9161
rniwa@webkit.org7d8707b2012-07-24 13:40:52 +000091622012-07-24 Ryosuke Niwa <rniwa@webkit.org>
9163
9164 Add some Japanese and Swedish websites to replay tests
9165 https://bugs.webkit.org/show_bug.cgi?id=92076
9166
9167 Reviewed by Andreas Kling.
9168
9169 Added new replay tests as follows.
9170
9171 * Replay/Japanese: Added.
9172 * Replay/Japanese/2ch.net-newsplus.replay: Added.
9173 * Replay/Japanese/ja.wikipedia.org.replay: Added.
9174 * Replay/Japanese/www.livedoor.com.replay: Added.
9175 * Replay/Japanese/www.rakuten.co.jp.replay: Added.
9176 * Replay/Japanese/www.yahoo.co.jp.replay: Added.
9177 * Replay/Swedish: Added.
9178 * Replay/Swedish/www.flashback.se.replay: Added.
9179 * Replay/Swedish/www.tradera.com.replay: Added.
9180 * Replay/www.techcrunch.com.replay: Added.
9181
morrita@google.comc9688402012-07-19 02:29:12 +000091822012-07-18 MORITA Hajime <morrita@google.com>
9183
9184 Add window resize benchmark
9185 https://bugs.webkit.org/show_bug.cgi?id=91070
9186
9187 Reviewed by Ryosuke Niwa.
9188
9189 Added window-resize.html which exercise html5.html. This test
9190 resizes the window and forces re-layout repeatedly.
9191
9192 * Interactive/resources/window-resize.js: Added.
9193 * Interactive/window-resize.html: Added.
9194 * Parser/resources/html5.html: Modified to inject driver scripts.
9195
pdr@google.com257156e2012-07-11 18:45:32 +000091962012-07-11 Philip Rogers <pdr@google.com>
9197
9198 Add a performance test for hit testing in SVG
9199 https://bugs.webkit.org/show_bug.cgi?id=90811
9200
9201 Reviewed by Ryosuke Niwa.
9202
9203 The shape rendering code is changing a lot and I'd like a performance test to
9204 make sure we don't regress, and to track our improvements.
9205
9206 Performance results in my Linux desktop:
9207 RESULT SVG: SvgHitTesting= 105.0 ms
9208 median= 103.5 ms, stdev= 4.60434577329 ms, min= 101.0 ms, max= 116.0 ms
9209
9210 RESULT SVG: SvgHitTesting= 97.8 ms
9211 median= 96.5 ms, stdev= 2.67581763205 ms, min= 95.0 ms, max= 102.0 ms
9212
9213 RESULT SVG: SvgHitTesting= 104.3 ms
9214 median= 104.0 ms, stdev= 1.41774468788 ms, min= 102.0 ms, max= 107.0 ms
9215
9216 RESULT SVG: SvgHitTesting= 103.6 ms
9217 median= 103.5 ms, stdev= 1.2 ms, min= 102.0 ms, max= 106.0 ms
9218
9219 * SVG/SvgHitTesting.html: Added.
9220
vsevik@chromium.orgc725dd42012-07-03 08:45:08 +000092212012-07-03 Jan Keromnes <janx@linux.com>
9222
9223 Web Inspector: WebInspector.TextViewer should be renamed WebInspector.TextEditor
9224 https://bugs.webkit.org/show_bug.cgi?id=89939
9225
9226 Reviewed by Vsevolod Vlasov.
9227
9228 * inspector/first-open-scripts.html.broken:
9229
pdr@google.com273d4e72012-06-22 23:26:12 +000092302012-06-22 Philip Rogers <pdr@google.com>
9231
9232 Make SvgCubics performance test more consistent
9233 https://bugs.webkit.org/show_bug.cgi?id=89778
9234
9235 Reviewed by Ryosuke Niwa.
9236
9237 Previously this test ran twice for each iteration, but this led to inconsistent repaints.
9238 This change updates the test to only run once per iteration, and adds even more cubics
9239 so that the test runs consistently in the 80ms range on my Linux desktop.
9240
9241 Performance results on my desktop:
9242 RESULT SVG: SvgCubics= 80.5 ms
9243 median= 82.0 ms, stdev= 3.04138126515 ms, min= 75.0 ms, max= 85.0 ms
9244
9245 RESULT SVG: SvgCubics= 80.1 ms
9246 median= 81.0 ms, stdev= 4.27668095607 ms, min= 74.0 ms, max= 88.0 ms
9247
9248 RESULT SVG: SvgCubics= 81.45 ms
9249 median= 83.0 ms, stdev= 4.01839520207 ms, min= 75.0 ms, max= 89.0 ms
9250
9251 RESULT SVG: SvgCubics= 78.9 ms
9252 median= 80.0 ms, stdev= 4.75289385533 ms, min= 72.0 ms, max= 87.0 ms
9253
9254 * SVG/SvgCubics.html:
9255
loislo@chromium.org8007d592012-06-22 14:08:05 +000092562012-06-22 Ilya Tikhonovsky <loislo@chromium.org>
9257
9258 Web Inspector: partially instrument DOM Tree native memory.
9259 https://bugs.webkit.org/show_bug.cgi?id=89568
9260
9261 This patch adds MemoryInstrumentation class that counts all visited
9262 objects and calls reportMemoryUsage.
9263
9264 Reviewed by Yury Semikhatsky.
9265
9266 * inspector/native-memory-snapshot.html:
9267
haraken@chromium.orgd129d852012-06-22 02:50:52 +000092682012-06-21 Kentaro Hara <haraken@chromium.org>
9269
9270 Add a perf-test for innerHTML setter for a large DOM tree
9271 https://bugs.webkit.org/show_bug.cgi?id=89723
9272
9273 Reviewed by Ryosuke Niwa.
9274
9275 We want a benchmark for innerHTML setter for the following reason:
9276
9277 - innerHTML setter is widely used in the real world.
9278 - I am planning to optimize innerHTML setter in the near future.
9279 - I want to use the innerHTML setter benchmark for the patch of bug 88834.
9280
9281 Performance results in my Linux desktop:
9282
9283 RESULT Parser: innerHTML-setter= 289.782649995 runs/s
9284 median= 290.046269741 runs/s, stdev= 1.06575112224 runs/s, min= 286.831812256 runs/s, max= 291.005291005 runs/s
9285
9286 RESULT Parser: innerHTML-setter= 289.020706132 runs/s
9287 median= 289.093298292 runs/s, stdev= 0.985203313093 runs/s, min= 286.831812256 runs/s, max= 290.620871863 runs/s
9288
9289 RESULT Parser: innerHTML-setter= 288.912051701 runs/s
9290 median= 291.005291005 runs/s, stdev= 3.65241325588 runs/s, min= 283.505154639 runs/s, max= 292.553191489 runs/s
9291
9292 RESULT Parser: innerHTML-setter= 288.644186666 runs/s
9293 median= 288.713910761 runs/s, stdev= 1.31889053717 runs/s, min= 286.085825748 runs/s, max= 290.620871863 runs/s
9294
9295 RESULT Parser: innerHTML-setter= 288.698714577 runs/s
9296 median= 288.713910761 runs/s, stdev= 1.03938198202 runs/s, min= 286.458333333 runs/s, max= 290.237467018 runs/s
9297
9298 * Parser/innerHTML-setter.html: Added.
9299
pdr@google.comc5bccdc2012-06-21 01:03:59 +000093002012-06-20 Philip Rogers <pdr@google.com>
9301
9302 Add a performance test for paths in SVG
9303 https://bugs.webkit.org/show_bug.cgi?id=89547
9304
9305 Reviewed by Ryosuke Niwa.
9306
9307 This change adds the first performance test for SVG paths.
9308 In the test we modify complex cubic paths in several ways, testing:
9309 transformations, clipping, d attribute changes, stroke properties,
9310 text on a path, and opacity.
9311
9312 Sample test results on my Linux desktop:
9313 RESULT SVG: SvgCubics= 68.85 ms
9314 median= 69.5 ms, stdev= 4.70398767005 ms, min= 56.0 ms, max= 75.0 ms
9315
9316 RESULT SVG: SvgCubics= 68.4 ms
9317 median= 69.0 ms, stdev= 3.51283361405 ms, min= 59.0 ms, max= 74.0 ms
9318
9319 RESULT SVG: SvgCubics= 66.95 ms
9320 median= 67.0 ms, stdev= 3.4420197559 ms, min= 59.0 ms, max= 74.0 ms
9321
9322 RESULT SVG: SvgCubics= 70.2 ms
9323 median= 71.5 ms, stdev= 3.23419232576 ms, min= 63.0 ms, max= 74.0 ms
9324
9325 * SVG: Added.
9326 * SVG/SvgCubics.html: Added.
9327
tomz@codeaurora.org79a1bc02012-06-20 15:09:19 +000093282012-06-20 Tom Zakrajsek <tomz@codeaurora.org>
9329
9330 Import themaninblue.com/experiment/AnimationBenchmark/ as performance tests
9331 https://bugs.webkit.org/show_bug.cgi?id=78789
9332
9333 Reviewed by Ryosuke Niwa.
9334
9335 Added PerfTestRunner fixture around it.
9336
9337 * Animation/balls.html: Added.
9338
loislo@chromium.org91b10ed2012-06-18 19:53:38 +000093392012-06-18 Ilya Tikhonovsky <loislo@chromium.org>
9340
9341 Web Inspector: native memory snapshot performance and coverage test implementation.
9342 https://bugs.webkit.org/show_bug.cgi?id=89363
9343
9344 We have to track the performance of MemoryAgent.getProcessMemoryDistribution.
9345 Also this test will work as a burn down chart for Unknown memory metric.
9346
9347 Reviewed by Pavel Feldman.
9348
9349 * inspector/native-memory-snapshot.html: Added.
9350 * inspector/performance-test.js:
9351 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer):
9352 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.reportSize):
9353 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._dump):
9354 (initialize_TimeTracker.InspectorTest.runPerformanceTest):
9355
loislo@chromium.orgf7bed1b2012-06-05 17:08:19 +000093562012-06-05 Alexei Filippov <alexeif@chromium.org>
9357
9358 Web Inspector: serialize edge counts instead of indexes in heap snapshot
9359 https://bugs.webkit.org/show_bug.cgi?id=88324
9360
9361 The serialized node structure currently holds an index
9362 of its first containment edge in the edges array.
9363 The index can be quite big (up to 7 digits for large snapshots).
9364 The patch changes the serialization format to pass
9365 node containment edge count instead. For most nodes the count
9366 is just a single digit number.
9367 This reduces serialized snapshot size and therefore its transfer time.
9368
9369 Reviewed by Yury Semikhatsky.
9370
9371 * inspector/heap-snapshot-performance-test.js:
9372
loislo@chromium.org88129572012-06-04 12:38:30 +000093732012-06-04 Alexei Filippov <alexeif@chromium.org>
9374
9375 Web Inspector: speed up _calculateRetainedSizes function
9376 https://bugs.webkit.org/show_bug.cgi?id=87863
9377
9378 Reviewed by Yury Semikhatsky.
9379
9380 * inspector/heap-snapshot-advanced.html: Added.
9381 * inspector/heap-snapshot-performance-test.js: Copied from PerformanceTests/inspector/heap-snapshot.html.
9382 (test.performanceTest.step0):
9383 (test.performanceTest.step1):
9384 (test.performanceTest.step2):
9385 (test.performanceTest.cleanup):
9386 (test.performanceTest.done):
9387 (test.performanceTest):
9388 (test):
9389 * inspector/heap-snapshot.html:
9390
haraken@chromium.orgbf3d2c52012-06-04 02:24:49 +000093912012-06-03 Kentaro Hara <haraken@chromium.org>
9392
haraken@chromium.org27571752012-06-04 03:14:20 +00009393 [perf-test] Add a benchmark of querySelector() for an element that appears in the depths in the document
9394 https://bugs.webkit.org/show_bug.cgi?id=88202
9395
9396 Reviewed by Ryosuke Niwa.
9397
9398 query-selector-first.html tests querySelector() for an element
9399 that appears at the head of the document. query-selector-last.html
9400 tests querySelector() for an element that appears at the tail of
9401 the document. In addition, we want a benchmark of querySelector()
9402 for an element that appears in the depths in the document.
9403
9404 Test results in my Linux desktop:
9405
9406 RESULT Parser: query-selector-deep= 460.776980611 runs/s
9407 median= 460.947503201 runs/s, stdev= 1.72274941942 runs/s, min= 455.696202532 runs/s, max= 463.32046332 runs/s
9408
9409 RESULT Parser: query-selector-deep= 458.925050915 runs/s
9410 median= 459.183673469 runs/s, stdev= 1.47930124139 runs/s, min= 454.545454545 runs/s, max= 460.947503201 runs/s
9411
9412 RESULT Parser: query-selector-deep= 461.866981491 runs/s
9413 median= 461.538461538 runs/s, stdev= 1.14613123359 runs/s, min= 459.183673469 runs/s, max= 463.917525773 runs/s
9414
9415 RESULT Parser: query-selector-deep= 453.922010788 runs/s
9416 median= 454.258855898 runs/s, stdev= 1.77279123317 runs/s, min= 447.204968944 runs/s, max= 455.696202532 runs/s
9417
9418 RESULT Parser: query-selector-deep= 454.666321221 runs/s
9419 median= 454.545454545 runs/s, stdev= 1.65775667417 runs/s, min= 451.127819549 runs/s, max= 456.852791878 runs/s
9420
9421 * Parser/query-selector-deep.html: Added.
9422
94232012-06-03 Kentaro Hara <haraken@chromium.org>
9424
haraken@chromium.orgbf3d2c52012-06-04 02:24:49 +00009425 [perf-test] Make query-selector-last.html more realistic
9426 https://bugs.webkit.org/show_bug.cgi?id=88203
9427
9428 Reviewed by Ryosuke Niwa.
9429
9430 query-selector-last.html tests querySelector() for an element
9431 that appears after 1000 div elements, all of which have the same
9432 id and class. To test the performance of querySelector() under
9433 a lot of ids and classes, we should make the ids and classes of
9434 the 1000 elements different.
9435
9436 This patch degrades the performance of query-selector-last.html
9437 by 3.6%.
9438
9439 [Before]
9440 RESULT Parser: query-selector-last= 476.382274152 runs/s
9441 median= 476.821192053 runs/s, stdev= 1.14578875814 runs/s, min= 474.308300395 runs/s, max= 478.087649402 runs/s
9442
9443 RESULT Parser: query-selector-last= 478.423061861 runs/s
9444 median= 478.723404255 runs/s, stdev= 1.54876867255 runs/s, min= 473.684210526 runs/s, max= 481.347773767 runs/s
9445
9446 RESULT Parser: query-selector-last= 479.849287174 runs/s
9447 median= 480.0 runs/s, stdev= 1.69849752498 runs/s, min= 475.561426684 runs/s, max= 481.927710843 runs/s
9448
9449 RESULT Parser: query-selector-last= 476.765438846 runs/s
9450 median= 477.453580902 runs/s, stdev= 1.8724488664 runs/s, min= 471.821756225 runs/s, max= 478.723404255 runs/s
9451
9452 RESULT Parser: query-selector-last= 481.715340644 runs/s
9453 median= 481.637742305 runs/s, stdev= 1.81446361145 runs/s, min= 475.561426684 runs/s, max= 483.675937122 runs/s
9454
9455 [After]
9456 RESULT Parser: query-selector-last= 458.866623582 runs/s
9457 median= 459.183673469 runs/s, stdev= 1.48881464737 runs/s, min= 453.972257251 runs/s, max= 460.947503201 runs/s
9458
9459 RESULT Parser: query-selector-last= 460.363532897 runs/s
9460 median= 460.358056266 runs/s, stdev= 1.58512056995 runs/s, min= 456.273764259 runs/s, max= 462.130937099 runs/s
9461
9462 RESULT Parser: query-selector-last= 457.727448451 runs/s
9463 median= 458.015267176 runs/s, stdev= 1.23681915516 runs/s, min= 453.972257251 runs/s, max= 459.183673469 runs/s
9464
9465 RESULT Parser: query-selector-last= 465.57336853 runs/s
9466 median= 465.717981889 runs/s, stdev= 1.6616925374 runs/s, min= 460.947503201 runs/s, max= 467.532467532 runs/s
9467
9468 RESULT Parser: query-selector-last= 459.836252019 runs/s
9469 median= 459.770114943 runs/s, stdev= 1.84485630505 runs/s, min= 455.696202532 runs/s, max= 462.724935733 runs/s
9470
9471 * Parser/query-selector-last.html:
9472
rniwa@webkit.org15684512012-06-01 03:19:31 +000094732012-06-01 Ryosuke Niwa <rniwa@webkit.org>
9474
9475 Add public page loading performance tests using web-page-replay
9476 https://bugs.webkit.org/show_bug.cgi?id=84008
9477
9478 Reviewed by Dirk Pranke.
9479
9480 Add replay tests for google.com and youtube.com as examples.
9481
9482 * Replay: Added.
9483 * Replay/www.google.com.replay: Added.
9484 * Replay/www.youtube.com.replay: Added.
9485
haraken@chromium.org2061b652012-05-30 07:00:50 +000094862012-05-30 Kentaro Hara <haraken@chromium.org>
9487
9488 [perf-test] Add a benchmark for querySelector()
9489 https://bugs.webkit.org/show_bug.cgi?id=87742
9490
9491 Reviewed by Ryosuke Niwa.
9492
9493 Now I am optimizing querySelector() (bug 87625).
9494 This patch adds a performance test for querySelector().
9495 query-selector-first.html queries an element that appears
9496 at the head of the document. On the other hand,
9497 query-selector-last.html queries an element that appears
9498 at the tail of the document.
9499
9500 Test results in my desktop:
9501
9502 [query-selector-first.html]
9503 RESULT Parser: query-selector-first= 252.339803014 runs/s
9504 median= 253.646265594 runs/s, stdev= 2.32610873209 runs/s, min= 248.138957816 runs/s, max= 254.777070064 runs/s
9505
9506 RESULT Parser: query-selector-first= 252.688468897 runs/s
9507 median= 252.684876579 runs/s, stdev= 3.60008778708 runs/s, min= 246.002460025 runs/s, max= 258.397932817 runs/s
9508
9509 RESULT Parser: query-selector-first= 253.466019656 runs/s
9510 median= 254.129606099 runs/s, stdev= 1.78002675664 runs/s, min= 247.831474597 runs/s, max= 254.777070064 runs/s
9511
9512 RESULT Parser: query-selector-first= 256.245078189 runs/s
9513 median= 257.06940874 runs/s, stdev= 2.84722072201 runs/s, min= 249.687890137 runs/s, max= 259.74025974 runs/s
9514
9515 RESULT Parser: query-selector-first= 252.203100497 runs/s
9516 median= 252.047989175 runs/s, stdev= 1.75233446036 runs/s, min= 248.138957816 runs/s, max= 255.427841635 runs/s
9517
9518 [query-selector-last.html]
9519 RESULT Parser: query-selector-last= 356.009616076 runs/s
9520 median= 355.781448539 runs/s, stdev= 0.841519086864 runs/s, min= 354.430379747 runs/s, max= 358.056265985 runs/s
9521
9522 RESULT Parser: query-selector-last= 360.735271001 runs/s
9523 median= 361.057532424 runs/s, stdev= 1.12253219867 runs/s, min= 358.514724712 runs/s, max= 362.225097025 runs/s
9524
9525 RESULT Parser: query-selector-last= 359.598592463 runs/s
9526 median= 359.435173299 runs/s, stdev= 0.816538258728 runs/s, min= 358.056265985 runs/s, max= 360.824742268 runs/s
9527
9528 RESULT Parser: query-selector-last= 357.260651715 runs/s
9529 median= 357.598978289 runs/s, stdev= 1.17393159885 runs/s, min= 353.982300885 runs/s, max= 358.974358974 runs/s
9530
9531 RESULT Parser: query-selector-last= 351.696240713 runs/s
9532 median= 351.980025916 runs/s, stdev= 1.14200564038 runs/s, min= 348.692403487 runs/s, max= 353.535353535 runs/s
9533
9534 * Parser/query-selector-first.html: Added.
9535 * Parser/query-selector-last.html: Added.
9536
loislo@chromium.org8c678a72012-05-25 09:01:29 +000095372012-05-25 Ilya Tikhonovsky <loislo@chromium.org>
9538
loislo@chromium.org03b391a2012-05-25 13:48:08 +00009539 Web Inspector: HeapSnapshot: introduce performance counter for HeapSnapshotConstructorsDataGrid._aggregatesReceived method.
9540 https://bugs.webkit.org/show_bug.cgi?id=87393
9541
9542 Reviewed by Yury Semikhatsky.
9543
9544 * inspector/heap-snapshot.html:
9545
95462012-05-25 Ilya Tikhonovsky <loislo@chromium.org>
9547
loislo@chromium.org8c678a72012-05-25 09:01:29 +00009548 Web Inspector: HeapProfiler's perf test: each N-th run pushes the run results N-th times.
9549 https://bugs.webkit.org/show_bug.cgi?id=87476
9550
9551 The time tracking wrappers were attaching on each run.
9552
9553 Reviewed by Yury Semikhatsky.
9554
9555 * inspector/heap-snapshot.html:
9556
loislo@chromium.org786b5952012-05-22 11:54:50 +000095572012-05-22 Ilya Tikhonovsky <loislo@chromium.org>
9558
9559 Web Inspector: HeapProfiler: upstream retainedSize calculation.
9560 https://bugs.webkit.org/show_bug.cgi?id=87107
9561
9562 This patch upstreams V8::HeapSnapshotGenerator::CalculateRetainedSizes function to front-end.
9563 After that we will be able to drop retainedSize field from the snapshot serialized data.
9564 See meta-bug https://bugs.webkit.org/show_bug.cgi?id=87089
9565
9566 Reviewed by Yury Semikhatsky.
9567
9568 * inspector/heap-snapshot.html: add counter for the _calculateRetainedSize method.
9569
tkent@chromium.orgcea87a42012-05-22 00:53:41 +000095702012-05-21 Kent Tamura <tkent@chromium.org>
9571
9572 Add performance tests for <textarea>
9573 https://bugs.webkit.org/show_bug.cgi?id=86994
9574
9575 Reviewed by Ryosuke Niwa.
9576
9577 * DOM/textarea-dom.html: Added.
9578 * DOM/textarea-edit.html: Added.
9579 * Parser/textarea-parsing.html: Added.
9580
loislo@chromium.org70a1f502012-05-21 08:53:37 +000095812012-05-18 Ilya Tikhonovsky <loislo@chromium.org>
9582
9583 Web Inspector: upstream build dominators tree procedure from v8.
9584 https://bugs.webkit.org/show_bug.cgi?id=86640
9585
9586 The idea is to reduce transfer size and move all the post-processing steps to the front-end.
9587 The JS implementation is ~1.5 times slower.
9588
9589 Reviewed by Yury Semikhatsky.
9590
9591 Covered by existing tests and performance tests.
9592
9593 * inspector/heap-snapshot.html:
9594
haraken@chromium.org0b3e29d2012-05-18 07:20:36 +000095952012-05-18 Kentaro Hara <haraken@chromium.org>
9596
haraken@chromium.org0059cfc2012-05-18 20:30:35 +00009597 [perf-test] Remove Bindings/dom-attributes.html
9598 https://bugs.webkit.org/show_bug.cgi?id=86820
9599
9600 Reviewed by Ryosuke Niwa.
9601
9602 Bindings/dom-attributes.html is just a collection of random
9603 DOM attributes and methods. Now we've added more reasonable
9604 micro benchmarks by classifying DOM binding call paths, we
9605 can remove Bindings/dom-attributes.html.
9606
9607 * Bindings/dom-attributes.html: Removed.
9608
96092012-05-18 Kentaro Hara <haraken@chromium.org>
9610
haraken@chromium.orga97bd502012-05-18 09:23:35 +00009611 [perf-test] Add a binding benchmark for getElementById() for an undefined id
9612 https://bugs.webkit.org/show_bug.cgi?id=86812
9613
9614 Reviewed by Ryosuke Niwa.
9615
9616 We should remove Bindings/dom-attributes.html and instead add more
9617 reasonable micro benchmarks by classifying DOM binding call paths.
9618
9619 This patch adds a benchmark for document.getElementById() for an undefined id.
9620 This benchmark covers 'getElementById (not in document)' in Dromaeo/dom-query.html,
9621 and other Node-query methods that return a null.'
9622
9623 (Note: This benchmark is slower than document.getElementById() for a defined id.
9624 We will fix the performance issue soon.)
9625
9626 Test results in my Linux desktop:
9627
9628 RESULT Bindings: undefined-get-element-by-id= 271.945751345 runs/s
9629 median= 273.122389532 runs/s, stdev= 6.78219237299 runs/s, min= 257.4002574 runs/s, max= 281.690140845 runs/s
9630
9631 RESULT Bindings: undefined-get-element-by-id= 269.105872408 runs/s
9632 median= 268.948655257 runs/s, stdev= 5.73707323755 runs/s, min= 257.4002574 runs/s, max= 278.128950695 runs/s
9633
9634 RESULT Bindings: undefined-get-element-by-id= 269.987513372 runs/s
9635 median= 272.952853598 runs/s, stdev= 5.30252336078 runs/s, min= 255.754475703 runs/s, max= 273.97260274 runs/s
9636
9637 RESULT Bindings: undefined-get-element-by-id= 270.169625901 runs/s
9638 median= 271.604938272 runs/s, stdev= 5.29502391906 runs/s, min= 258.064516129 runs/s, max= 278.481012658 runs/s
9639
9640 RESULT Bindings: undefined-get-element-by-id= 269.054631422 runs/s
9641 median= 267.966292802 runs/s, stdev= 6.27197240579 runs/s, min= 258.064516129 runs/s, max= 278.481012658 runs/s
9642
9643 * Bindings/undefined-get-element-by-id.html: Added.
9644
96452012-05-18 Kentaro Hara <haraken@chromium.org>
9646
haraken@chromium.org71286c32012-05-18 09:20:32 +00009647 [perf-test] Add a binding benchmark for getElementsByTagName()
9648 https://bugs.webkit.org/show_bug.cgi?id=86810
9649
9650 Reviewed by Ryosuke Niwa.
9651
9652 We should remove Bindings/dom-attributes.html and instead add more
9653 reasonable micro benchmarks by classifying DOM binding call paths.
9654
9655 This patch adds a benchmark for document.getElementsByTagName().
9656 This benchmark covers 'getElementsByTagName (not in document)',
9657 'getElementsByTagName', 'getElementsByName (not in document)'
9658 and 'getElementsByName' in Dromaeo/dom-query.html, and other DOM
9659 methods that return a NodeList.
9660
9661 Test results in my Linux desktop:
9662
9663 RESULT Bindings: get-elements-by-tag-name= 364.542328875 runs/s
9664 median= 366.972477064 runs/s, stdev= 5.25387955333 runs/s, min= 351.317440402 runs/s, max= 368.421052632 runs/s
9665
9666 RESULT Bindings: get-elements-by-tag-name= 364.341569369 runs/s
9667 median= 366.492146597 runs/s, stdev= 4.867374197 runs/s, min= 352.644836272 runs/s, max= 367.936925099 runs/s
9668
9669 RESULT Bindings: get-elements-by-tag-name= 363.924242967 runs/s
9670 median= 366.013071895 runs/s, stdev= 5.16768212289 runs/s, min= 351.317440402 runs/s, max= 367.936925099 runs/s
9671
9672 RESULT Bindings: get-elements-by-tag-name= 365.332594438 runs/s
9673 median= 367.454068241 runs/s, stdev= 6.17046918572 runs/s, min= 350.0 runs/s, max= 370.37037037 runs/s
9674
9675 RESULT Bindings: get-elements-by-tag-name= 363.999514324 runs/s
9676 median= 366.492146597 runs/s, stdev= 5.31235674905 runs/s, min= 350.877192982 runs/s, max= 368.421052632 runs/s
9677
9678 * Bindings/get-elements-by-tag-name.html: Added.
9679
96802012-05-18 Kentaro Hara <haraken@chromium.org>
9681
haraken@chromium.orgc03afb12012-05-18 08:40:55 +00009682 [perf-test] Add 7 micro benchmarks for DOM bindings
9683 https://bugs.webkit.org/show_bug.cgi?id=86816
9684
9685 Reviewed by Ryosuke Niwa.
9686
9687 We should remove Bindings/dom-attributes.html and instead add more
9688 reasonable micro benchmarks by classifying DOM binding call paths.
9689 This patch adds seven micro benchmarks for DOM bindings.
9690
9691 id-getter.html covers 'element.property' in Dromaeo/dom-attr.html,
9692 'innerHTML' in Dromaeo/dom-modify.html, and other DOM attributes that
9693 return a String.
9694
9695 id-setter.html covers 'element.property = value' in Dromaeo/dom-attr.html,
9696 and other DOM attributes that sets a String.
9697
9698 undefined-id-getter.html covers undefined DOM attributes that return an empty String.
9699
9700 append-child.html covers 'appendChild' and 'removeChild' in Dromaeo/dom-modify.html.
9701
9702 insert-before.html covers 'insertBefore' in Dromaeo/dom-modify.html and replaceChild().
9703
9704 create-element.html covers 'createElement', 'createTextNode' and 'cloneNode'
9705 in Dromaeo/dom-modify.html, and other DOM methods that return a new Node object.
9706
9707 node-list-access.html covers 'childNodes' in Dromaeo/dom-traverse.html,
9708 and other DOM attributes that access NodeList.
9709
9710 Test results in my Linux desktop:
9711
9712 [id-getter]
9713 RESULT Bindings: id-getter= 550.517821097 runs/s
9714 median= 550.688360451 runs/s, stdev= 0.970723739106 runs/s, min= 548.628428928 runs/s, max= 552.070263488 runs/s
9715
9716 RESULT Bindings: id-getter= 550.655839847 runs/s
9717 median= 550.688360451 runs/s, stdev= 1.03312821884 runs/s, min= 549.313358302 runs/s, max= 552.070263488 runs/s
9718
9719 RESULT Bindings: id-getter= 550.277753355 runs/s
9720 median= 550.344180225 runs/s, stdev= 1.19960683464 runs/s, min= 547.945205479 runs/s, max= 552.070263488 runs/s
9721
9722 RESULT Bindings: id-getter= 550.072271009 runs/s
9723 median= 550.344180225 runs/s, stdev= 1.38925152131 runs/s, min= 547.263681592 runs/s, max= 552.070263488 runs/s
9724
9725 RESULT Bindings: id-getter= 548.802050235 runs/s
9726 median= 548.628428928 runs/s, stdev= 1.18244513683 runs/s, min= 545.905707196 runs/s, max= 550.688360451 runs/s
9727
9728 [id-setter]
9729 RESULT Bindings: id-setter= 211.370591663 runs/s
9730 median= 210.803689065 runs/s, stdev= 1.4555795889 runs/s, min= 209.973753281 runs/s, max= 214.285714286 runs/s
9731
9732 RESULT Bindings: id-setter= 215.439081352 runs/s
9733 median= 214.797136038 runs/s, stdev= 1.50920388121 runs/s, min= 213.049267643 runs/s, max= 218.446601942 runs/s
9734
9735 RESULT Bindings: id-setter= 216.721698466 runs/s
9736 median= 215.956886352 runs/s, stdev= 1.54090749644 runs/s, min= 214.285714286 runs/s, max= 219.78021978 runs/s
9737
9738 RESULT Bindings: id-setter= 216.343019087 runs/s
9739 median= 215.827338129 runs/s, stdev= 1.46619894553 runs/s, min= 215.053763441 runs/s, max= 218.97810219 runs/s
9740
9741 RESULT Bindings: id-setter= 216.799288017 runs/s
9742 median= 215.956886352 runs/s, stdev= 1.49100776978 runs/s, min= 215.311004785 runs/s, max= 219.78021978 runs/s
9743
9744 [undefined-id-getter]
9745 RESULT Bindings: undefined-id-getter= 494.104255241 runs/s
9746 median= 494.132368875 runs/s, stdev= 1.13092821109 runs/s, min= 490.797546012 runs/s, max= 495.662949195 runs/s
9747
9748 RESULT Bindings: undefined-id-getter= 493.921802916 runs/s
9749 median= 493.827160494 runs/s, stdev= 1.25097443119 runs/s, min= 490.196078431 runs/s, max= 495.662949195 runs/s
9750
9751 RESULT Bindings: undefined-id-getter= 491.976485667 runs/s
9752 median= 492.004920049 runs/s, stdev= 0.947090576896 runs/s, min= 490.196078431 runs/s, max= 493.827160494 runs/s
9753
9754 RESULT Bindings: undefined-id-getter= 491.987710185 runs/s
9755 median= 494.132368875 runs/s, stdev= 8.66602543327 runs/s, min= 454.545454545 runs/s, max= 495.662949195 runs/s
9756
9757 RESULT Bindings: undefined-id-getter= 494.195515847 runs/s
9758 median= 494.437577256 runs/s, stdev= 1.06135681702 runs/s, min= 490.797546012 runs/s, max= 495.662949195 runs/s
9759
9760 [append-child]
9761 RESULT Bindings: append-child= 260.628237026 runs/s
9762 median= 260.926399352 runs/s, stdev= 2.55231060598 runs/s, min= 256.739409499 runs/s, max= 265.604249668 runs/s
9763
9764 RESULT Bindings: append-child= 280.796193436 runs/s
9765 median= 280.791435348 runs/s, stdev= 2.53961321867 runs/s, min= 277.427490542 runs/s, max= 286.085825748 runs/s
9766
9767 RESULT Bindings: append-child= 279.856209714 runs/s
9768 median= 280.25477707 runs/s, stdev= 2.85447647301 runs/s, min= 275.344180225 runs/s, max= 284.237726098 runs/s
9769
9770 RESULT Bindings: append-child= 280.834502714 runs/s
9771 median= 280.25477707 runs/s, stdev= 2.67738046429 runs/s, min= 277.427490542 runs/s, max= 287.206266319 runs/s
9772
9773 RESULT Bindings: append-child= 274.723872106 runs/s
9774 median= 273.291925466 runs/s, stdev= 3.03671746706 runs/s, min= 272.614622057 runs/s, max= 282.413350449 runs/s
9775
9776 [insert-before]
9777 RESULT Bindings: insert-before= 180.986913006 runs/s
9778 median= 180.878552972 runs/s, stdev= 0.758038687299 runs/s, min= 180.18018018 runs/s, max= 183.968462549 runs/s
9779
9780 RESULT Bindings: insert-before= 186.339916144 runs/s
9781 median= 186.170212766 runs/s, stdev= 0.869022097127 runs/s, min= 185.676392573 runs/s, max= 189.798339265 runs/s
9782
9783 RESULT Bindings: insert-before= 189.45344838 runs/s
9784 median= 189.349112426 runs/s, stdev= 0.811854866567 runs/s, min= 187.79342723 runs/s, max= 192.539109507 runs/s
9785
9786 RESULT Bindings: insert-before= 189.363295991 runs/s
9787 median= 189.349112426 runs/s, stdev= 0.75387713097 runs/s, min= 188.014101058 runs/s, max= 192.076830732 runs/s
9788
9789 RESULT Bindings: insert-before= 189.252041642 runs/s
9790 median= 189.349112426 runs/s, stdev= 0.840447225363 runs/s, min= 187.573270809 runs/s, max= 192.076830732 runs/s
9791
9792 [create-element]
9793 RESULT Bindings: create-element= 280.675830077 runs/s
9794 median= 280.701824914 runs/s, stdev= 0.788606343054 runs/s, min= 279.441117764 runs/s, max= 282.542885974 runs/s
9795
9796 RESULT Bindings: create-element= 276.427631436 runs/s
9797 median= 277.227722772 runs/s, stdev= 3.39874667549 runs/s, min= 262.417994377 runs/s, max= 279.162512463 runs/s
9798
9799 RESULT Bindings: create-element= 277.156894411 runs/s
9800 median= 277.227722772 runs/s, stdev= 1.13255119226 runs/s, min= 274.914089347 runs/s, max= 278.884462151 runs/s
9801
9802 RESULT Bindings: create-element= 278.066825356 runs/s
9803 median= 278.191822254 runs/s, stdev= 0.686497782792 runs/s, min= 276.953511375 runs/s, max= 279.162512463 runs/s
9804
9805 RESULT Bindings: create-element= 276.431538109 runs/s
9806 median= 276.406712734 runs/s, stdev= 0.759593662298 runs/s, min= 275.229357798 runs/s, max= 278.053624628 runs/s
9807
9808 [node-list-access]
9809 RESULT Bindings: node-list-access= 222.747504073 runs/s
9810 median= 222.772277228 runs/s, stdev= 0.789027527555 runs/s, min= 221.674876847 runs/s, max= 224.159402242 runs/s
9811
9812 RESULT Bindings: node-list-access= 220.722448287 runs/s
9813 median= 221.266217576 runs/s, stdev= 1.65463497875 runs/s, min= 217.391304348 runs/s, max= 222.222222222 runs/s
9814
9815 RESULT Bindings: node-list-access= 222.195870443 runs/s
9816 median= 222.222222222 runs/s, stdev= 0.489709262091 runs/s, min= 221.13022113 runs/s, max= 223.048327138 runs/s
9817
9818 RESULT Bindings: node-list-access= 221.431121677 runs/s
9819 median= 221.538545435 runs/s, stdev= 0.608292116087 runs/s, min= 220.048899756 runs/s, max= 222.772277228 runs/s
9820
9821 RESULT Bindings: node-list-access= 219.001367135 runs/s
9822 median= 221.538545435 runs/s, stdev= 4.65773933007 runs/s, min= 209.973753281 runs/s, max= 222.496909765 runs/s
9823
9824 * Bindings/append-child.html: Added.
9825 * Bindings/create-element.html: Added.
9826 * Bindings/id-getter.html: Added.
9827 * Bindings/id-setter.html: Added.
9828 * Bindings/insert-before.html: Added.
9829 * Bindings/node-list-access.html: Added.
9830 * Bindings/undefined-id-getter.html: Added.
9831
98322012-05-18 Kentaro Hara <haraken@chromium.org>
9833
haraken@chromium.org0b3e29d2012-05-18 07:20:36 +00009834 [perf-test] Add a binding benchmark for div.setAttribute()
9835 https://bugs.webkit.org/show_bug.cgi?id=86815
9836
9837 Reviewed by Ryosuke Niwa.
9838
9839 We should remove Bindings/dom-attributes.html and instead add more
9840 reasonable micro benchmarks by classifying DOM binding call paths.
9841
9842 This patch adds a benchmark for div.setAttribute(). This benchmark
9843 covers 'setAttribute' in Dromaeo/dom-attr.html and other DOM methods
9844 that return an undefined.
9845
9846 Test results in my Linux desktop:
9847
9848 RESULT Bindings: set-attribute= 793.745073252 runs/s
9849 median= 791.589665765 runs/s, stdev= 6.00467159709 runs/s, min= 785.27607362 runs/s, max= 808.080808081 runs/s
9850
9851 RESULT Bindings: set-attribute= 790.858444164 runs/s
9852 median= 787.918921436 runs/s, stdev= 7.86264953655 runs/s, min= 780.234070221 runs/s, max= 806.04534005 runs/s
9853
9854 RESULT Bindings: set-attribute= 787.277571417 runs/s
9855 median= 784.31372549 runs/s, stdev= 7.45363346657 runs/s, min= 778.588807786 runs/s, max= 804.020100503 runs/s
9856
9857 RESULT Bindings: set-attribute= 782.401393791 runs/s
9858 median= 779.062978802 runs/s, stdev= 6.48250081621 runs/s, min= 777.642770352 runs/s, max= 796.019900498 runs/s
9859
9860 RESULT Bindings: set-attribute= 791.792516608 runs/s
9861 median= 791.556728232 runs/s, stdev= 6.49182980397 runs/s, min= 779.220779221 runs/s, max= 808.080808081 runs/s
9862
9863 * Bindings/set-attribute.html: Added.
9864
haraken@chromium.org2e9053c2012-05-17 11:37:28 +000098652012-05-17 Kentaro Hara <haraken@chromium.org>
9866
haraken@chromium.org2b393aa2012-05-18 06:49:43 +00009867 [perf-test] Add a binding benchmark for div.getAttribute()
9868 https://bugs.webkit.org/show_bug.cgi?id=86814
9869
9870 Reviewed by Ryosuke Niwa.
9871
9872 We should remove Bindings/dom-attributes.html and instead add more
9873 reasonable micro benchmarks by classifying DOM binding call paths.
9874
9875 This patch adds a benchmark for div.getAttribute(). This benchmark
9876 covers 'getAttribute' in Dromaeo/dom-attr.html, and other DOM methods
9877 that return a String.
9878
9879 Test results in my Linux desktop:
9880
9881 RESULT Bindings: get-attribute= 250.088158538 runs/s
9882 median= 250.469728765 runs/s, stdev= 4.66551901315 runs/s, min= 240.673886883 runs/s, max= 256.739409499 runs/s
9883
9884 RESULT Bindings: get-attribute= 250.209764698 runs/s
9885 median= 250.626959986 runs/s, stdev= 4.12030002477 runs/s, min= 241.254523522 runs/s, max= 255.102040816 runs/s
9886
9887 RESULT Bindings: get-attribute= 248.907532887 runs/s
9888 median= 250.312891114 runs/s, stdev= 3.23173125874 runs/s, min= 240.673886883 runs/s, max= 251.572327044 runs/s
9889
9890 RESULT Bindings: get-attribute= 250.243680844 runs/s
9891 median= 250.783797637 runs/s, stdev= 4.19327170024 runs/s, min= 240.963855422 runs/s, max= 255.102040816 runs/s
9892
9893 RESULT Bindings: get-attribute= 245.329046608 runs/s
9894 median= 244.948040416 runs/s, stdev= 2.24314248534 runs/s, min= 240.384615385 runs/s, max= 248.756218905 runs/s
9895
9896 * Bindings/get-attribute.html: Added.
9897
98982012-05-17 Kentaro Hara <haraken@chromium.org>
9899
haraken@chromium.org8f8b4bf2012-05-18 06:29:59 +00009900 [perf-test] Add a binding benchmark for getElementById()
9901 https://bugs.webkit.org/show_bug.cgi?id=86808
9902
9903 Reviewed by Ryosuke Niwa.
9904
9905 Currently Bindings/dom-attributes.html is just a collection
9906 of random DOM attributes and methods. We should remove it and
9907 instead add more reasonable micro benchmarks by classifying
9908 DOM binding call paths.
9909
9910 This patch adds a benchmark for document.getElementById(),
9911 which covers other DOM methods that return a Node Object.
9912
9913 The reason why we want to add a benchmark for document.getElementById()
9914 in spite of the fact that Dromaeo/dom-query.html is already testing
9915 document.getElementById(), is that Dromaeo/dom-query.html outputs one
9916 result for several benchmarks (i.e. getElementById().nodeType,
9917 getElementsByTagName()[0].nodeType etc), and thus we cannot observe
9918 regression of getElementById() itself. (Catching regression of
9919 getElementById() would be critical.)
9920
9921 Test results in my Linux desktop:
9922
9923 RESULT Bindings: get-element-by-id= 300.933707795 runs/s
9924 median= 302.267002519 runs/s, stdev= 3.04954648504 runs/s, min= 295.930949445 runs/s, max= 305.34351145 runs/s
9925
9926 RESULT Bindings: get-element-by-id= 302.030324483 runs/s
9927 median= 302.267481977 runs/s, stdev= 1.78518068367 runs/s, min= 298.507462687 runs/s, max= 304.568527919 runs/s
9928
9929 RESULT Bindings: get-element-by-id= 301.993483538 runs/s
9930 median= 302.648171501 runs/s, stdev= 1.87604126626 runs/s, min= 296.662546354 runs/s, max= 304.568527919 runs/s
9931
9932 RESULT Bindings: get-element-by-id= 301.936607982 runs/s
9933 median= 302.45758701 runs/s, stdev= 1.88991087072 runs/s, min= 298.879202989 runs/s, max= 304.955527319 runs/s
9934
9935 RESULT Bindings: get-element-by-id= 301.952234563 runs/s
9936 median= 302.648171501 runs/s, stdev= 1.59929752614 runs/s, min= 299.625468165 runs/s, max= 304.568527919 runs/s
9937
9938 * Bindings/get-element-by-id.html: Added.
9939
99402012-05-17 Kentaro Hara <haraken@chromium.org>
9941
haraken@chromium.orgb45119a2012-05-18 06:03:56 +00009942 [perf-test] Add a benchmark for body.scrollTop
9943 https://bugs.webkit.org/show_bug.cgi?id=86806
9944
9945 Reviewed by Ryosuke Niwa.
9946
9947 Currently Bindings/dom-attributes.html is just a collection of random
9948 DOM attributes and methods. We should remove it and instead add more
9949 reasonable micro benchmarks by classifying DOM binding call paths.
9950
9951 This patch adds a benchmark for body.scrollTop, which covers other
9952 DOM attributes that return small integers.
9953
9954 (Note: Performance optimization for the benchmark will be coming soon.)
9955
9956 Test results in my Linux desktop:
9957
9958 RESULT Bindings: scroll-top= 209.410654239 runs/s
9959 median= 211.64021164 runs/s, stdev= 4.09958741195 runs/s, min= 201.005025126 runs/s, max= 212.483399734 runs/s
9960
9961 RESULT Bindings: scroll-top= 195.651111157 runs/s
9962 median= 196.319018405 runs/s, stdev= 1.77011627406 runs/s, min= 191.846522782 runs/s, max= 197.28729963 runs/s
9963 RESULT Bindings: scroll-top= 200.004907612 runs/s
9964 median= 201.511335013 runs/s, stdev= 3.27455403827 runs/s, min= 193.236714976 runs/s, max= 202.53164557 runs/s
9965
9966 RESULT Bindings: scroll-top= 209.582737512 runs/s
9967 median= 210.803689065 runs/s, stdev= 3.16769655464 runs/s, min= 203.045685279 runs/s, max= 211.920529801 runs/s
9968
9969 RESULT Bindings: scroll-top= 199.924607687 runs/s
9970 median= 201.13144338 runs/s, stdev= 3.11080503619 runs/s, min= 193.003618818 runs/s, max= 202.02020202 runs/s
9971
9972 * Bindings/scroll-top.html: Added.
9973
99742012-05-17 Kentaro Hara <haraken@chromium.org>
9975
haraken@chromium.org6609c262012-05-17 22:04:49 +00009976 [perf-test] Add a micro benchmark for div.firstChild getter for an undefined firstChild
9977 https://bugs.webkit.org/show_bug.cgi?id=86725
9978
9979 Reviewed by Ryosuke Niwa.
9980
9981 We are going to remove Bindings/dom-attributes.html and instead add more
9982 reasonable micro benchmarks by classifying DOM binding call paths.
9983
9984 In this bug, we add a micro benchmark for div.firstChild getter for an
9985 undefined firstChild. This benchmark covers other undefined DOM attributes
9986 that return a null.
9987
9988 (Note: In V8, div.firstChild for an undefined firstChild is currently slower
9989 than div.firstChild for a defined firstChild.)
9990
9991 Test results in my Linux desktop:
9992
9993 RESULT Bindings: undefined-first-child= 541.408311042 runs/s
9994 median= 541.205412054 runs/s, stdev= 1.29841219187 runs/s, min= 537.897310513 runs/s, max= 543.209876543 runs/s
9995
9996 RESULT Bindings: undefined-first-child= 541.00750695 runs/s
9997 median= 540.540540541 runs/s, stdev= 0.967521230965 runs/s, min= 539.215686275 runs/s, max= 543.209876543 runs/s
9998
9999 RESULT Bindings: undefined-first-child= 523.630714897 runs/s
10000 median= 523.560209424 runs/s, stdev= 1.01570919645 runs/s, min= 522.193211488 runs/s, max= 525.624178712 runs/s
10001
10002 RESULT Bindings: undefined-first-child= 553.077663588 runs/s
10003 median= 553.459119497 runs/s, stdev= 0.805697397863 runs/s, min= 551.378446115 runs/s, max= 554.156171285 runs/s
10004
10005 RESULT Bindings: undefined-first-child= 541.5401432 runs/s
10006 median= 541.538666618 runs/s, stdev= 0.954301364767 runs/s, min= 539.877300613 runs/s, max= 543.209876543 runs/s
10007
10008 * Bindings/undefined-first-child.html: Added.
10009
100102012-05-17 Kentaro Hara <haraken@chromium.org>
10011
haraken@chromium.org2e9053c2012-05-17 11:37:28 +000010012 [Performance test] Add a micro benchmark for div.firstChild getter
10013 https://bugs.webkit.org/show_bug.cgi?id=86582
10014
10015 Reviewed by Ryosuke Niwa.
10016
10017 We are going to remove Bindings/dom-attributes.html and instead add more
10018 reasonable micro benchmarks by classifying DOM binding call paths.
10019
10020 In this bug, we add a micro benchmark for div.firstChild getter.
10021 This benchmark covers 'firstChild', 'lastChild', 'nextSibling' and
10022 'previousSibling' in Dromaeo/dom-traverse.html, and other DOM attributes
10023 that return a Node object.
10024
10025 Multiple test results in my Linux desktop:
10026
10027 RESULT Bindings: first-child= 798.157160346 runs/s
10028 median= 798.004987531 runs/s, stdev= 1.52006063407 runs/s, min= 796.019900498 runs/s, max= 801.001251564 runs/s
10029 RESULT Bindings: first-child= 797.603608554 runs/s
10030 median= 797.872340426 runs/s, stdev= 2.2522621261 runs/s, min= 791.556728232 runs/s, max= 801.001251564 runs/s
10031 RESULT Bindings: first-child= 798.656295468 runs/s
10032 median= 798.004987531 runs/s, stdev= 1.79367478063 runs/s, min= 797.01120797 runs/s, max= 803.011292346 runs/s
10033 RESULT Bindings: first-child= 797.812784267 runs/s
10034 median= 798.004987531 runs/s, stdev= 2.31766523191 runs/s, min= 791.100123609 runs/s, max= 802.005012531 runs/s
10035 RESULT Bindings: first-child= 797.963311597 runs/s
10036 median= 798.004987531 runs/s, stdev= 2.53014907337 runs/s, min= 789.14919852 runs/s, max= 801.001251564 runs/s
10037
10038 * Bindings/first-child.html: Added.
10039
haraken@chromium.org67ad6ec2012-05-17 05:16:14 +0000100402012-05-16 Kentaro Hara <haraken@chromium.org>
10041
10042 [Performance test] Support "description" for PerfTestRunner.run and PerfTestRunner.runPerSecond
10043 https://bugs.webkit.org/show_bug.cgi?id=86696
10044
10045 Reviewed by Ryosuke Niwa.
10046
10047 We want to add some description for each PerfTestRunner.run and
10048 PerfTestRunner.runPerSecond, so that people can know what each
10049 run is testing.
10050
10051 Output example:
10052
10053 $ ./Tools/Scripts/run-perf-tests Bindings/first-child.html
10054 Running Bindings/first-child.html (1 of 1)
10055 DESCRIPTION: Benchmark for DOM attributes that return a Node object.
10056 RESULT Bindings: first-child= 788.359076534 runs/s
10057 median= 797.508097751 runs/s, stdev= 19.0972905207 runs/s, min= 746.666666667 runs/s, max= 801.001251564 runs/s
10058
10059 * resources/runner.js:
10060 (PerfTestRunner.logStatistics):
10061 (PerfTestRunner.printStatistics):
10062 (PerfTestRunner.runPerSecond):
10063
yurys@chromium.org0b0e62f2012-05-16 08:57:17 +0000100642012-05-16 Yury Semikhatsky <yurys@chromium.org>
10065
10066 Unreviewed. Fix heap profiler performance test after r117234.
10067
10068 * inspector/heap-snapshot.html:
10069
rniwa@webkit.org085ec822012-05-14 21:19:51 +0000100702012-05-14 Ryosuke Niwa <rniwa@webkit.org>
10071
10072 Convert CSS and Parser tests to runs/s tests
10073 https://bugs.webkit.org/show_bug.cgi?id=86399
10074
10075 Reviewed by Ojan Vafai.
10076
10077 Use runPerSecond instead of run to measure results in function calls per second (run/s) instead of time (ms).
10078 This allows us to continue measuring performance reliably even when WebKit's performance improves and results
10079 become too small for Date.now()'s precision (around 15 ms).
10080
10081 It should also reduce perf. bots cycle time for slower tests because we limit the number of function calls by time.
10082
10083 * CSS/CSSPropertySetterGetter.html:
10084 * CSS/CSSPropertyUpdateValue.html:
10085 * Parser/css-parser-yui.html:
10086 * Parser/simple-url.html:
10087 * Parser/tiny-innerHTML.html:
10088 * Parser/url-parser.html:
10089 * Parser/xml-parser.html:
10090
mitz@apple.com37c64ad2012-05-14 20:16:32 +0000100912012-05-14 Dan Bernstein <mitz@apple.com>
10092
10093 Add a line layout performance test
10094 https://bugs.webkit.org/show_bug.cgi?id=86216
10095
10096 Reviewed by Ryosuke Niwa.
10097
10098 * Layout/line-layout.html: Added.
10099
tony@chromium.org6d45c582012-05-14 19:28:47 +0000101002012-05-14 Tony Chang <tony@chromium.org>
10101
10102 Don't append log lines while perf tests are running.
10103 https://bugs.webkit.org/show_bug.cgi?id=86028
10104
10105 Reviewed by Ryosuke Niwa.
10106
10107 In some tests, the extra DOM nodes can cause the test timing to change.
10108 Avoid adding DOM nodes until the test is over. When running in a browser,
10109 we append nodes as we run so the user can have some feedback.
10110
10111 * resources/runner.js:
10112 (PerfTestRunner.log): Store the log lines in an array until the test is finished.
10113
rniwa@webkit.org90d5fd12012-05-14 18:59:03 +0000101142012-05-14 Ryosuke Niwa <rniwa@webkit.org>
10115
10116 Build fix. Don't adjust calls per iteration in the second run.
10117
10118 * resources/runner.js:
10119 (PerfTestRunner._perSecondRunner):
10120
rniwa@webkit.org1e6be682012-05-14 05:23:37 +0000101212012-05-13 Ryosuke Niwa <rniwa@webkit.org>
10122
10123 performance tests should be able to measure runs/sec rather than time
10124 https://bugs.webkit.org/show_bug.cgi?id=86021
10125
10126 Reviewed by Ojan Vafai.
10127
10128 Add PerfTestRunner.runPerSecond. It uses _runLoop but replaces _runner by _perSecondRunner
10129 to compute runs/s of runFunction.
10130
10131 When _perSecondRunner is called for the first time, i.e. _completedRuns is 0 (notice this is -1
10132 in regular run/_runner), it slowly increases the number of function calls to runFunction between
10133 time measurements in order to discount the time used by new Date() calls themselves until the
10134 total time spent reaches 100 milliseconds.
10135
10136 By default, runPerSecond runs the test for at least 750 milliseconds in each run, and executes
10137 21 runs, yielding the total run time of roughly 18 seconds. This is significantly faster than
10138 most of existing performance tests. Also see http://ejohn.org/blog/accuracy-of-javascript-time/.
10139
10140 Finally, refactored the existing methods of PerfTestRunner to allow "runs/s" unit and share code.
10141
10142 * Layout/flexbox-column-nowrap.html:
10143 * Layout/flexbox-column-wrap.html:
10144 * Layout/flexbox-row-nowrap.html:
10145 * Layout/flexbox-row-wrap.html:
10146 * resources/runner.js:
10147 (PerfTestRunner.computeStatistics): Takes unit.
10148 (PerfTestRunner.logStatistics): Ditto.
10149 (PerfTestRunner._runLoop):
10150 (PerfTestRunner._runner):
10151 (PerfTestRunner.runPerSecond): Added.
10152 (PerfTestRunner._perSecondRunner): Added. Called by _runLoop.
10153 (PerfTestRunner._perSecondRunnerIterator): Added.
10154
tony@chromium.orgb4056342012-05-09 22:45:20 +0000101552012-05-09 Tony Chang <tony@chromium.org>
10156
10157 add some basic perf-o-matic tests for flexbox
10158 https://bugs.webkit.org/show_bug.cgi?id=86017
10159
10160 Reviewed by Ryosuke Niwa.
10161
10162 Each of these tests take < 3s on my machine.
10163
10164 * Layout/flexbox-column-nowrap.html: Added.
10165 * Layout/flexbox-column-wrap.html: Added.
10166 * Layout/flexbox-row-nowrap.html: Added.
10167 * Layout/flexbox-row-wrap.html: Added.
10168
loislo@chromium.org5481ea42012-05-05 17:05:00 +0000101692012-05-05 Ilya Tikhonovsky <loislo@chromium.org>
10170
10171 Web Inspector: unreviewed followup fix for the performance test after r116218.
10172
10173 * inspector/heap-snapshot.html:
10174
tomz@codeaurora.orga0df5da2012-05-03 06:43:58 +0000101752012-05-02 Tom Zakrajsek <tomz@codeaurora.org>
10176
10177 Need tests for PerfTestRunner.computeStatistics
10178 https://bugs.webkit.org/show_bug.cgi?id=85410
10179
10180 Reviewed by Ryosuke Niwa.
10181
10182 * resources/runner.js:
10183
commit-queue@webkit.org33343bf2012-05-03 00:29:26 +0000101842012-05-02 Sheriff Bot <webkit.review.bot@gmail.com>
10185
10186 Unreviewed, rolling out r115905.
10187 http://trac.webkit.org/changeset/115905
10188 https://bugs.webkit.org/show_bug.cgi?id=85435
10189
10190 New computeStatistics test is failing on chromium ports
10191 (Requested by tomz on #webkit).
10192
10193 * resources/runner.js:
10194
tomz@codeaurora.orgc4bcb032012-05-02 23:08:48 +0000101952012-05-02 Tom Zakrajsek <tomz@codeaurora.org>
10196
10197 Need tests for PerfTestRunner.computeStatistics
10198 https://bugs.webkit.org/show_bug.cgi?id=85410
10199
10200 Reviewed by Ryosuke Niwa.
10201
10202 * resources/runner.js:
10203
tomz@codeaurora.orgc43aab32012-04-29 18:22:22 +0000102042012-04-29 Tom Zakrajsek <tomz@codeaurora.org>
10205
10206 PerfTestRunner.computeStatistics incorrectly calculates min, max and median
10207 https://bugs.webkit.org/show_bug.cgi?id=85111
10208
10209 Reviewed by Ryosuke Niwa.
10210
10211 The sort of the data input was being done alphabetically.
10212 So I provided a numeric compare function.
10213
10214 * resources/runner.js:
10215
loislo@chromium.org57d7cab2012-04-17 13:35:32 +0000102162012-04-17 Ilya Tikhonovsky <loislo@chromium.org>
10217
10218 Web Inspector: the fix for test after massive rename in r114271.
10219 https://bugs.webkit.org/show_bug.cgi?id=84147
10220
10221 Drive by fix. The test was renamed to heap-snapshot.html
10222
10223 Reviewed by Yury Semikhatsky.
10224
10225 * inspector/heap-snapshot.html: Renamed from PerformanceTests/inspector/detailed-heapshots-smoke-test.html.
10226
yurys@chromium.orgba710852012-04-16 17:23:18 +0000102272012-04-16 Yury Semikhatsky <yurys@chromium.org>
10228
10229 Web Inspector: rename heap profiler files and classes DetailedHeapshot* ->HeapSnapshot*
10230 https://bugs.webkit.org/show_bug.cgi?id=84038
10231
10232 A bunch of renames "detailed heapshot" -> "heap snapshot".
10233
10234 Reviewed by Pavel Feldman.
10235
10236 * inspector/detailed-heapshots-smoke-test.html:
10237
rniwa@webkit.org7dfcb2f2012-04-13 22:05:16 +0000102382012-04-13 Ryosuke Niwa <rniwa@webkit.org>
10239
10240 Fix skipped list.
10241
10242 * Skipped:
10243
rniwa@webkit.orga51c0b72012-04-13 18:16:26 +0000102442012-04-12 Ryosuke Niwa <rniwa@webkit.org>
10245
10246 Enable SVG page loading performance tests
10247 https://bugs.webkit.org/show_bug.cgi?id=83861
10248
10249 Reviewed by Adam Barth.
10250
10251 Unskip PageLoad directory and skip tests that load too fast (less than 100ms) and are unstable,
10252 and the ones that take too long to load (more than 20s).
10253
10254 * Skipped:
10255
loislo@chromium.orge6656fe2012-04-04 15:49:59 +0000102562012-04-04 Ilya Tikhonovsky <loislo@chromium.org>
10257
loislo@chromium.orge882f882012-04-04 16:38:12 +000010258 Web Inspector: Unreviewed. temporary disable broken inspector tests.
10259
10260 * inspector/first-open-scripts.html.broken: Renamed from PerformanceTests/inspector/first-open-scripts.html.
10261 * inspector/network-append-30-requests.html.broken: Renamed from PerformanceTests/inspector/network-append-30-requests.html.
10262 * inspector/show-panel.html.broken: Renamed from PerformanceTests/inspector/show-panel.html.
10263
102642012-04-04 Ilya Tikhonovsky <loislo@chromium.org>
10265
loislo@chromium.orge6656fe2012-04-04 15:49:59 +000010266 Web Inspector: linearise aggregate's retaining size calculation.
10267 https://bugs.webkit.org/show_bug.cgi?id=83125
10268
10269 This version is twice as fast as the original and it is non-recursive.
10270
10271 Reviewed by Yury Semikhatsky.
10272
10273 * inspector/detailed-heapshots-smoke-test.html:
10274
commit-queue@webkit.org66f25592012-03-30 17:17:03 +0000102752012-03-30 David Barr <davidbarr@chromium.org>
10276
10277 Split up top-level .gitignore and .gitattributes
10278 https://bugs.webkit.org/show_bug.cgi?id=82687
10279
10280 Reviewed by Tor Arne Vestbø.
10281
10282 * .gitattributes: Added.
10283
yurys@chromium.org418589692012-03-29 12:38:43 +0000102842012-03-28 Yury Semikhatsky <yurys@chromium.org>
10285
10286 Web Inspector: switch heap profiler front-end to separate storage of nodes and edges
10287 https://bugs.webkit.org/show_bug.cgi?id=82453
10288
10289 Updated heap profiler performance test after heap profiler front-end
10290 changes.
10291
10292 Reviewed by Pavel Feldman.
10293
10294 * inspector/detailed-heapshots-smoke-test.html:
10295
alexis.menard@openbossa.org68782992012-03-27 11:57:05 +0000102962012-03-27 Alexis Menard <alexis.menard@openbossa.org>
10297
10298 Add a perf test which updates the value of an already declared CSS property.
10299 https://bugs.webkit.org/show_bug.cgi?id=82321
10300
10301 Reviewed by Andreas Kling.
10302
10303 This benchmark update CSS existing properties of the style from JS.
10304
10305 * CSS/CSSPropertyUpdateValue.html: Added.
10306
haraken@chromium.org81f88712012-03-16 03:13:28 +0000103072012-03-15 Kentaro Hara <haraken@chromium.org>
10308
10309 [PerformanceTests] run-perf-tests should output correct units
10310 https://bugs.webkit.org/show_bug.cgi?id=78303
10311
10312 Reviewed by Ryosuke Niwa.
10313
10314 Previously run-perf-tests just supported "ms" for units.
10315 Consequently, Dromaeo perf tests had been reporting runs/s as "ms".
10316 This patch fixes run-perf-tests so that they can support custom units.
10317 The default unit is "ms".
10318
10319 The test result looks like this:
10320
10321 $ ./Tools/Scripts/run-perf-tests Dromaeo/dom-attr.html
10322 RESULT Dromaeo: dom-attr= 6465.9525483 runs/s
10323 median= 0.0 runs/s, stdev= 24.2983433436 runs/s, min= 6435.87649402 runs/s, max= 6515.63693392 runs/s
10324
10325 * Dromaeo/resources/dromaeorunner.js:
10326 (.):
10327 * resources/runner.js:
10328 (PerfTestRunner.computeStatistics):
10329 (PerfTestRunner.printStatistics):
10330
alexis.menard@openbossa.orgefde52b2012-03-15 18:24:01 +0000103312012-03-15 Alexis Menard <alexis.menard@openbossa.org>
10332
10333 Fix the test failing with run-perf-tests.
10334
10335 Rubber stamped by Ryosuke Niwa.
10336
10337 * CSS/CSSPropertySetterGetter.html:
10338
alexis.menard@openbossa.org913fb1b2012-03-15 08:57:19 +0000103392012-03-14 Alexis Menard <alexis.menard@openbossa.org>
10340
10341 Add a new perf test to benchmark setting and reading CSS properties from JS.
10342 https://bugs.webkit.org/show_bug.cgi?id=81155
10343
10344 Reviewed by Ryosuke Niwa.
10345
10346 This benchmark read and set CSS properties from JS. It contains a list
10347 of common CSS properties.
10348
10349 * CSS/CSSPropertySetterGetter.html: Added.
10350
achicu@adobe.com60c7bd12012-03-15 01:07:27 +0000103512012-03-14 Alexandru Chiculita <achicu@adobe.com>
10352
10353 Layout/floats.html should be runnable by run-perf-tests
10354 https://bugs.webkit.org/show_bug.cgi?id=77051
10355
10356 Reviewed by Ryosuke Niwa.
10357
10358 I've split Layout/floats.html into multiple tests for each button in the original manual test.
10359 Some tests take longer to run and I've changed the number of iterations, so that each tests finishes under 30s per run.
10360
10361 * DOM/resources/dom-perf.js:
10362 * Layout/floats.html: Removed.
10363 * Layout/floats_100_100.html: Added.
10364 * Layout/floats_100_100_nested.html: Added.
10365 * Layout/floats_20_100.html: Added.
10366 * Layout/floats_20_100_nested.html: Added.
10367 * Layout/floats_2_100.html: Added.
10368 * Layout/floats_2_100_nested.html: Added.
10369 * Layout/floats_50_100.html: Added.
10370 * Layout/floats_50_100_nested.html: Added.
10371 * Layout/resources/floats.css: Added.
10372 (.container):
10373 (.float):
10374 (.big):
10375 (.float-end):
10376 * Layout/resources/floats.js: Added.
10377 (.):
10378 * Skipped:
10379 * resources/runner.js:
10380 (PerfTestRunner.resetRandomSeed):
10381 (PerfTestRunner.random):
10382 (Math.random):
10383 Moved the Math.random to runner.js to be used by all tests.
10384 Added resetRandomSeed to bring the randomizer back to initial seed.
10385 It is useful to get the same results at every run and minimize the
10386 differences between runs.
10387
commit-queue@webkit.orgf26b3de2012-03-14 21:04:37 +0000103882012-03-14 Sheriff Bot <webkit.review.bot@gmail.com>
10389
10390 Unreviewed, rolling out r110559.
10391 http://trac.webkit.org/changeset/110559
10392 https://bugs.webkit.org/show_bug.cgi?id=81142
10393
10394 Broke Dromaeo tests (Requested by rniwa on #webkit).
10395
10396 * Dromaeo/resources/dromaeorunner.js:
10397 (.):
10398
haraken@chromium.org4b745ba2012-03-13 14:09:46 +0000103992012-03-13 Kentaro Hara <haraken@chromium.org>
10400
10401 Dromaeo perf-tests results are wrong
10402 https://bugs.webkit.org/show_bug.cgi?id=80974
10403
10404 Reviewed by Hajime Morita.
10405
10406 Dromaeo perf-tests had reported the sum of runs/seconds as "ms".
10407 This patch fixes them to report the execution time per run.
10408
10409 At present, they report "0.0ms" for "stdev". This is because
10410 dromaeorunner.js can just know stdev of "runs/seconds"
10411 and cannot calculate stdev of "ms" from that. We can fix it later.
10412
10413 * Dromaeo/resources/dromaeorunner.js:
10414 (.):
10415
loislo@chromium.org80d2b6b2012-03-12 12:31:41 +0000104162012-03-12 Ilya Tikhonovsky <loislo@chromium.org>
10417
10418 Web Inspector: chromium: increase heap snapshot performance coverage.
10419 https://bugs.webkit.org/show_bug.cgi?id=80829
10420
10421 Reviewed by Yury Semikhatsky.
10422
10423 * inspector/detailed-heapshots-smoke-test.html:
10424 * inspector/performance-test.js:
10425 (initialize_TimeTracker.InspectorTest.measureFunction):
10426
haraken@chromium.orgada071d2012-03-07 04:56:37 +0000104272012-03-06 Kentaro Hara <haraken@chromium.org>
10428
10429 [Perf tests] Reduce the number of loops in dom-attributes.html
10430 https://bugs.webkit.org/show_bug.cgi?id=80077
10431
10432 Reviewed by Ryosuke Niwa.
10433
10434 dom-attributes.html takes 100~ seconds in the perf bots. This patch reduces
10435 the time by reducing the number of loops.
10436
10437 This is just a temporary fix. After more detailed investigation, I will reduce
10438 the number of tests in dom-attributes.html, and revert back the number of loops
10439 to guarantee the reliability of the perf test results.
10440
10441 * Bindings/dom-attributes.html:
10442
loislo@chromium.orgcadcd652012-03-06 13:41:21 +0000104432012-03-06 Ilya Tikhonovsky <loislo@chromium.org>
10444
10445 Web Inspector: Heap Snapshot test: split overal time metric into separate metrics.
10446 https://bugs.webkit.org/show_bug.cgi?id=80409
10447
10448 Reviewed by Yury Semikhatsky.
10449
10450 * inspector/detailed-heapshots-smoke-test.html:
10451
loislo@chromium.orgf1cd2462012-03-05 15:24:45 +0000104522012-03-05 Ilya Tikhonovsky <loislo@chromium.org>
10453
10454 Web Inspector: [chromium] introduce HeapSnapshot performance test.
10455 https://bugs.webkit.org/show_bug.cgi?id=80280
10456
10457 Reviewed by Pavel Feldman.
10458
10459 * inspector/detailed-heapshots-smoke-test.html: Added.
10460
rniwa@webkit.orgd625fdf2012-03-02 22:25:27 +0000104612012-03-01 Ryosuke Niwa <rniwa@webkit.org>
10462
10463 DOM tests take too long to run
10464 https://bugs.webkit.org/show_bug.cgi?id=80082
10465
10466 Reviewed by Eric Seidel.
10467
10468 Reduce benchmark.timeToRun from 500ms to 100ms. Doesn't seem to affect test results much
10469 (except DOM/DOMTable.html) but significantly reduces the runtime of tests.
10470
10471 * DOM/resources/dom-perf.js:
10472 (BenchmarkSuite.prototype.RunSingle):
10473
haraken@chromium.org43a93dc2012-02-27 01:48:01 +0000104742012-02-26 Kentaro Hara <haraken@chromium.org>
10475
10476 [Performance Tests] [Chromium] Bindings/dom-attributes.html is timing out
10477 https://bugs.webkit.org/show_bug.cgi?id=79593
10478
10479 Reviewed by Adam Barth.
10480
10481 This patch halves the execution time of Bindings/dom-attributes.html
10482 in order to avoid timeout in Chromium. The reason for the timeout is that
10483 V8 DOM bindings are too much slower than JSC bindings.
10484 I am a bit afraid that this patch will reduce the accuracy of the
10485 perf test results, but it would make sense to reduce the execution time
10486 until we fix the performance issue in V8 DOM bindings.
10487
10488 * Bindings/dom-attributes.html:
10489
rniwa@webkit.org7281a122012-02-24 22:15:49 +0000104902012-02-24 Ryosuke Niwa <rniwa@webkit.org>
10491
10492 Rename dom*_*attributes.html to dom*-*attributes.html to follow the WebKit convention.
10493
10494 * Bindings/dom-attributes.html: Copied from PerformanceTests/Bindings/dom_attributes.html.
10495 * Bindings/dom_attributes.html: Removed.
10496
haraken@chromium.org0b2c2752012-02-24 08:55:59 +0000104972012-02-24 Kentaro Hara <haraken@chromium.org>
10498
haraken@chromium.org357cc952012-02-24 14:03:28 +000010499 Unreviewed, rolling out r108477.
10500 http://trac.webkit.org/changeset/108477
10501 https://bugs.webkit.org/show_bug.cgi?id=79209
10502
10503 The perf tests committed in r108748 covers the perf tests
10504 committed in r108477. So I'll roll out r108477.
10505
10506 * Bindings/dom_attributes_id_getter.html: Removed.
10507 * Bindings/dom_attributes_id_setter.html: Removed.
10508 * Bindings/resources/dom_attributes_common.js: Removed.
10509
105102012-02-24 Kentaro Hara <haraken@chromium.org>
10511
haraken@chromium.org0b2c2752012-02-24 08:55:59 +000010512 Add performance tests for DOM attribute getters and setters
10513 https://bugs.webkit.org/show_bug.cgi?id=79208
10514
10515 Reviewed by Ryosuke Niwa.
10516
10517 This patch adds performance micro-benchmarks for DOM attribute
10518 getters and setters. We selected DOM attributes from HTMLElement,
10519 Element and Node which will most impact on the DOM performance
10520 in the real Web and which have different call-paths from another
10521 DOM attribute.
10522
10523 The perf test result in my local Chromium/Linux environment is as follows:
10524 median= 14967.0 ms, stdev= 85.2385476178 ms, min= 14861.0 ms, max= 15155.0 ms
10525
10526 If we run the test with DumpRenderTree, we can get the following test results:
10527 Info: [HTMLElement.id] avg=65.76ms, median=65.00ms, stdev=2.14ms, min=63, max=70
10528 Info: [HTMLElement.title] avg=64.05ms, median=63.00ms, stdev=1.50ms, min=63, max=67
10529 Info: [HTMLElement.lang] avg=64.19ms, median=63.00ms, stdev=1.82ms, min=62, max=67
10530 Info: [HTMLElement.dir] avg=64.10ms, median=63.00ms, stdev=1.72ms, min=62, max=68
10531 Info: [HTMLElement.className] avg=63.33ms, median=63.00ms, stdev=0.89ms, min=63, max=67
10532 Info: [HTMLElement.classList] avg=1946.00ms, median=1945.00ms, stdev=38.22ms, min=1921, max=2110
10533 Info: [HTMLElement.tabIndex] avg=83.52ms, median=80.00ms, stdev=6.00ms, min=79, max=94
10534 Info: [HTMLElement.draggable] avg=78.14ms, median=81.00ms, stdev=3.51ms, min=74, max=82
10535 Info: [HTMLElement.webkitdropzone] avg=64.33ms, median=63.00ms, stdev=1.98ms, min=63, max=68
10536 Info: [HTMLElement.hidden] avg=65.57ms, median=64.00ms, stdev=3.27ms, min=63, max=71
10537 Info: [HTMLElement.accessKey] avg=64.43ms, median=63.00ms, stdev=2.11ms, min=62, max=68
10538 Info: [HTMLElement.children] avg=130.76ms, median=128.00ms, stdev=9.75ms, min=109, max=143
10539 Info: [HTMLElement.isContentEditable] avg=74.29ms, median=75.00ms, stdev=2.00ms, min=71, max=77
10540 Info: [HTMLElement.spellcheck] avg=79.52ms, median=80.00ms, stdev=2.52ms, min=76, max=82
10541 Info: [HTMLElement.innerHTML] avg=279.05ms, median=279.00ms, stdev=1.96ms, min=276, max=283
10542 Info: [HTMLElement.innerText] avg=204.14ms, median=203.00ms, stdev=2.95ms, min=200, max=210
10543 Info: [HTMLElement.outerHTML] avg=1544.10ms, median=1546.00ms, stdev=15.56ms, min=1514, max=1568
10544 Info: [HTMLElement.outerText] avg=216.05ms, median=207.00ms, stdev=18.19ms, min=201, max=247
10545 Info: [HTMLElement.contentEditable] avg=334.24ms, median=323.00ms, stdev=36.06ms, min=318, max=446
10546 Info: [HTMLElement.id="foo"] avg=53.19ms, median=53.00ms, stdev=1.76ms, min=52, max=58
10547 Info: [HTMLElement.title="foo"] avg=63.14ms, median=63.00ms, stdev=0.35ms, min=63, max=64
10548 Info: [HTMLElement.lang="foo"] avg=60.86ms, median=61.00ms, stdev=0.56ms, min=60, max=62
10549 Info: [HTMLElement.dir="foo"] avg=53.57ms, median=54.00ms, stdev=0.58ms, min=53, max=55
10550 Info: [HTMLElement.className="foo"] avg=64.52ms, median=64.00ms, stdev=0.91ms, min=63, max=66
10551 Info: [HTMLElement.tabIndex="foo"] avg=367.86ms, median=369.00ms, stdev=8.06ms, min=352, max=380
10552 Info: [HTMLElement.draggable="foo"] avg=79.43ms, median=79.00ms, stdev=0.58ms, min=79, max=81
10553 Info: [HTMLElement.webkitdropzone="foo"] avg=62.14ms, median=62.00ms, stdev=0.35ms, min=62, max=63
10554 Info: [HTMLElement.hidden="foo"] avg=61.67ms, median=62.00ms, stdev=0.71ms, min=61, max=64
10555 Info: [HTMLElement.accessKey="foo"] avg=61.86ms, median=62.00ms, stdev=0.56ms, min=61, max=63
10556 Info: [HTMLElement.spellcheck="foo"] avg=79.57ms, median=80.00ms, stdev=0.58ms, min=78, max=80
10557 Info: [HTMLElement.innerHTML="foo"] avg=1176.67ms, median=1169.00ms, stdev=26.60ms, min=1146, max=1246
10558 Info: [HTMLElement.innerText="foo"] avg=51.62ms, median=52.00ms, stdev=0.72ms, min=50, max=53
10559 Info: [Element.tagName] avg=79.52ms, median=80.00ms, stdev=1.05ms, min=78, max=81
10560 Info: [Element.style] avg=126.19ms, median=126.00ms, stdev=10.40ms, min=104, max=161
10561 Info: [Element.offsetLeft] avg=98.95ms, median=104.00ms, stdev=4.01ms, min=100, max=99
10562 Info: [Element.clientLeft] avg=98.33ms, median=102.00ms, stdev=2.59ms, min=100, max=99
10563 Info: [Element.scrollLeft] avg=103.29ms, median=96.00ms, stdev=15.63ms, min=100, max=97
10564 Info: [Element.dataset] avg=2448.62ms, median=2441.00ms, stdev=20.43ms, min=2426, max=2503
10565 Info: [Element.firstElementChild] avg=58.71ms, median=58.00ms, stdev=2.37ms, min=57, max=65
10566 Info: [Element.lastElementChild] avg=56.33ms, median=55.00ms, stdev=1.83ms, min=54, max=59
10567 Info: [Element.previousElementSibling] avg=52.95ms, median=52.00ms, stdev=1.70ms, min=52, max=57
10568 Info: [Element.nextElementSibling] avg=58.48ms, median=58.00ms, stdev=1.79ms, min=57, max=63
10569 Info: [Element.childElementCount] avg=64.57ms, median=64.00ms, stdev=1.81ms, min=63, max=71
10570 Info: [Element.onload] avg=98.38ms, median=98.00ms, stdev=0.49ms, min=98, max=99
10571 Info: [Element.scrollLeft="foo"] avg=95.24ms, median=95.00ms, stdev=0.92ms, min=94, max=98
10572 Info: [Element.onload="foo"] avg=67.14ms, median=67.00ms, stdev=0.56ms, min=66, max=68
10573 Info: [Node.nodeName] avg=76.29ms, median=76.00ms, stdev=0.63ms, min=75, max=77
10574 Info: [Node.nodeType] avg=53.05ms, median=52.00ms, stdev=2.61ms, min=52, max=61
10575 Info: [Node.parentNode] avg=53.52ms, median=53.00ms, stdev=1.22ms, min=52, max=56
10576 Info: [Node.childNodes] avg=118.33ms, median=123.00ms, stdev=8.85ms, min=107, max=129
10577 Info: [Node.firstChild] avg=53.62ms, median=53.00ms, stdev=1.13ms, min=51, max=55
10578 Info: [Node.lastChild] avg=53.14ms, median=53.00ms, stdev=1.21ms, min=52, max=55
10579 Info: [Node.previousSibling] avg=51.86ms, median=51.00ms, stdev=1.55ms, min=50, max=54
10580 Info: [Node.nextSibling] avg=52.86ms, median=54.00ms, stdev=1.81ms, min=50, max=55
10581 Info: [Node.attributes] avg=2027.71ms, median=2026.00ms, stdev=10.48ms, min=2010, max=2051
10582 Info: [Node.ownerDocument] avg=152.14ms, median=152.00ms, stdev=1.73ms, min=149, max=155
10583 Info: [Node.namespaceURI] avg=60.86ms, median=59.00ms, stdev=3.85ms, min=56, max=66
10584 Info: [Node.localName] avg=60.00ms, median=59.00ms, stdev=2.71ms, min=57, max=66
10585 Info: [Node.baseURI] avg=671.10ms, median=668.00ms, stdev=10.66ms, min=659, max=706
10586 Info: [Node.parentElement] avg=55.05ms, median=56.00ms, stdev=2.15ms, min=52, max=58
10587 Info: [Node.nodeValue] avg=61.24ms, median=60.00ms, stdev=2.56ms, min=59, max=68
10588 Info: [Node.prefix] avg=60.90ms, median=58.00ms, stdev=4.26ms, min=57, max=68
10589 Info: [Node.textContent] avg=149.71ms, median=149.00ms, stdev=1.12ms, min=148, max=152
10590 Info: [Node.nodeValue="foo"] avg=23.62ms, median=23.00ms, stdev=0.72ms, min=23, max=25
10591 Info: [Node.prefix="foo"] avg=49.57ms, median=49.00ms, stdev=0.73ms, min=49, max=51
10592 Info: [Node.textContent="foo"] avg=145.81ms, median=140.00ms, stdev=17.43ms, min=138, max=199
10593
10594 * Bindings/dom_attributes.html: Added.
10595 * resources/runner.js:
10596 (PerfTestRunner.info):
10597
haraken@chromium.org3902e732012-02-22 11:21:01 +0000105982012-02-22 Kentaro Hara <haraken@chromium.org>
10599
10600 Add performance tests for the Element.id getter and setter
10601 https://bugs.webkit.org/show_bug.cgi?id=79209
10602
10603 Reviewed by Adam Barth.
10604
10605 This patch adds performance tests for the Element.id getter and setter.
10606
10607 The results of 10 runs in my local Chromium/Linux are as follows:
10608
10609 dom_attributes_id_getter.html:
10610 median= 92.0 ms, stdev= 1.65151445649 ms, min= 89.0 ms, max= 96.0 ms
10611 median= 87.5 ms, stdev= 1.84390889146 ms, min= 85.0 ms, max= 92.0 ms
10612 median= 94.0 ms, stdev= 1.46543508898 ms, min= 90.0 ms, max= 95.0 ms
10613 median= 86.0 ms, stdev= 1.66958078571 ms, min= 84.0 ms, max= 91.0 ms
10614 median= 94.0 ms, stdev= 2.25610283454 ms, min= 103.0 ms, max= 98.0 ms
10615 median= 86.0 ms, stdev= 1.49666295471 ms, min= 84.0 ms, max= 91.0 ms
10616 median= 86.0 ms, stdev= 1.5321553446 ms, min= 84.0 ms, max= 90.0 ms
10617 median= 86.0 ms, stdev= 2.20227155455 ms, min= 84.0 ms, max= 94.0 ms
10618 median= 96.0 ms, stdev= 1.74570902501 ms, min= 101.0 ms, max= 99.0 ms
10619 median= 86.0 ms, stdev= 1.63935963108 ms, min= 84.0 ms, max= 90.0 ms
10620 median= 94.0 ms, stdev= 1.49248115566 ms, min= 90.0 ms, max= 95.0 ms
10621 median= 88.0 ms, stdev= 5.20192272146 ms, min= 84.0 ms, max= 98.0 ms
10622 median= 86.0 ms, stdev= 1.41067359797 ms, min= 84.0 ms, max= 89.0 ms
10623 median= 86.0 ms, stdev= 1.48660687473 ms, min= 84.0 ms, max= 89.0 ms
10624 median= 94.0 ms, stdev= 1.58113883008 ms, min= 93.0 ms, max= 97.0 ms
10625 median= 86.0 ms, stdev= 1.95959179423 ms, min= 84.0 ms, max= 93.0 ms
10626 median= 86.0 ms, stdev= 1.8547236991 ms, min= 84.0 ms, max= 92.0 ms
10627 median= 86.0 ms, stdev= 1.39283882772 ms, min= 84.0 ms, max= 89.0 ms
10628 median= 88.0 ms, stdev= 1.48660687473 ms, min= 85.0 ms, max= 90.0 ms
10629 median= 86.5 ms, stdev= 2.3 ms, min= 84.0 ms, max= 93.0 ms
10630
10631 dom_attributes_id_setter.html:
10632 median= 123.0 ms, stdev= 2.06397674406 ms, min= 119.0 ms, max= 128.0 ms
10633 median= 119.0 ms, stdev= 1.92028643697 ms, min= 117.0 ms, max= 123.0 ms
10634 median= 121.0 ms, stdev= 1.8781639971 ms, min= 118.0 ms, max= 123.0 ms
10635 median= 123.0 ms, stdev= 2.21585198062 ms, min= 119.0 ms, max= 130.0 ms
10636 median= 124.5 ms, stdev= 2.36378933071 ms, min= 119.0 ms, max= 129.0 ms
10637 median= 122.0 ms, stdev= 2.4474476501 ms, min= 118.0 ms, max= 128.0 ms
10638 median= 123.0 ms, stdev= 1.76351920885 ms, min= 118.0 ms, max= 125.0 ms
10639 median= 119.0 ms, stdev= 1.79652442232 ms, min= 117.0 ms, max= 125.0 ms
10640 median= 121.0 ms, stdev= 1.49916643506 ms, min= 119.0 ms, max= 123.0 ms
10641 median= 119.5 ms, stdev= 1.85135085816 ms, min= 117.0 ms, max= 125.0 ms
10642 median= 124.0 ms, stdev= 1.43090880213 ms, min= 120.0 ms, max= 124.0 ms
10643 median= 122.0 ms, stdev= 1.45859521458 ms, min= 118.0 ms, max= 123.0 ms
10644 median= 123.0 ms, stdev= 1.50332963784 ms, min= 120.0 ms, max= 124.0 ms
10645 median= 123.0 ms, stdev= 1.3638181697 ms, min= 120.0 ms, max= 125.0 ms
10646 median= 119.0 ms, stdev= 1.43527000944 ms, min= 117.0 ms, max= 121.0 ms
10647 median= 122.5 ms, stdev= 1.71682847134 ms, min= 118.0 ms, max= 124.0 ms
10648 median= 121.0 ms, stdev= 1.44481832768 ms, min= 118.0 ms, max= 123.0 ms
10649 median= 120.0 ms, stdev= 1.40978721799 ms, min= 117.0 ms, max= 122.0 ms
10650 median= 122.0 ms, stdev= 1.68522995464 ms, min= 119.0 ms, max= 125.0 ms
10651 median= 122.0 ms, stdev= 1.55804364509 ms, min= 118.0 ms, max= 123.0 ms
10652
10653
10654 * Bindings/dom_attributes_id_getter.html: Added.
10655 * Bindings/dom_attributes_id_setter.html: Added.
10656 * Bindings/resources/dom_attributes_common.js: Added.
10657
alexis.menard@openbossa.org6265b592012-02-16 20:14:38 +0000106582012-02-16 Alexis Menard <alexis.menard@openbossa.org>
10659
10660 Add a perf test for the CSS parser.
10661 https://bugs.webkit.org/show_bug.cgi?id=78114
10662
10663 Reviewed by Ryosuke Niwa.
10664
10665 Add a perf test for the CSS parser. It load a big CSS chunk
10666 which contains some snippets of the YUI library from Yahoo!.
10667
10668 * Parser/css-parser-yui.html: Added.
10669
commit-queue@webkit.org7fde2682012-02-09 07:14:24 +0000106702012-02-08 Hajime Morrita <morrita@chromium.org>
10671
10672 [PerformanceTests] sunspider-crypto-md5.html and sunspider-crypto-sha1.html are timing out on cr-mac perf bot
10673 https://bugs.webkit.org/show_bug.cgi?id=78174
10674
10675 Reviewed by Ryosuke Niwa.
10676
10677 Pulled back removed files.
10678
10679 * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-md5.html: Added.
10680 * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-sha1.html: Added.
10681
morrita@google.comaa55f3f2012-02-06 23:44:33 +0000106822012-02-02 Hajime Morrita <morrita@chromium.org>
10683
10684 [PerformanceTests] Each Dromaeo test needs its landing html.
10685 https://bugs.webkit.org/show_bug.cgi?id=77504
10686
10687 Reviewed by Ryosuke Niwa.
10688
10689 - Added landing pages for each test which are listed in MANIFEST.json
10690 - Removed some tests which depends on the library whose license is incompatible to WebKit.
10691 - Added local copy of corresponding library. And replace the references to the remote sources
10692 to the local copies.
10693 - Removed old library files under Dromaeo/resources/dromaeo/web/lib/.
10694 - Skipped Sunsupier and v8 test. Such JS centric test should have its own test instead of
10695 running as a part of Dromaeo.
10696
10697 * Dromaeo/cssquery-dojo.html: Added.
10698 * Dromaeo/cssquery-jquery.html: Added.
10699 * Dromaeo/cssquery-prototype.html: Added.
10700 * Dromaeo/dom-attr.html: Added.
10701 * Dromaeo/dom-modify.html: Added.
10702 * Dromaeo/dom-traverse.html: Added.
10703 * Dromaeo/dromaeo-3d-cube.html: Added.
10704 * Dromaeo/dromaeo-core-eval.html: Added.
10705 * Dromaeo/dromaeo-object-array.html: Added.
10706 * Dromaeo/dromaeo-object-regexp.html: Added.
10707 * Dromaeo/dromaeo-object-string.html: Added.
10708 * Dromaeo/dromaeo-string-base64.html: Added.
10709 * Dromaeo/jslib-attr-jquery.html: Added.
10710 * Dromaeo/jslib-attr-prototype.html: Added.
10711 * Dromaeo/jslib-event-jquery.html: Added.
10712 * Dromaeo/jslib-event-prototype.html: Added.
10713 * Dromaeo/jslib-modify-jquery.html: Added.
10714 * Dromaeo/jslib-modify-prototype.html: Added.
10715 * Dromaeo/jslib-style-jquery.html: Added.
10716 * Dromaeo/jslib-style-prototype.html: Added.
10717 * Dromaeo/jslib-traverse-jquery.html: Added.
10718 * Dromaeo/jslib-traverse-prototype.html: Added.
10719 * Dromaeo/resources/dromaeo/web/lib/dojo.js: Removed.
10720 * Dromaeo/resources/dromaeo/web/lib/dojo-1.6.1.js: Added.
10721 * Dromaeo/resources/dromaeo/web/lib/jquery.js: Removed.
10722 * Dromaeo/resources/dromaeo/web/lib/jquery-1.6.4.js: Added.
10723 * Dromaeo/resources/dromaeo/web/lib/mootools.js: Removed.
10724 * Dromaeo/resources/dromaeo/web/lib/prototype.js: Removed.
10725 * Dromaeo/resources/dromaeo/web/lib/prototype-1.7.js: Added.
10726 * Dromaeo/resources/dromaeo/web/tests/cssquery-dojo.html:
10727 * Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html:
10728 * Dromaeo/resources/dromaeo/web/tests/cssquery-mootools.html: Removed.
10729 * Dromaeo/resources/dromaeo/web/tests/cssquery-prototype.html:
10730 * Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html:
10731 * Dromaeo/resources/dromaeo/web/tests/jslib-attr-prototype.html:
10732 * Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html:
10733 * Dromaeo/resources/dromaeo/web/tests/jslib-event-prototype.html:
10734 * Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:
10735 * Dromaeo/resources/dromaeo/web/tests/jslib-modify-prototype.html:
10736 * Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html:
10737 * Dromaeo/resources/dromaeo/web/tests/jslib-style-prototype.html:
10738 * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html:
10739 * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-prototype.html:
10740 * Dromaeo/sunspider-3d-morph.html: Added.
10741 * Dromaeo/sunspider-3d-raytrace.html: Added.
10742 * Dromaeo/sunspider-access-binary-trees.html: Added.
10743 * Dromaeo/sunspider-access-fannkuch.html: Added.
10744 * Dromaeo/sunspider-access-nbody.html: Added.
10745 * Dromaeo/sunspider-access-nsieve.html: Added.
10746 * Dromaeo/sunspider-bitops-3bit-bits-in-byte.html: Added.
10747 * Dromaeo/sunspider-bitops-bits-in-byte.html: Added.
10748 * Dromaeo/sunspider-bitops-bitwise-and.html: Added.
10749 * Dromaeo/sunspider-bitops-nsieve-bits.html: Added.
10750 * Dromaeo/sunspider-controlflow-recursive.html: Added.
10751 * Dromaeo/sunspider-crypto-aes.html: Added.
10752 * Dromaeo/sunspider-crypto-md5.html: Added.
10753 * Dromaeo/sunspider-crypto-sha1.html: Added.
10754 * Dromaeo/sunspider-date-format-tofte.html: Added.
10755 * Dromaeo/sunspider-date-format-xparb.html: Added.
10756 * Dromaeo/sunspider-math-cordic.html: Added.
10757 * Dromaeo/sunspider-math-partial-sums.html: Added.
10758 * Dromaeo/sunspider-math-spectral-norm.html: Added.
10759 * Dromaeo/sunspider-regexp-dna.html: Added.
10760 * Dromaeo/sunspider-string-fasta.html: Added.
10761 * Dromaeo/sunspider-string-tagcloud.html: Added.
10762 * Dromaeo/sunspider-string-unpack-code.html: Added.
10763 * Dromaeo/sunspider-string-validate-input.html: Added.
10764 * Dromaeo/v8-crypto.html: Added.
10765 * Dromaeo/v8-deltablue.html: Added.
10766 * Dromaeo/v8-earley-boyer.html: Added.
10767 * Dromaeo/v8-raytrace.html: Added.
10768 * Dromaeo/v8-richards.html: Added.
10769 * Skipped:
10770
rniwa@webkit.org1b56b052012-02-02 21:03:42 +0000107712012-02-02 Sheriff Bot <webkit.review.bot@gmail.com>
10772
10773 Unreviewed, rolling out r106543.
10774 http://trac.webkit.org/changeset/106543
10775 https://bugs.webkit.org/show_bug.cgi?id=77671
10776
10777 Made tests less stable (Requested by rniwa on #webkit).
10778
10779 * resources/init.html: Removed.
10780
rniwa@webkit.org412ac4b2012-02-02 10:24:29 +0000107812012-02-02 Ryosuke Niwa <rniwa@webkit.org>
10782
10783 [PerformanceTests] tests have dependencies
10784 https://bugs.webkit.org/show_bug.cgi?id=77506
10785
10786 Reviewed by Hajime Morita.
10787
10788 * resources/init.html: Added.
10789
rniwa@webkit.orga2d82a92012-02-01 09:39:13 +0000107902012-02-01 Ryosuke Niwa <rniwa@webkit.org>
10791
rniwa@webkit.orgf10fd7c2012-02-01 09:47:41 +000010792 Fix after r106386. The empty anchor element was generating an erroneous whitespace.
10793
10794 * Bindings/event-target-wrapper.html:
10795
107962012-02-01 Ryosuke Niwa <rniwa@webkit.org>
10797
rniwa@webkit.orga2d82a92012-02-01 09:39:13 +000010798 Another fix after r106379.
10799
10800 * Parser/html5-full-render.html:
10801
morrita@google.comb92146d2012-02-01 03:51:23 +0000108022012-01-31 Hajime Morrita <morrita@chromium.org>
10803
10804 Import Dromaeo to WebKit repository.
10805 https://bugs.webkit.org/show_bug.cgi?id=77328
10806
10807 Reviewed by Ryosuke Niwa.
10808
10809 Imported a modified version of Dromaeo which is able to
10810 run on the DRT.
10811
10812 The imported version originally came from:
10813 https://github.com/omo/dromaeo/commit/c942a1452109cdd5f759b3c4aee8d68d490d44a2
10814
10815 * Dromaeo/resources/dromaeo/web/application.css: Added.
10816 * Dromaeo/resources/dromaeo/web/favicon.ico: Added.
10817 * Dromaeo/resources/dromaeo/web/favicon.png: Added.
10818 * Dromaeo/resources/dromaeo/web/htmlrunner.js: Added.
10819 * Dromaeo/resources/dromaeo/web/ie.css: Added.
10820 * Dromaeo/resources/dromaeo/web/images/bg.png: Added.
10821 * Dromaeo/resources/dromaeo/web/images/clouds.png: Added.
10822 * Dromaeo/resources/dromaeo/web/images/clouds2.png: Added.
10823 * Dromaeo/resources/dromaeo/web/images/comets.png: Added.
10824 * Dromaeo/resources/dromaeo/web/images/dino1.png: Added.
10825 * Dromaeo/resources/dromaeo/web/images/dino2.png: Added.
10826 * Dromaeo/resources/dromaeo/web/images/dino3.png: Added.
10827 * Dromaeo/resources/dromaeo/web/images/dino4.png: Added.
10828 * Dromaeo/resources/dromaeo/web/images/dino5.png: Added.
10829 * Dromaeo/resources/dromaeo/web/images/dino6.png: Added.
10830 * Dromaeo/resources/dromaeo/web/images/dino7.png: Added.
10831 * Dromaeo/resources/dromaeo/web/images/dino8.png: Added.
10832 * Dromaeo/resources/dromaeo/web/images/left.png: Added.
10833 * Dromaeo/resources/dromaeo/web/images/logo.png: Added.
10834 * Dromaeo/resources/dromaeo/web/images/logo2.png: Added.
10835 * Dromaeo/resources/dromaeo/web/images/logo3.png: Added.
10836 * Dromaeo/resources/dromaeo/web/images/right.png: Added.
10837 * Dromaeo/resources/dromaeo/web/images/top.png: Added.
10838 * Dromaeo/resources/dromaeo/web/images/water.png: Added.
10839 * Dromaeo/resources/dromaeo/web/index.html: Added.
10840 * Dromaeo/resources/dromaeo/web/jquery.js: Added.
10841 * Dromaeo/resources/dromaeo/web/lib/dojo.js: Added.
10842 * Dromaeo/resources/dromaeo/web/lib/jquery.js: Added.
10843 * Dromaeo/resources/dromaeo/web/lib/mootools.js: Added.
10844 * Dromaeo/resources/dromaeo/web/lib/prototype.js: Added.
10845 * Dromaeo/resources/dromaeo/web/pngfix.js: Added.
10846 * Dromaeo/resources/dromaeo/web/reset.css: Added.
10847 * Dromaeo/resources/dromaeo/web/test-head.html: Added.
10848 * Dromaeo/resources/dromaeo/web/test-head.js: Added.
10849 * Dromaeo/resources/dromaeo/web/test-tail.html: Added.
10850 * Dromaeo/resources/dromaeo/web/test-tail.js: Added.
10851 * Dromaeo/resources/dromaeo/web/tests/MANIFEST.json: Added.
10852 * Dromaeo/resources/dromaeo/web/tests/cssquery-dojo.html: Added.
10853 * Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html: Added.
10854 * Dromaeo/resources/dromaeo/web/tests/cssquery-mootools.html: Added.
10855 * Dromaeo/resources/dromaeo/web/tests/cssquery-prototype.html: Added.
10856 * Dromaeo/resources/dromaeo/web/tests/cssquery-yui.html: Added.
10857 * Dromaeo/resources/dromaeo/web/tests/dom-attr.html: Added.
10858 * Dromaeo/resources/dromaeo/web/tests/dom-modify.html: Added.
10859 * Dromaeo/resources/dromaeo/web/tests/dom-query.html: Added.
10860 * Dromaeo/resources/dromaeo/web/tests/dom-traverse.html: Added.
10861 * Dromaeo/resources/dromaeo/web/tests/dromaeo-3d-cube.html: Added.
10862 * Dromaeo/resources/dromaeo/web/tests/dromaeo-core-eval.html: Added.
10863 * Dromaeo/resources/dromaeo/web/tests/dromaeo-object-array.html: Added.
10864 * Dromaeo/resources/dromaeo/web/tests/dromaeo-object-regexp.html: Added.
10865 * Dromaeo/resources/dromaeo/web/tests/dromaeo-object-string.html: Added.
10866 * Dromaeo/resources/dromaeo/web/tests/dromaeo-string-base64.html: Added.
10867 * Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html: Added.
10868 * Dromaeo/resources/dromaeo/web/tests/jslib-attr-prototype.html: Added.
10869 * Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html: Added.
10870 * Dromaeo/resources/dromaeo/web/tests/jslib-event-prototype.html: Added.
10871 * Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html: Added.
10872 * Dromaeo/resources/dromaeo/web/tests/jslib-modify-prototype.html: Added.
10873 * Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html: Added.
10874 * Dromaeo/resources/dromaeo/web/tests/jslib-style-prototype.html: Added.
10875 * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html: Added.
10876 * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-prototype.html: Added.
10877 * Dromaeo/resources/dromaeo/web/tests/sunspider-3d-morph.html: Added.
10878 * Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html: Added.
10879 * Dromaeo/resources/dromaeo/web/tests/sunspider-access-binary-trees.html: Added.
10880 * Dromaeo/resources/dromaeo/web/tests/sunspider-access-fannkuch.html: Added.
10881 * Dromaeo/resources/dromaeo/web/tests/sunspider-access-nbody.html: Added.
10882 * Dromaeo/resources/dromaeo/web/tests/sunspider-access-nsieve.html: Added.
10883 * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-3bit-bits-in-byte.html: Added.
10884 * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bits-in-byte.html: Added.
10885 * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html: Added.
10886 * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-nsieve-bits.html: Added.
10887 * Dromaeo/resources/dromaeo/web/tests/sunspider-controlflow-recursive.html: Added.
10888 * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-aes.html: Added.
10889 * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-md5.html: Added.
10890 * Dromaeo/resources/dromaeo/web/tests/sunspider-crypto-sha1.html: Added.
10891 * Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-tofte.html: Added.
10892 * Dromaeo/resources/dromaeo/web/tests/sunspider-date-format-xparb.html: Added.
10893 * Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html: Added.
10894 * Dromaeo/resources/dromaeo/web/tests/sunspider-math-partial-sums.html: Added.
10895 * Dromaeo/resources/dromaeo/web/tests/sunspider-math-spectral-norm.html: Added.
10896 * Dromaeo/resources/dromaeo/web/tests/sunspider-regexp-dna.html: Added.
10897 * Dromaeo/resources/dromaeo/web/tests/sunspider-string-fasta.html: Added.
10898 * Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html: Added.
10899 * Dromaeo/resources/dromaeo/web/tests/sunspider-string-unpack-code.html: Added.
10900 * Dromaeo/resources/dromaeo/web/tests/sunspider-string-validate-input.html: Added.
10901 * Dromaeo/resources/dromaeo/web/tests/v8-crypto.html: Added.
10902 * Dromaeo/resources/dromaeo/web/tests/v8-deltablue.html: Added.
10903 * Dromaeo/resources/dromaeo/web/tests/v8-earley-boyer.html: Added.
10904 * Dromaeo/resources/dromaeo/web/tests/v8-raytrace.html: Added.
10905 * Dromaeo/resources/dromaeo/web/tests/v8-richards.html: Added.
10906 * Dromaeo/resources/dromaeo/web/tests/72px.png: Added.
10907 * Dromaeo/resources/dromaeo/web/web-style.css: Added.
10908 * Dromaeo/resources/dromaeo/web/webrunner.js: Added.
10909 * Skipped: Unskip the dromaeo driver.
10910
rniwa@webkit.orge0cd0a92012-01-31 20:05:37 +0000109112012-01-31 Ryosuke Niwa <rniwa@webkit.org>
10912
rniwa@webkit.org260940d2012-02-01 01:55:03 +000010913 Fix Parser/html5-full-render.html after r106379.
10914
10915 * Parser/html5-full-render.html:
10916
109172012-01-31 Ryosuke Niwa <rniwa@webkit.org>
10918
rniwa@webkit.orgef28db12012-01-31 21:35:51 +000010919 PerfTestRunner should automatically create pre#log
10920 https://bugs.webkit.org/show_bug.cgi?id=77469
10921
10922 Reviewed by Tony Chang.
10923
10924 Automatically generate <pre id="log"></pre> if there isn't one.
10925
10926 * Bindings/event-target-wrapper.html:
10927 * DOM/Accessors.html:
10928 * DOM/CloneNodes.html:
10929 * DOM/CreateNodes.html:
10930 * DOM/DOMDivWalk.html:
10931 * DOM/DOMTable.html:
10932 * DOM/DOMWalk.html:
10933 * DOM/Events.html:
10934 * DOM/GetElement.html:
10935 * DOM/GridSort.html:
10936 * DOM/Template.html:
10937 * Dromaeo/dom-query.html:
10938 * Dromaeo/resources/dromaeorunner.js:
10939 * Parser/html-parser.html:
10940 * Parser/html5-full-render.html:
10941 * Parser/simple-url.html:
10942 * Parser/tiny-innerHTML.html:
10943 * Parser/url-parser.html:
10944 * Parser/xml-parser.html:
10945 * resources/runner.js:
10946 (PerfTestRunner.log):
10947 (PerfTestRunner.printStatistics):
10948
109492012-01-31 Ryosuke Niwa <rniwa@webkit.org>
10950
rniwa@webkit.orge0cd0a92012-01-31 20:05:37 +000010951 runner.js in performance tests should define a class
10952 https://bugs.webkit.org/show_bug.cgi?id=77074
10953
10954 Reviewed by Eric Seidel.
10955
10956 Wrap all functions in runner.js by PerfTestRunner and update tests that runner.js accordingly.
10957 Also replace compute* functions in runner.js by more robust code from dom-perf.js.
10958
10959 * Bindings/event-target-wrapper.html:
10960 * DOM/DOMTable.html:
10961 * DOM/resources/dom-perf.js:
10962 (BenchmarkSuite.prototype.RunSingle):
10963 (runBenchmarkSuite):
10964 * Mutation/append-child-deep.html:
10965 * Mutation/append-child.html:
10966 * Mutation/inner-html.html:
10967 * Mutation/remove-child-deep.html:
10968 * Mutation/remove-child.html:
10969 * Parser/html-parser.html:
10970 * Parser/html5-full-render.html:
10971 * Parser/simple-url.html:
10972 * Parser/tiny-innerHTML.html:
10973 * Parser/url-parser.html:
10974 * Parser/xml-parser.html:
10975 * resources/runner.js:
10976 (PerfTestRunner.log):
10977 (PerfTestRunner.logInfo):
10978 (PerfTestRunner.loadFile):
10979 (PerfTestRunner.computeStatistics):
10980 (PerfTestRunner.logStatistics):
10981 (PerfTestRunner._runLoop.else):
10982 (PerfTestRunner._runLoop):
10983 (PerfTestRunner._runner):
10984
commit-queue@webkit.org3b4a9fa2012-01-31 10:13:51 +0000109852012-01-31 Hajime Morrita <morrita@chromium.org>
10986
10987 [PerformanceTests] Add landing html for Dromaeo dom-query test
10988 https://bugs.webkit.org/show_bug.cgi?id=77329
10989
10990 Reviewed by Ryosuke Niwa.
10991
10992 Added a "landing html" which includes actual dromaemo page and
10993 send messages to interact with it. The landing html also dumps the
10994 score in run-perf-tests friendly format.
10995
10996 This test isn't enabled until Dromaemo itself is available for run-perf-tests.
10997 It will happen in a separate change.
10998
10999 * Dromaeo/dom-query.html: Added.
11000 * Dromaeo/resources/dromaeorunner.js: Added.
11001 * Skipped: Skipping this for now.
11002
rniwa@webkit.org0054a2b2012-01-31 02:11:02 +0000110032012-01-30 Ryosuke Niwa <rniwa@webkit.org>
11004
11005 Skip inspector tests since they have been timing out.
11006
11007 * Skipped:
11008
rniwa@webkit.orgf670c1d2012-01-30 03:59:37 +0000110092012-01-29 Ryosuke Niwa <rniwa@webkit.org>
11010
11011 DOM/DOMDivWalk.html result is unreliable
11012 https://bugs.webkit.org/show_bug.cgi?id=77313
11013
rniwa@webkit.orgc0c247e2012-02-21 22:46:01 +000011014 Reviewed by Adam Barth.
rniwa@webkit.orgf670c1d2012-01-30 03:59:37 +000011015
11016 Trigger garbage collection manually between test runs to avoid GC
11017 to occur in the middle of runs.
11018
11019 * DOM/resources/dom-perf.js:
11020 (BenchmarkSuite.prototype.RunSingle):
11021 * resources/runner.js:
11022 (gc.else.gcRec):
11023 (gc):
11024 (runLoop):
11025
rniwa@webkit.org5ba90592012-01-27 22:03:37 +0000110262012-01-26 Ryosuke Niwa <rniwa@webkit.org>
11027
11028 Import Chromium's dom_perf test
11029 https://bugs.webkit.org/show_bug.cgi?id=77175
11030
11031 Reviewed by Adam Barth.
11032
11033 Import dom_perf.
11034
11035 Note resources/dom/suites.js isn't used by any html file yet but it will be used by Chromium port
11036 once its perf bots start pulling test files from WebKit repository instead of Google's internal repository.
11037
11038 * DOM: Added.
11039 * DOM/Accessors.html: Added.
11040 * DOM/CloneNodes.html: Added.
11041 * DOM/CreateNodes.html: Added.
11042 * DOM/DOMDivWalk.html: Added.
11043 * DOM/DOMTable.html: Added.
11044 * DOM/DOMWalk.html: Added.
11045 * DOM/Events.html: Added.
11046 * DOM/GetElement.html: Added.
11047 * DOM/GridSort.html: Added.
11048 * DOM/Template.html: Added.
11049 * DOM/resources: Added.
11050 * DOM/resources/dom-perf.js: Added.
11051 * DOM/resources/dom-perf: Added.
11052 * DOM/resources/dom-perf/accessors.js: Added.
11053 * DOM/resources/dom-perf/clonenodes.js: Added.
11054 * DOM/resources/dom-perf/createnodes.js: Added.
11055 * DOM/resources/dom-perf/domdivwalk.js: Added.
11056 * DOM/resources/dom-perf/domtable.js: Added.
11057 * DOM/resources/dom-perf/domwalk.js: Added.
11058 * DOM/resources/dom-perf/events.js: Added.
11059 * DOM/resources/dom-perf/getelement.js: Added.
11060 * DOM/resources/dom-perf/gridsort.js: Added.
11061 * DOM/resources/dom-perf/suites.js: Added.
11062 * DOM/resources/dom-perf/template.js: Added.
11063 * resources/runner.js:
11064
rniwa@webkit.orgc4f5dd12012-01-25 22:25:10 +0000110652012-01-25 Ryosuke Niwa <rniwa@webkit.org>
11066
11067 html5-full-render.html fails due to a log
11068 https://bugs.webkit.org/show_bug.cgi?id=77046
11069
11070 Reviewed by Adam Barth.
11071
11072 Replace the call to log() in html5-full-render.html by a call to newly added logInfo(),
11073 which doesn't print anything inside DRT.
11074
11075 * Parser/html5-full-render.html:
11076 * resources/runner.js:
11077 (logInfo):
11078
abarth@webkit.org49d2a482012-01-19 23:38:29 +0000110792012-01-19 Adam Barth <abarth@webkit.org>
11080
11081 PerformanceTests's runner.js shouldn't be Parser-specific
11082 https://bugs.webkit.org/show_bug.cgi?id=76670
11083
11084 Reviewed by Ryosuke Niwa.
11085
11086 This runner script is used by a bunch of difference performance tests.
11087 It shouldn't be in the Parser directory anymore.
11088
11089 * Bindings/event-target-wrapper.html:
11090 * Mutation/append-child-deep.html:
11091 * Mutation/append-child.html:
11092 * Mutation/inner-html.html:
11093 * Mutation/remove-child-deep.html:
11094 * Mutation/remove-child.html:
11095 * Parser/html-parser.html:
11096 * Parser/html5-full-render.html:
11097 * Parser/resources/runner.js: Removed.
11098 * Parser/simple-url.html:
11099 * Parser/tiny-innerHTML.html:
11100 * Parser/url-parser.html:
11101 * Parser/xml-parser.html:
11102 * resources: Added.
11103 * resources/runner.js: Copied from PerformanceTests/Parser/resources/runner.js.
11104
rniwa@webkit.org780e1d32012-01-19 21:50:52 +0000111052012-01-19 Ryosuke Niwa <rniwa@webkit.org>
11106
11107 Some perf tests time out when ran by run-perf-tests
11108 https://bugs.webkit.org/show_bug.cgi?id=76612
11109
11110 Reviewed by Dirk Pranke and Eric Seidel.
11111
11112 Replace all images in html5.html by geenbox.png to avoid accessing whatwg.org when
11113 running the parser tests. Also call dumpAsText, waitUntilDone, and notifyDone automatically
11114 inside runner.js to avoid having to call them in individual tests.
11115
11116 * Bindings/event-target-wrapper.html: Removed calls to layoutTestController methods since
11117 they are now called by runner.js automatically.
11118 * Parser/resources/greenbox.png: Copied from LayoutTests/fast/css/resources/greenbox.png.
11119 * Parser/resources/html5.html:
11120 * Parser/resources/runner.js:
11121 (runLoop):
11122
rniwa@webkit.org095e5732012-01-19 06:00:40 +0000111232012-01-18 Ryosuke Niwa <rniwa@webkit.org>
11124
11125 run-perf-tests should support Skipped list
11126 https://bugs.webkit.org/show_bug.cgi?id=76594
11127
11128 Reviewed by Adam Barth.
11129
11130 Add Skipped list to be used by run-perf-tests as it can only runs tests in
11131 Bindings, Parser, and inspector at the moment.
11132
11133 * Skipped: Added.
11134
loislo@chromium.orga4b23672012-01-12 12:06:08 +0000111352012-01-12 Ilya Tikhonovsky <loislo@chromium.org>
11136
loislo@chromium.org96daeac2012-01-12 14:44:06 +000011137 Web Inspector: performance: restore 'log 300 messages into console' test.
11138 https://bugs.webkit.org/show_bug.cgi?id=76170
11139
11140 It was removed in order of transition from layout tests to perf tests.
11141
11142 Reviewed by Yury Semikhatsky.
11143
11144 * inspector/console-300-lines.html: Added.
11145
111462012-01-12 Ilya Tikhonovsky <loislo@chromium.org>
11147
loislo@chromium.orga4b23672012-01-12 12:06:08 +000011148 Web Inspector: performance tests: fix memory leak in first-open-resources test.
11149 https://bugs.webkit.org/show_bug.cgi?id=76049
11150
11151 first-open-resources doesn't reset resource panel properly after test run.
11152
11153 Reviewed by Yury Semikhatsky.
11154
11155 * inspector/first-open-resources.html:
11156
loislo@chromium.org0a700982012-01-10 16:31:28 +0000111572012-01-10 Ilya Tikhonovsky <loislo@chromium.org>
11158
loislo@chromium.org9eef3f52012-01-10 16:39:10 +000011159 Unreviewed. WebInspector: Remove unnecessary logging from the test.
11160
11161 * inspector/first-open-resources.html:
11162
111632012-01-10 Ilya Tikhonovsky <loislo@chromium.org>
11164
loislo@chromium.org0a700982012-01-10 16:31:28 +000011165 Unreviewed. Restore test that was removed during migration from LayoutTests folder.
11166
11167 * inspector/first-open-resources.html: Added.
11168
loislo@chromium.org8743dbd2012-01-10 09:08:06 +0000111692012-01-09 Ilya Tikhonovsky <loislo@chromium.org>
11170
11171 Unreviewed test fix after r103683.
11172
11173 * inspector/first-open-scripts.html:
11174 * inspector/show-panel.html:
11175
abarth@webkit.orge7b3d3b2012-01-04 04:39:04 +0000111762012-01-03 Adam Barth <abarth@webkit.org>
11177
11178 html-parser.html takes too long to run
11179 https://bugs.webkit.org/show_bug.cgi?id=75515
11180
11181 Reviewed by Eric Seidel.
11182
11183 In working on runner.js, we introduced a factor of 10 increase to the
11184 running time of this benchmark. This patch dials down the number of
11185 iterations to something more user-friendly.
11186
11187 * Parser/html-parser.html:
11188
loislo@chromium.orgedb00762011-12-18 15:13:08 +0000111892011-12-18 Ilya Tikhonovsky <loislo@chromium.org>
11190
11191 Web Inspector: move heap data stats to separate tab.
11192 https://bugs.webkit.org/show_bug.cgi?id=74704
11193
11194 Reviewed by Pavel Feldman.
11195
11196 * inspector/performance-test.js:
11197 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._dump):
11198 (initialize_TimeTracker.InspectorTest.runPerformanceTest):
11199
loislo@chromium.org9db65182011-12-01 19:31:51 +0000112002011-12-01 Ilya Tikhonovsky <loislo@chromium.org>
11201
11202 Web Inspector: chromium: move and adapt Inspector's performance tests for running with run-inspector-perf-tests.py.
11203 https://bugs.webkit.org/show_bug.cgi?id=72260
11204
11205 Reviewed by Pavel Feldman.
11206
11207 * inspector/first-open-elements.html: Renamed from LayoutTests/inspector/performance/resources/first-open-elements.html.
11208 * inspector/first-open-scripts.html: Renamed from LayoutTests/inspector/performance/resources/first-open-scripts.html.
11209 * inspector/inspector-startup-time.html: Renamed from LayoutTests/inspector/performance/resources/inspector-startup-time.html.
11210 * inspector/network-append-30-requests.html: Renamed from LayoutTests/inspector/performance/resources/network-append-30-requests.html.
11211 * inspector/performance-test.js: Renamed from LayoutTests/inspector/performance/resources/performance-test.js.
11212 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer):
11213 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.start):
11214 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.finish):
11215 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._getJSHeapSize):
11216 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype.done):
11217 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._runTest):
11218 (initialize_TimeTracker.InspectorTest.runPerformanceTest.Timer.prototype._dump):
11219 (initialize_TimeTracker.InspectorTest.runPerformanceTest):
11220 (initialize_TimeTracker.InspectorTest.mark):
11221 * inspector/show-panel.html: Renamed from LayoutTests/inspector/performance/resources/show-panel.html.
11222
adamk@chromium.orgcd510a22011-11-10 18:39:39 +0000112232011-11-09 Adam Klein <adamk@chromium.org>
11224
11225 [MutationObservers] Microbenchmarks for appendChild, removeChild, and innerHTML
11226 https://bugs.webkit.org/show_bug.cgi?id=71939
11227
11228 Reviewed by Ojan Vafai.
11229
11230 These benchmarks time both the DOM mutations themselves and the time taken
11231 to call the MutationCallback. This measurement is achieved by
11232 executing the code entirely within the MutationCallback itself.
11233
11234 * Mutation/append-child-deep.html: Added. Covers appendChild in a 200-node-deep tree with subtree observation.
11235 * Mutation/append-child.html: Added. Covers appendChild in a flat tree.
11236 * Mutation/inner-html.html: Added. Covers innerHTML adding and removing many nodes at a time.
11237 * Mutation/remove-child-deep.html: Added. Covers removeChild in a 200-node-deep tree with subtree observation.
11238 * Mutation/remove-child.html: Added. Covers removeChild in a flat tree.
11239
abarth@webkit.org84054352011-10-25 23:43:33 +0000112402011-10-25 Adam Barth <abarth@webkit.org>
11241
11242 EventTargetFactory.in is not sorted
11243 https://bugs.webkit.org/show_bug.cgi?id=70855
11244
11245 Reviewed by Eric Seidel.
11246
11247 Add a microbenchmark for wrapping event target.
11248
11249 * Bindings: Added.
11250 * Bindings/event-target-wrapper.html: Added.
11251 * Parser/resources/runner.js:
11252 (runLoop):
11253 - Let the user of the harness get a callback when the test is done.
11254
eric@webkit.org91858ce2011-10-04 20:16:51 +0000112552011-10-04 Eric Seidel <eric@webkit.org>
11256
eric@webkit.orge1cdd752011-10-04 21:27:03 +000011257 Update html5-full-render.html to load the HTML5 spec incrementally, closer to how the browser would
11258 https://bugs.webkit.org/show_bug.cgi?id=69374
11259
eric@webkit.org1bd9f0a2011-10-04 22:56:41 +000011260 Unreviewed.
11261
11262 Per https://bugs.webkit.org/show_bug.cgi?id=69374#c7
11263 updating the chunksize to be a bit smaller now that the total
11264 size of the html5 spec is smaller than when I wrote the test.
11265
11266 This should increase the prevalence of style resolution in the
11267 sample time, which more closely matches instrument samples
11268 taken when loading the full page in Safari.
11269
11270 * Parser/html5-full-render.html:
11271
112722011-10-04 Eric Seidel <eric@webkit.org>
11273
11274 Update html5-full-render.html to load the HTML5 spec incrementally, closer to how the browser would
11275 https://bugs.webkit.org/show_bug.cgi?id=69374
11276
eric@webkit.orge1cdd752011-10-04 21:27:03 +000011277 Reviewed by James Robinson.
11278
11279 This should finally be able to provide us with a repeatable metric
11280 for how fast we're currently able to load the HTML5 spec.
11281 There are a variety of interesting functions which show up in this
11282 sample, including of course style resolution.
11283
11284 * Parser/html5-full-render.html:
11285
112862011-10-04 Eric Seidel <eric@webkit.org>
11287
eric@webkit.orgb87471e2011-10-04 20:53:09 +000011288 Update our copy of the HTML5 spec used for performance testing to match the latest version
11289 https://bugs.webkit.org/show_bug.cgi?id=69364
11290
11291 Unreviewed. The patch is too large to post, so landing this unreviewed. :(
11292
11293 The copy of the html5 spec we were using for testing was over a year old
11294 and didn't have any of the subresources with it (we were only using it
11295 as an HTML parsing benchmark). I'm about to use it for testing
11296 the full load/render time of the benchmark, so I've updated to the latest
11297 version of the spec (now 8mb instead of 5mb) and inlined two of the
11298 CSS files. (Inlining the CSS was necessary to make my testing consistent
11299 as there seems to be a race with some timer fired after CSS load.)
11300
11301 Increasing from 5mb to 8mb showed a similar 30% slowdown in our parser
11302 benchmarks as expected.
11303
11304 * Parser/resources/html5.html:
11305
113062011-10-04 Eric Seidel <eric@webkit.org>
11307
eric@webkit.org91858ce2011-10-04 20:16:51 +000011308 Add loopsPerRun option to Parser performance test runner
11309 https://bugs.webkit.org/show_bug.cgi?id=69363
11310
11311 Reviewed by Antti Koivisto.
11312
11313 Add loopsPerRun option and abstract out runLoop function (to make the UI more responsive).
11314 No change in behavior in any of the tests.
11315
11316 * Parser/resources/runner.js:
11317 (runLoop):
11318 (run):
11319 (start):
11320
eric@webkit.org35f5f9b2011-10-03 20:09:25 +0000113212011-10-03 Eric Seidel <eric@webkit.org>
11322
eric@webkit.orgd3278702011-10-04 00:13:01 +000011323 Add a microbenchmark for a full-page render of the HTML5 spec
11324 https://bugs.webkit.org/show_bug.cgi?id=69285
11325
11326 Reviewed by Adam Barth.
11327
11328 This was designed to be a test for https://bugs.webkit.org/show_bug.cgi?id=68944
11329 But it seems that by far our dominating cost for the HTML5 benchmark is
11330 time spent laying out lines (which isn't actually that surprising).
11331
11332 I'm adding the performance test for posterity.
11333
11334 * Parser/html-parser.html:
11335 - Removed use of "about:blank" which abarth says is a no-op. Made comment more accurate.
11336 * Parser/html5-full-render.html: Copied from PerformanceTests/Parser/html-parser.html.
11337
113382011-10-03 Eric Seidel <eric@webkit.org>
11339
eric@webkit.org35f5f9b2011-10-03 20:09:25 +000011340 PerformanceTests/Parser/html-parser is only testing parsing of the head element
11341 https://bugs.webkit.org/show_bug.cgi?id=69283
11342
11343 Reviewed by Adam Barth.
11344
11345 While investigating https://bugs.webkit.org/show_bug.cgi?id=68944
11346 I found that the html-parser benchmark was only parsing up to the
11347 first script tag per loop! We've fixed this by adding the sandbox
11348 tag which will deny all external loads and allow the parser to
11349 synchronously continue parsing the entire document to completion
11350 (as we had expected it was doing).
11351
11352 This changes the profile somewhat. Line number counting is much
11353 hotter, since we're actually accounting for the parse of the entire
11354 document in our sample.
11355
11356 Total sample time only about doubles, from 1800ms to 3800ms on my machine
11357 which is less than I would have expected.
11358
11359 * Parser/html-parser.html:
11360
hyatt@apple.com46c65b32011-08-09 19:13:45 +0000113612011-08-09 Alexandru Chiculita <achicu@adobe.com>
11362
11363 Fixing 65868 REGRESSION(r92610) caused by 65668 - Optimize floating elements lookup
11364 https://bugs.webkit.org/show_bug.cgi?id=65871
11365
11366 Reviewed by Dave Hyatt.
11367
11368 * Layout/floats.html: Added the nested divs, so that we can test the propagation impact of the floats tree.
11369
commit-queue@webkit.org3f985ec2011-08-08 20:13:48 +0000113702011-08-08 Sheriff Bot <webkit.review.bot@gmail.com>
11371
11372 Unreviewed, rolling out r92610.
11373 http://trac.webkit.org/changeset/92610
11374 https://bugs.webkit.org/show_bug.cgi?id=65868
11375
11376 Caused assertion failures when running fast/multicol tests
11377 (Requested by andersca on #webkit).
11378
11379 * Layout/floats.html:
11380
commit-queue@webkit.org0a6b0232011-08-08 18:09:19 +0000113812011-08-08 Alexandru Chiculita <achicu@adobe.com>
11382
11383 Optimize floating elements lookup
11384 https://bugs.webkit.org/show_bug.cgi?id=65668
11385
11386 Reviewed by David Hyatt.
11387
11388 * Layout/floats.html: Added the nested divs, so that we can test the propagation impact of the floats tree.
11389
commit-queue@webkit.org6489b072011-08-05 04:51:00 +0000113902011-08-04 Alexandru Chiculita <achicu@adobe.com>
11391
11392 Add a performance test for floating elements layout algorithm
11393 https://bugs.webkit.org/show_bug.cgi?id=65741
11394
11395 The test creating lots of small floats and randomly changes
11396 the width of one element at a time. It measures how often it can do that.
11397
11398 Reviewed by Adam Barth.
11399
11400 * Layout/floats.html: Added.
11401
dbates@webkit.org7b68d352011-05-31 04:03:56 +0000114022011-05-30 Daniel Bates <dbates@webkit.org>
11403
11404 Reviewed by Adam Barth.
11405
11406 Rename XSSFilter to XSSAuditor
11407 https://bugs.webkit.org/show_bug.cgi?id=61718
11408
11409 Currently we use the names XSSFilter and XSSAuditor throughout the project.
11410 Instead, we should choose one name for consistency.
11411
11412 No functionality was changed. So, no new tests.
11413
11414 * XSSAuditor: Copied from PerformanceTests/XSSFilter.
11415 * XSSFilter: Removed.
11416 * XSSFilter/large-post-many-events.html: Removed.
11417 * XSSFilter/large-post-many-inline-scripts-and-events.html: Removed.
11418 * XSSFilter/resources: Removed.
11419 * XSSFilter/resources/target-for-large-post-many-inline-scripts-and-events.html: Removed.
11420
commit-queue@webkit.orgec6b3772011-03-25 14:17:02 +0000114212011-03-25 Leo Yang <leo.yang@torchmobile.com.cn>
11422
11423 Reviewed by Dirk Schulze.
11424
11425 SVG <use> element performance improvement
11426 https://bugs.webkit.org/show_bug.cgi?id=57077
11427
11428 Add a manual test case which is from
11429 http://upload.wikimedia.org/wikipedia/commons/4/4e/Sierpinski_carpet_6.svg
11430 for svg <use> element performance test.
11431
11432 * PageLoad/svg/files/Sierpinski_carpet_6.svg: Added.
11433 * PageLoad/svg/svg.pltsuite:
11434
eric@webkit.org907cc722011-02-05 11:12:04 +0000114352011-02-05 Eric Seidel <eric@webkit.org>
11436
11437 Reviewed by Adam Barth.
11438
11439 Add performance tests for URL parsing
11440 https://bugs.webkit.org/show_bug.cgi?id=53845
11441
11442 The final-url-en URL corpus is from:
11443 http://corpus.leeds.ac.uk/internet.html
11444
11445 There are also other language corpuses which we may want to use in the future.
11446
11447 The usage instructions were as follows:
11448 "URL lists and other resources: you can freely use them in your research
11449 provided that you supply a link to this website: http://corpus.leeds.ac.uk/."
11450 Done.
11451
11452 * Parser/simple-url.html: Added.
11453 On my machine:
11454 Firefox: 255ms
11455 TOT WebKit: 378ms
11456 Chrome: 286ms
11457 Opera: 2830ms (no, that is not a typo)
11458 * Parser/url-parser.html: Added.
11459 Firefox: 381ms
11460 TOT WebKit: 216ms
11461 Chrome: 131ms
11462 Opera: 1383ms (again, not a typo)
11463 * Parser/resources/final-url-en: Added.
11464
abarth@webkit.orgf9c692d2011-02-04 04:02:02 +0000114652011-02-03 Adam Barth <abarth@webkit.org>
11466
abarth@webkit.org5dea6ad42011-02-04 04:24:29 +000011467 Reviewed by Daniel Bates.
11468
11469 Add another XSSFilter PerformanceTest
11470 https://bugs.webkit.org/show_bug.cgi?id=53750
11471
11472 This PerformanceTest tests the case that was slow in
11473 https://bugs.webkit.org/show_bug.cgi?id=49845
11474
11475 * XSSFilter/large-post-many-inline-scripts-and-events.html: Added.
11476 * XSSFilter/resources: Added.
11477 * XSSFilter/resources/target-for-large-post-many-inline-scripts-and-events.html: Added.
11478
114792011-02-03 Adam Barth <abarth@webkit.org>
11480
abarth@webkit.orgf9c692d2011-02-04 04:02:02 +000011481 Reviewed by Eric Seidel.
11482
11483 Add PerformanceTest for XSSFilter
11484 https://bugs.webkit.org/show_bug.cgi?id=53741
11485
11486 This performance tests covers the case of a large POST data and many
11487 small event handlers.
11488
11489 * XSSFilter: Added.
11490 * XSSFilter/large-post-many-events.html: Added.
11491
abarth@webkit.org7afc6e02011-02-04 00:49:03 +0000114922011-02-02 Adam Barth <abarth@webkit.org>
11493
11494 Rubber-stamped by Eric Seidel.
11495
11496 Merge PerformanceTests/Parser/ChangeLog and
11497 PerformanceTests/PageLoad/ChangeLog into PerformanceTests/ChangeLog.
11498
11499 It's silly to have ChangeLogs for each of these directories separately.
11500 I've left SunSpider with its own ChangeLog because it's more of an
11501 independent entity.
11502
11503 * ChangeLog: Added.
11504
115052011-02-02 Eric Seidel <eric@webkit.org>
11506
11507 Unreviewed. Just fixing an exception seen in Firefox.
11508
11509 HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
11510 https://bugs.webkit.org/show_bug.cgi?id=48719
11511
11512 Make the benchmarks work in Firefox/Opera.
11513
11514 * resources/runner.js:
11515 (log):
11516
115172011-01-27 Eric Seidel <eric@webkit.org>
11518
11519 Reviewed by Darin Adler.
11520
11521 HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
11522 https://bugs.webkit.org/show_bug.cgi?id=48719
11523
11524 It's unclear exactly what the Peacekeeper benchmark is testing,
11525 because I haven't found a way to run it myself.
11526
11527 However, I constructed a benchmark which shows at least one possible slow point.
11528 The HTML5 spec talks about creating a new document for every time we use
11529 the fragment parsing algorithm. Document() it turns out, it a huge bloated
11530 mess, and the constructor and destructor do a huge amount of work.
11531
11532 * benchmarks/parser/tiny-innerHTML.html: Added.
11533
115342011-01-29 Sheriff Bot <webkit.review.bot@gmail.com>
11535
11536 Unreviewed, rolling out r77050.
11537 http://trac.webkit.org/changeset/77050
11538 https://bugs.webkit.org/show_bug.cgi?id=53371
11539
11540 Caused a crash in Chromium's test_shell_tests (Requested by
11541 rniwa on #webkit).
11542
11543 * resources/performance-test.js: Removed.
11544 * tiny-innerHTML.html: Removed.
11545
115462011-01-28 Eric Seidel <eric@webkit.org>
11547
11548 Reviewed by Darin Adler.
11549
11550 HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
11551 https://bugs.webkit.org/show_bug.cgi?id=48719
11552
11553 It's unclear exactly what the Peacekeeper benchmark is testing,
11554 because I haven't found a way to run it myself.
11555
11556 However, I constructed a benchmark which shows at least one possible slow point.
11557 The HTML5 spec talks about creating a new document for every time we use
11558 the fragment parsing algorithm. Document() it turns out, it a huge bloated
11559 mess, and the constructor and destructor do a huge amount of work.
11560 To avoid constructing (or destructing) documents for each innerHTML call,
11561 this patch adds a shared dummy document used by all innerHTML calls.
11562
11563 * benchmarks/parser/tiny-innerHTML.html: Added.
11564
115652010-12-31 Adam Barth <abarth@webkit.org>
11566
11567 Rubber-stamped by Eric Seidel.
11568
11569 Move HTML and XML parser benchmarks into PerformanceTests/Parser
11570 https://bugs.webkit.org/show_bug.cgi?id=51772
11571
11572 Add a ChangeLog for tracking changes to the Parser PerformanceTest.
11573
11574 * ChangeLog: Added.
11575
115762010-12-31 Adam Barth <abarth@webkit.org>
11577
11578 Rubber-stamped by Eric Seidel.
11579
11580 Move PageLoadTests to PerformanceTests/PageLoad
11581 https://bugs.webkit.org/show_bug.cgi?id=51771
11582
11583 Update URLs to point to the new directory name.
11584
11585 * svg/svg.pltsuite:
11586
115872006-12-26 Eric Seidel <eric@webkit.org>
11588
11589 Reviewed by olliej.
11590
11591 * svg/svg.pltsuite: re-enable word-iso.svg after fixing http://bugs.webkit.org/show_bug.cgi?id=11987
11592
115932006-12-26 Eric Seidel <eric@webkit.org>
11594
11595 Reviewed by bradee-oh.
jonlee@apple.com0efe85f2016-01-08 04:29:42 +000011596
abarth@webkit.org7afc6e02011-02-04 00:49:03 +000011597 Add new PageLoadTests directory (this one)
11598 Add LICENSES file to explain where each SVG came from.
11599
11600 * ChangeLog: Added.
11601 * svg/LICENSES: Added.
11602 * svg/files/33041-Samurai.svg: Added.
11603 * svg/files/42470-flower_from_my_garden_v2.svg: Added.
11604 * svg/files/Harvey_Rayner.svg: Added.
11605 * svg/files/az-lizard_benji_park_01.svg: Added.
11606 * svg/files/bamboo_01.svg: Added.
11607 * svg/files/cacuts_01.svg: Added.
11608 * svg/files/cowboy.svg: Added.
11609 * svg/files/crawfish2_ganson.svg: Added.
11610 * svg/files/deb9frac1.svg: Added.
11611 * svg/files/food_leif_lodahl_01.svg: Added.
11612 * svg/files/france.svg: Added.
11613 * svg/files/francobollo_gnome_ezechi_02.svg: Added.
11614 * svg/files/gearflowers.svg: Added.
11615 * svg/files/hereGear4.svg: Added.
11616 * svg/files/mtsthelens.svg: Added.
11617 * svg/files/mtsthelens0.jpg: Added.
11618 * svg/files/world-iso.svg: Added.
11619 * svg/files/worldcup.svg: Added.
11620 * svg/svg.pltsuite: Added.
11621