1 2015-10-12 Jon Lee <jonlee@apple.com>
3 Add canvas line dash test
4 https://bugs.webkit.org/show_bug.cgi?id=150078
5 <rdar://problem/23082347>
7 Reviewed by Dean Jackson.
9 * Animometer/runner/resources/tests.js: Add line dash test.
10 * Animometer/tests/simple/resources/simple-canvas-paths.js:
11 (CanvasLineDashStage): Create a new stage with a default dash pattern and stroke style.
12 Maintain a step which will animate the dash.
13 (CanvasLineDashStage.prototype.animate): Render the line path with the dash. Increment
14 the dash offset to animate.
15 (CanvasPathBenchmark.prototype.createStage): Add the test.
17 2015-10-12 Jon Lee <jonlee@apple.com>
19 Add canvas line path tests
20 https://bugs.webkit.org/show_bug.cgi?id=150076
21 <rdar://problem/23082285>
23 Reviewed by Dean Jackson.
25 * Animometer/runner/resources/tests.js: Add new line path tests, with different
27 * Animometer/tests/simple/resources/simple-canvas-paths.js:
28 (CanvasLinePathStage): The stage is the same as the SimpleCanvasPathStrokeStage
29 but sets the lineJoin on the context.
30 (CanvasPathBenchmark.prototype.createStage): Add the tests.
32 2015-10-12 Jon Lee <jonlee@apple.com>
34 Add missing paint objects for arc and arcTo fills
35 https://bugs.webkit.org/show_bug.cgi?id=150075
36 <rdar://problem/23082233>
38 Reviewed by Dean Jackson.
40 * Animometer/tests/simple/resources/simple-canvas-paths.js: Add missing paint objects
41 for arcTo and arc segment fills.
42 (CanvasArcToSegmentFill):
43 (CanvasArcToSegmentFill.prototype.draw):
44 (CanvasArcSegmentFill):
45 (CanvasArcSegmentFill.prototype.draw):
47 2015-10-12 Jon Lee <jonlee@apple.com>
49 Add canvas line segment tests
50 https://bugs.webkit.org/show_bug.cgi?id=150073
51 <rdar://problem/23082138>
53 Reviewed by Dean Jackson.
55 * Animometer/runner/resources/tests.js: Add new line segment tests, with different
57 * Animometer/tests/simple/resources/simple-canvas-paths.js:
58 (CanvasLineSegment): Add new line segment paint object.
59 (CanvasLineSegmentStage): Create a new stage that sets the lineCap.
61 2015-10-12 Jon Lee <jonlee@apple.com>
63 Add canvas path fill tests
64 https://bugs.webkit.org/show_bug.cgi?id=150071
65 <rdar://problem/23082001>
67 Reviewed by Dean Jackson.
69 * Animometer/runner/resources/tests.js: Add new pathTypes for path fills.
70 * Animometer/tests/simple/resources/simple-canvas-paths.js:
71 (CanvasLinePoint): Add basic point for a line, and call lineTo.
72 (SimpleCanvasPathFillStage): Add a new stage similar to SimpleCanvasPathStrokeStage.
73 (CanvasPathBenchmark.prototype.createStage): Add the tests.
75 2015-10-12 Jon Lee <jonlee@apple.com>
78 https://bugs.webkit.org/show_bug.cgi?id=150067
79 rdar://problem/23081463
81 Reviewed by Dean Jackson.
83 * Animometer/runner/resources/tests.js: Add a quadratic and bezier path test.
85 * Animometer/tests/simple/resources/simple-canvas.js:
86 (SimpleCanvasStage.prototype.tune): This kind of test joins all of the segments
87 into one long path, and tries to render that one path. Random points make it
88 difficult to tell what is going on, so add a parameter to the constructor to
89 confine the area where the random coordinates can land. The more complicated the
90 case is, the larger an area the path will cover. Add an artificial minimum so
91 that the first 200 points aren't confined to a space that is too small.
93 * Animometer/tests/simple/resources/simple-canvas-paths.js:
94 (SimpleCanvasPathStrokeStage): Add a new kind of stage that inherits from
95 SimpleCanvasStage. Each time the frame animates a random line width and stroke
96 color are chosen. The path setup is done outside of each paint object.
97 (CanvasQuadraticPoint): This point just calls quadraticCurveTo.
98 (CanvasPathBenchmark.prototype.createStage): Add the tests.
100 2015-10-12 Jon Lee <jonlee@apple.com>
102 Add basic canvas tests
103 https://bugs.webkit.org/show_bug.cgi?id=150066
104 rdar://problem/23081143
106 Reviewed by Dean Jackson.
108 This adds a new test suite that will cover all of the path-based canvas calls.
109 The patch will be divided up to cover tests with similar techniques.
111 The simplest version uses a SimpleCanvasStage.
113 * Animometer/runner/resources/tests.js: Add tests for quadratic, bezier, arcTo,
114 arc, and rect segments. Also include arcTo, arc, and rect fills.
115 * Animometer/tests/resources/stage.js:
116 (Stage.prototype.randomBool): Added for counterclockwise property for arc segments.
117 (Stage.prototype.randomInt): Fix how values are rounded, used by randomBool. It should
118 round instead of flooring everything.
119 * Animometer/tests/simple/resources/simple-canvas.js: Added. Defines common classes
120 used by all simple canvas tests. The page reads best bottom to top.
121 (SimpleCanvasStage): Basic stage. Pass a canvasObject which will be used to create new
122 objects as needed in tune().
123 (SimpleCanvasStage.prototype.tune): Modeled on other tests. Adds and removed objects
124 as specified by the provided |count|.
125 (SimpleCanvasStage.prototype.animate): Iterate over all the objects and ask them to draw.
126 There is no "animating" of the objects; they will just paint statically on the canvas.
127 (SimpleCanvasAnimator): Basic animator clears the canvas prior to painting.
128 (SimpleCanvasBenchmark): Hard-code the feedback loop parameters instead of including
129 them in the query parameters to the test URLs.
130 (SimpleCanvasBenchmark.prototype.createAnimator):
131 * Animometer/tests/simple/simple-canvas-paths.html: Added.
133 * Animometer/tests/simple/resources/simple-canvas-paths.js: Added. There is no "animating"
134 of these objects--they just paint statically on the canvas.
135 (CanvasQuadraticSegment): Paint a quadratic segment stroke.
136 (CanvasBezierSegment): Paint a bezier segment stroke.
137 (CanvasArcToSegment): Paint an arcTo stroke.
138 (CanvasArcSegment): Paint an arc stroke.
139 (CanvasRect): Paint a rect.
140 (CanvasRectFill): Paint a filled rect.
142 (CanvasPathBenchmark):
143 (CanvasPathBenchmark.prototype.createStage): Look for the pathType and create the
144 stage using the right paint object.
145 (window.benchmarkClient.create):
147 2015-10-12 Jon Lee <jonlee@apple.com>
149 Refactor tune() to pass in an integer-based count
150 https://bugs.webkit.org/show_bug.cgi?id=150060
151 <rdar://problem/23079425>
153 Reviewed by Dean Jackson.
155 All of the tune functions do an initial step of flooring the
156 # of painting objects to add or remove. Factor that out since
157 the complexity of all of these tests is always expressed in terms
160 * Animometer/tests/resources/main.js:
161 (Benchmark.prototype.update): Update the tuneValue.
163 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
164 (BouncingParticlesStage.prototype.tune): Remove the count adjustment.
165 * Animometer/tests/examples/resources/canvas-electrons.js:
166 (CanvasElectronsStage.prototype.tune): Ditto.
167 * Animometer/tests/examples/resources/canvas-stars.js:
168 (CanvasStarsStage.prototype.tune): Ditto.
169 * Animometer/tests/text/resources/layering-text.js:
170 (LayeringTextStage.prototype.tune): Ditto.
172 2015-10-12 Jon Lee <jonlee@apple.com>
174 Store test-interval in localStorage
175 https://bugs.webkit.org/show_bug.cgi?id=150055
176 <rdar://problem/23078879>
178 Reviewed by Dean Jackson.
180 * Animometer/runner/resources/animometer.js:
181 (populateSettings): Keep track of the specified test interval in localStorage
182 to make it easy to repeat a test suite.
184 2015-10-12 Jon Lee <jonlee@apple.com>
186 Remove "../tests/" from the URLs of all tests
187 https://bugs.webkit.org/show_bug.cgi?id=150054
188 <rdar://problem/23078784>
190 Reviewed by Dean Jackson.
192 Presumably all tests will be running from the tests/ directory,
193 so we don't have to specify it in all of the test URLs.
195 * Animometer/runner/resources/benchmark-runner.js:
196 (BenchmarkRunnerState.prototype.prepareCurrentTest): Prepend
197 "../tests/" to all tests.
198 * Animometer/runner/resources/tests.js: Remove "../tests/" from
201 2015-10-12 Jon Lee <jonlee@apple.com>
203 Refactor test suites to a separate class.
204 https://bugs.webkit.org/show_bug.cgi?id=150053
205 <rdar://problem/23078645>
207 Reviewed by Dean Jackson.
209 Create a Suite class to refactor out prepare() and run().
210 Generate the checkboxes representing the suites using Suites
211 instead of maintaining a separate list. Also, save the
212 selections out to localStorage.
214 * Animometer/runner/animometer.html: Remove the explicitly listed
215 suites. These will be generated from Suites instead.
216 * Animometer/runner/resources/animometer.js:
217 (populateSettings): Iterate through Suites, and create the
218 label and checkbox. Attach the Suite object to the checkbox so
219 when the benchmark is started, we get direct access. Initialize
220 the checkmark based on its value in localStorage. Set this to
221 run when DOMContentLoaded is dispatched.
222 (startBenchmark): Grab all of the checkboxes, inspect their
223 values, add it to enabledSuites if selected. Remember whether
224 the suite was enabled in localStorage, so that it's easy to do
226 * Animometer/runner/resources/tests.js:
227 (Suite): Create a new Suite class. Refactor out prepare() and
228 run(), since all of them have the same implementation. Populate
229 Suites with Suite instances instead of generic objects.
231 2015-10-12 Jon Lee <jonlee@apple.com>
233 Update graph styles for legibility.
234 https://bugs.webkit.org/show_bug.cgi?id=150052
235 <rdar://problem/23078503>
237 Reviewed by Dean Jackson.
239 * Animometer/runner/resources/animometer.css: Update colors and
240 stroke thicknesses to make the graphs easier to read.
241 (.smaple-time): Correct to .sample-time
242 * Animometer/runner/resources/graph.js:
245 2015-10-12 Jon Lee <jonlee@apple.com>
247 Update graph styles for legibility.
248 https://bugs.webkit.org/show_bug.cgi?id=150052
249 <rdar://problem/23078503>
251 Reviewed by Dean Jackson.
253 * Animometer/runner/resources/animometer.css: Update colors and
254 stroke thicknesses to make the graphs easier to read.
255 (.smaple-time): Correct to .sample-time
256 * Animometer/runner/resources/graph.js:
259 2015-10-12 Filip Pizlo <fpizlo@apple.com>
261 Unreviewed, revert an unintended commit.
263 * JetStream/Octane2/crypto.js:
267 2015-10-05 Said Abou-Hallawa <sabouhallawa@apple.com>
269 Add a graphics benchmark
270 https://bugs.webkit.org/show_bug.cgi?id=149053
271 <rdar://problem/18984169>
273 Reviewed by Dean Jackson.
275 Instead of measuring the FPS of the animation, this benchmark measures the
276 test complexity when rendering at a set-point FPS which should be lower
277 than 60 FPS. This benchmark tries to stay at the set-point FPS by using
278 a closed loop control system PID function. The gain of the system is passed
279 as a parameter when running the test. Measuring the FPS faithfully results
280 very fluctuating values. A Kalman filter is used to give a better estimate
283 The animation of the tests is done manually. requestAnimationFrame() is
284 called with a callback. Inside this callback, the test is animating by
285 changing the positions of the elements inside the page. The test complexity
286 may change also if the current FPS is not equal to the desired FPS.
288 In this patch, the benchmark and the tests are included. The shared code
289 and the tests runner are included in separate patches.
291 * Animometer/runner/animometer.html:
292 * Animometer/runner/resources/animometer.js:
293 Add two new examples for more complex animation techniques.
294 Add an option to show/hide the test running results which is off by default.
296 * Animometer/runner/resources/tests.js: Added.
297 (suiteFromName): Returns a suite given its name.
298 (testFromName): Returns a test given its suite and name.
300 * Animometer/tests: Added.
301 This directory includes all the test suites to be run by the benchmark.
302 runner. All the tests should try to run on three stages: CSS, canvas and
305 * Animometer/tests/bouncing-particles: Added.
306 * Animometer/tests/bouncing-particles/resources: Added.
307 The bouncing particles test is an example of a simple animation technique.
309 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Added.
310 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.
311 * Animometer/tests/bouncing-particles/bouncing-css-images.html: Added.
312 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html: Added.
313 * Animometer/tests/bouncing-particles/bouncing-svg-images.html: Added.
314 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Added.
315 Bouncing particles test pages.
317 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js: Added.
318 (BouncingParticle): Base class for a bouncing particle.
319 (BouncingParticle.prototype.center): Returns the center point or the particle.
320 (BouncingParticle.prototype.animate): Moves the particle based on its current position, angle and velocity.
322 (BouncingParticlesAnimator): A sub class of Animator.
324 (BouncingParticlesStage): Represents the container of all the bouncing particles.
325 (BouncingParticlesStage.prototype.parseShapeParamters): Gets the shape parameters for shape animating tests.
326 (BouncingParticlesStage.prototype.randomRotater): Creates a rotater for the particles.
327 (BouncingParticlesStage.prototype.animate): Animates all the particles.
328 (BouncingParticlesStage.prototype.tune): Changes the test by adding or removing particles.
330 (BouncingParticlesBenchmark): Runs the benchmark for bouncing particles test.
331 (BouncingParticlesBenchmark.prototype.createAnimator): Creates an animator of type BouncingParticlesAnimator.
333 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.
334 (BouncingCssShape): A sub class of BouncingParticle for animating CSS shapes.
335 (BouncingCssShape.prototype._createSpan): Creates a <span> element and takes the shape and clipping classes into consideration.
336 (BouncingCssShape.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
337 (BouncingCssShape.prototype.animate): Rotates and moves the shape to a new location.
339 (BouncingCssShapesStage): A sub class of BouncingParticlesStage for animating CSS shapes.
340 (BouncingCssShapesStage.prototype.createParticle): Creates a particle of type BouncingCssShape.
341 (BouncingCssShapesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
343 (BouncingCssShapesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS shapes.
344 (BouncingCssShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCssShapesStage.
345 (window.benchmarkClient.create): Creates a benchmark of type BouncingCssShapesBenchmark.
347 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js: Added.
348 (BouncingCssImage): A sub class of BouncingParticle for animating CSS images.
349 (BouncingCssImage.prototype._move): Move the particle to a new location. Apply transform since it does not require layout.
350 (BouncingCssImage.prototype.animate): Rotates and moves the shape to a new location.
352 (BouncingCssImagesStage): A sub class of BouncingParticlesStage for animating CSS images.
353 (BouncingCssImagesStage.prototype.createParticle): Creates a particle of type BouncingCssImage.
354 (BouncingCssImagesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
356 (BouncingCssImagesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS images.
357 (BouncingCssImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCssImagesStage.
358 (window.benchmarkClient.create): Creates a benchmark of type BouncingCssImagesBenchmark.
360 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.
361 (BouncingCanvasParticle): A base sub-class of BouncingParticle for animating canvas particles.
362 (BouncingCanvasParticle.prototype._applyRotation): Apply the particle rotation-around-center transform to the canvas context.
363 (BouncingCanvasParticle.prototype._applyClipping): Apply the particle clipping to the canvas context.
364 (BouncingCanvasParticle.prototype._draw): A non-implemented version of the drawing function.
365 (BouncingCanvasParticle.prototype.animate): Carries out all the steps to redraw the canvas particle.
367 (BouncingCanvasParticlesStage): A base sub-class of BouncingParticlesStage for animating canvas particles.
369 (BouncingCanvasParticlesAnimator): A concrete sub-class of BouncingParticlesAnimator for animating canvas particles.
370 (BouncingCanvasParticlesAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
372 (BouncingCanvasParticlesBenchmark): A base sub-class of StageBenchmark for animating canvas particles.
373 (BouncingCanvasParticlesBenchmark.prototype.createAnimator): Creates the canvas particles animator.
375 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.
376 (BouncingCanvasShape): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
377 (BouncingCanvasShape.prototype._applyFill): Sets the fillStyle in the canvas context.
378 (BouncingCanvasShape.prototype._drawShape): Carries out the actual drawing.
379 (BouncingCanvasShape.prototype._draw): Carries out all the steps to draw the shape.
381 (BouncingCanvasShapesStage): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
382 (BouncingCanvasShapesStage.prototype.createParticle): Creates a particle of type BouncingCanvasShape.
384 (BouncingCanvasShapesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas shapes.
385 (BouncingCanvasShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasShapesStage.
386 (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasShapesBenchmark.
388 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.
389 (BouncingCanvasImage): A concrete sub-class of BouncingCanvasParticle for animating canvas images.
390 (BouncingCanvasImage.prototype._draw): Draws an image on the context of a canvas.
392 (BouncingCanvasImagesStage): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
393 (BouncingCanvasImagesStage.prototype.createParticle): Creates a particle of type BouncingCanvasImage.
395 (BouncingCanvasImagesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
396 (BouncingCanvasImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasImagesStage.
397 (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasImagesBenchmark.
399 * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.
400 (BouncingSvgParticle): A base sub-class of BouncingParticle for animating SVG particles.
401 (BouncingSvgParticle.prototype._applyClipping): Apply the particle clipping by setting the 'clip-path' attribute of the SVGElement.
402 (BouncingSvgParticle.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
403 (BouncingSvgParticle.prototype.animate): Rotates and moves the shape to a new location.
404 (BouncingSvgParticlesStage): A sub class of BouncingParticlesStage for animating SVGElements.
405 (BouncingSvgParticlesStage.prototype._createDefs): Creates an SVGDefsElement.
406 (BouncingSvgParticlesStage.prototype._ensureDefsIsCreated): Ensures there is only one SVGDefsElement is created.
407 (BouncingSvgParticlesStage.prototype._createClipStar): Creates an SVGClipPathElement and sets its 'd' attribute to a star like shape.
408 (BouncingSvgParticlesStage.prototype.ensureClipStarIsCreated): Ensure there is only one star SVGClipPathElement is created.
409 (BouncingSvgParticlesStage.prototype.particleWillBeRemoved): Remove the corresponding element form the parent children list.
411 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.
412 (BouncingSvgShape): A concrete sub-class of BouncingSVGParticle for animating SVG shapes.
413 (BouncingSvgShape.prototype._createShape): Creates an SVG shape.
414 (BouncingSvgShape.prototype._applyFill): Applies the selected fill style to the SVG shape.
416 (BouncingSvgShapesStage): A concrete sub-class of BouncingSvgParticlesStage for animating SVG shapes.
417 (BouncingSvgShapesStage.prototype.createGradient): Creates an SVGLinearGradientElement.
418 (BouncingSvgShapesStage.prototype.createParticle): Creates a particle of type BouncingSvgShape.
419 (BouncingSvgShapesStage.prototype.particleWillBeRemoved): Ensures the attached SVGLinearGradientElement is removed from the SVGDefsElement.
421 (BouncingSvgShapesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
422 (BouncingSvgShapesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgShapesStage.
423 (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgShapesBenchmark.
425 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.
426 (BouncingSvgImage): A concrete sub-class of BouncingSVGParticle for animating SVG images.
428 (BouncingSvgImagesStage): A concrete sub-class of BouncingSVGParticlesBenchmark for animating SVG images.
429 (BouncingSvgImagesStage.prototype.createParticle): Creates a particle of type BouncingSvgImage.
431 (BouncingSvgImagesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
432 (BouncingSvgImagesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgImagesStage.
433 (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgImagesBenchmark.
435 * Animometer/tests/examples: Added.
436 * Animometer/tests/examples/canvas-electrons.html: Added.
437 * Animometer/tests/examples/canvas-stars.html: Added.
440 * Animometer/tests/examples/resources: Added.
441 * Animometer/tests/examples/resources/canvas-electrons.js: Added.
442 (CanvasElectron): An object which draws and animate a electron object on a canvas stage.
443 (CanvasElectron.prototype._draw): Draws the electron object.
444 (CanvasElectron.prototype.animate): Animates the electron object.
446 (CanvasElectronsStage): A concrete sub-class of Stage for animating electrons.
447 (CanvasElectronsStage.prototype.tune): Changes the test by adding or removing elements.
448 (CanvasElectronsStage.prototype.animate): Animates the test elements.
450 (CanvasElectronsAnimator): A concrete sub-class of StageAnimator for animating canvas electrons.
451 (CanvasElectronsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
453 (CanvasElectronsBenchmark): A concrete sub-class of StageBenchmark for animating electrons.
454 (CanvasElectronsBenchmark.prototype.createStage): Creates a stage of CanvasElectronsStage.
455 (CanvasElectronsBenchmark.prototype.createAnimator): Creates an animator of type CanvasElectronsAnimator.
456 (window.benchmarkClient.create): Creates a benchmark of type CanvasElectronsBenchmark.
458 * Animometer/tests/examples/resources/canvas-stars.js: Added.
459 (CanvasStar): An object which draws and animate a star object on a canvas stage.
460 (CanvasStar.prototype._draw): Draws the star object.
461 (CanvasStar.prototype.animate): Animates the star object.
463 (CanvasStarsStage): A concrete sub-class of Stage for animating stars.
464 (CanvasStarsStage.prototype.tune): Changes the test by adding or removing elements.
465 (CanvasStarsStage.prototype.animate): Animates the test elements.
467 (CanvasStarsAnimator): A concrete sub-class of StageAnimator for animating canvas stars.
468 (CanvasStarsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
470 (CanvasStarsBenchmark): A concrete sub-class of Benchmark for animating stars.
471 (CanvasStarsBenchmark.prototype.createStage): Creates a stage of CanvasStarsStage.
472 (CanvasStarsBenchmark.prototype.createAnimator): Creates an animator of type CanvasStarsAnimator.
473 (window.benchmarkClient.create): Creates a benchmark of type CanvasStarsBenchmark.
475 * Animometer/tests/resources: Added.
476 This directory includes the script which is required to run an adaptive
477 graphics benchmark. From an empty test page, the set of classes in this
478 directory are responsible for measuring the current frame rate and
479 changing the test to reach a desired FPS. It keeps asking the test page
480 to tune itself by a certain value to increase or decrease the frame rate.
481 It's also responsible for sampling the test state and the corresponding
484 * Animometer/tests/resources/main.js: Added.
485 (BenchmarkState): Tracks the state of the benchmark test.
486 (BenchmarkState.prototype._timeOffset): Returns the timeOffset of a stage.
487 (BenchmarkState.prototype._message): Returns the message of a stage.
488 (BenchmarkState.prototype.update): Sets the currentTimeOffset to a new value.
489 (BenchmarkState.prototype.samplingTimeOffset): Returns the timeOffset of the sampling stage.
490 (BenchmarkState.prototype.currentStage): Returns the current stage of the benchmark.
491 (BenchmarkState.prototype.currentMessage): Returns the message of the current stage and timeOffset.
492 (BenchmarkState.prototype.currentProgress): Returns a percentage of how much the benchmark is running.
494 (Animator): Manages animating the test.
495 (Animator.prototype.start): Called if animating using setInterval is requested.
496 (Animator.prototype.timeDelta): Returns the current timeDelta
497 (Animator.prototype.animate): Manages the test animation.
498 (Animator.prototype.animateLoop): Called if animating using requestAnimationFrame is requested.
500 (Benchmark): Manages running the test benchmark and recording the sampled data.
501 (Benchmark.prototype.start): Starts the benchmark.
502 (Benchmark.prototype.update): Called from the animator.animate() to change the complexity of the test.
503 (Benchmark.prototype.record): Shows the current (not final) results of the benchmark.
504 (Benchmark.prototype.resolveWhenFinished): Spins until the benchmark is finished and returns its results.
505 (Benchmark.prototype.run): Starts the test, runs it, waits until it is finished and return its results.
506 (window.runBenchmark): Called from the benchmark runner through the suite controller run-callback.
508 * Animometer/tests/resources/math.js: Added.
509 (Matrix): A matrix object.
510 (Vector3): A vector of size 3 object.
511 (Matrix3): A matrix of size 3x3 object.
513 (PIDController): Closed-loop controller for a set-point y.
514 (PIDController.prototype._sat): Limits the output to a certain range.
515 (PIDController.prototype.tune): Given the current output of a system, it produces a new pid value for tuning it.
517 (KalmanEstimator): Implement Kalman filter to get an estimate for a sampled data point.
518 (KalmanEstimator.prototype.estimate): Returns an estimate for for a sampled data point.
520 * Animometer/tests/resources/utilities.js: Added.
521 (window.Utilities._parse): Given a separator character, it pareses a string to a set of <key, value> pairs.
522 (window.Utilities.parseParameters): Parses a test parameters.
523 (window.Utilities.parseArguments): Parses a tag arguments.
524 (window.Utilities.extendObject): Adds the attributes and their values of an object to another object.
525 (window.Utilities.copyObject): Copies the attributes and their values of an object to a new object.
526 (window.Utilities.mergeObjects): Copies the attributes and their values of two objects to a new object.
527 (window.Utilities.createSvgElement): Creates an SVGElement given its name and its attributes.
529 * Animometer/tests/resources/stage.css: Added.
530 * Animometer/tests/resources/stage.js: Added.
531 (Rotater): Manages rotating an angle within a fixed time interval.
532 (Rotater.prototype.get interval): Returns the time interval which is required to rotate 360 degrees.
533 (Rotater.prototype.next): Moves the current time by a delta.
534 (Rotater.prototype.degree): Returns the current rotating degree.
535 (Rotater.prototype.rotateZ): Returns CSS formatted transform rotateZ() string for the current degree.
536 (Rotater.prototype.rotate): Returns SVG formatted transform rotate() string for the current degree.
538 (Stage): A base class for managing the test complexity and test animation.
539 (Stage.prototype.get size): Returns the size of the stage excluding the CSS padding.
540 (Stage.prototype.random): Returns a random float.
541 (Stage.prototype.randomInt): Returns a random integer.
542 (Stage.prototype.randomPosition): Returns a random position.
543 (Stage.prototype.randomSquareSize): Returns a square size.
544 (Stage.prototype.randomVelocity): Returns a random velocity.
545 (Stage.prototype.randomAngle): Returns a random angle.
546 (Stage.prototype.randomColor): Returns a random color not too dark and not too light.
547 (Stage.prototype.randomRotater): Creates a random rotater. Its velocity depends on choosing a random rotation time interval.
548 (Stage.prototype.tune): A not-implemented version of this function.
549 (Stage.prototype.animate): A not-implemented version of this function.
550 (Stage.prototype.clear): Clears the stage from all its animation elements.
552 (StageAnimator): A base class for the stage-based animators.
553 (StageAnimator.prototype.animate): Calls Animator.animate() which updates the test page and then calls Stage.animate() to force redraw.
555 (StageBenchmark): A base class for the stage-based benchmarks.
556 (StageBenchmark.prototype.createStage): Creates the default stage.
557 (StageBenchmark.prototype.createAnimator): Creates the default animator.
558 (StageBenchmark.prototype.tune): Delegates the call to stage.
559 (StageBenchmark.prototype.clear): Delegates the call to stage.
560 (StageBenchmark.prototype.showResults): Shows the results/progress through its recordTable and progressBar.
562 * Animometer/tests/resources/yin-yang.png: Added.
563 * Animometer/tests/resources/yin-yang.svg: Added.
564 These images are shared among all the tests.
566 * Animometer/tests/template: Added.
567 * Animometer/tests/template/resources: Added.
568 This directory includes template tests which do nothing. They can be used
569 to author new tests. Animated items can be created, moved and redrawn by
570 removing the TODO comments in the script files and writing actual code.
572 * Animometer/tests/template/template-css.html: Added.
573 * Animometer/tests/template/template-canvas.html: Added.
574 * Animometer/tests/template/template-svg.html: Added.
575 Template test pages. They can be used as they are. CSS attributes or hidden
576 elements can be added to these derived test pages if needed.
578 * Animometer/tests/template/resources/template-css.js: Added.
580 (TemplateCssStage): A stage to create and animate HTMLElements.
581 (TemplateCssStage.prototype.tune): Changes the test by adding or removing elements.
582 (TemplateCssStage.prototype.animate): Animates the test elements.
583 (TemplateCssBenchmark):
584 (TemplateCssBenchmark.prototype.createStage): Creates the test stage.
585 (window.benchmarkClient.create): Creates a benchmark of type TemplateCssBenchmark.
587 * Animometer/tests/template/resources/template-canvas.js: Added.
588 (TemplateCanvasObject):
589 (TemplateCanvasObject.prototype._draw): Draws the objects on the canvas context.
590 (TemplateCanvasObject.prototype.animate): Moves and redraws the object.
591 (TemplateCanvasStage): A stage to create and animate drawing elements.
592 (TemplateCanvasStage.prototype.tune): hanges the test by adding or removing elements.
593 (TemplateCanvasStage.prototype.animate): Animates the test elements.
594 (TemplateCanvasAnimator.prototype.animate): Starts the animation every frame.
595 (TemplateCanvasBenchmark):
596 (TemplateCanvasBenchmark.prototype.createStage): Creates a stage of type TemplateCanvasStage.
597 (TemplateCanvasBenchmark.prototype.createAnimator): Creates a animator of type TemplateCanvasAnimator.
598 (window.benchmarkClient.create): Creates a benchmark of type TemplateCanvasBenchmark.
600 * Animometer/tests/template/resources/template-svg.js: Added.
601 (TemplateSvgStage): A stage to create and animate SVGElements.
602 (TemplateSvgStage.prototype.tune): Changes the test by adding or removing elements.
603 (TemplateSvgStage.prototype.animate): Animates the test elements.
604 (TemplateSvgBenchmark.prototype.createStage): Creates a stage of type TemplateSvgStage.
605 (window.benchmarkClient.create): Creates a benchmark of type TemplateSvgBenchmark.
607 * Animometer/tests/text: Added.
608 * Animometer/tests/text/resources: Added.
609 This directory includes the text animating tests which currently runs
612 * Animometer/tests/text/layering-text.html: Added.
615 * Animometer/tests/text/resources/layering-text.js: Added.
616 (LayeringTextStage): Represents the container of all the stacked text layers.
617 (LayeringTextStage.parseTextItem): Parses a textItem which may be an opening tag, a closing tag or a self-closing tag.
618 (LayeringTextStage.isOpeningTextItem): Returns true if the textItem is an opening tag e.g. '<ol>'.
619 (LayeringTextStage.isClosingTextItem): Returns true if the textItem is an closing tag e.g. '</ol>.
620 (LayeringTextStage.textItemsFlags.LayeringTextStage.textItems.map): Calculates and stores isOpening and isClosing flags for each textItem.
621 (LayeringTextStage.isColorableTextItem): Returns true if the textItem is self-closing tag e.g. '<p>...</p>'.
622 (LayeringTextStage.isInsertableTextItem): Returns true if the textItems causes a new element to be added to the text layers.
623 (LayeringTextStage.colorableTextItems.LayeringTextStage.textItemsFlags.filter): Number of colorable textItems.
624 (LayeringTextStage.insertableTextItems.LayeringTextStage.textItemsFlags.filter): Number of insertable textItems.
625 (LayeringTextStage.colorIndexToTextElementIndex): Maps from colorIndex [0..colorableTextItems-1] to textElementIndex [0..insertableTextItems-1].
626 (LayeringTextStage.prototype._nextTextItem): Moves the _textItemIndex one step forward in a loop [0..LayeringTextStage.textItems.length-1].
627 (LayeringTextStage.prototype._previousTextItem): Moves the _textItemIndex one step backward in a loop.
628 (LayeringTextStage.prototype._pushTextElement): Creates a new textItemElement and adds it to the topmost container <div>.
629 (LayeringTextStage.prototype._popTextElement): Removes the last textItemElement from the topmost container <div>.
630 (LayeringTextStage.prototype._colorTextItem): Changes the background color of a single colorable textElement. The index advances in a circle [0..colorableTextItems-1].
631 (LayeringTextStage.prototype.animate): Changes the background color and the text color of the textElements such that a redraw is enforced.
632 (LayeringTextStage.prototype.tune): Adds or removes textElements to the stage.
634 (LayeringTextBenchmark): Runs the benchmark for the layering text test.
635 (LayeringTextBenchmark.prototype.createStage): Creates a stage of type LayeringTextStage.
636 (window.benchmarkClient.create): Creates a benchmark of type LayeringTextBenchmark.
638 2015-10-02 Said Abou-Hallawa <sabouhallawa@apple.com>
640 Add shared code for a new a graphics benchmark
641 https://bugs.webkit.org/show_bug.cgi?id=149691
643 Reviewed by Ryosuke Niwa.
645 This set of classes will be shared and used by the tests and the runner
646 of a new graphics benchmark.
648 * Animometer/resources: Added.
649 * Animometer/resources/algorithm.js: Added.
650 (Array.prototype.swap): Swaps two elements in an array.
651 (Heap): Binary Min/Max Heap object
652 (Heap.prototype._parentIndex): Given the child node index, it returns the parent index.
653 (Heap.prototype._leftIndex): Given the parent node index, it returns the left node index.
654 (Heap.prototype._rightIndex): Given the parent node index, it returns the right node index.
655 (Heap.prototype._childIndex): Given the parent node index, it returns the child index that may violate the heap property.
656 (Heap.prototype.init): Initializes the heap state.
657 (Heap.prototype.top): Returns the value stored at the top of the heap.
658 (Heap.prototype.push): Pushes a new node at the top of the heap.
659 (Heap.prototype.pop): Extracts the top node of the heap.
660 (Heap.prototype._bubble): Fixes the heap property by moving upward.
661 (Heap.prototype._sink): Fixes the heap property by moving downward.
662 (Heap.prototype.str): Prints the nodes of the heap to a string.
663 (Heap.prototype.values): Returns the last "size" heap elements values.
665 (Algorithm.createMinHeap): Creates a size-bounded min-heap object.
666 (Algorithm.createMaxHeap): Creates a size-bounded max-heap object.
668 * Animometer/resources/extensions.js: Added.
669 (Point): Point object but can be used as size also.
670 (Point.pointOnCircle): Given, the radius of the circle and the angle of the point, it returns a point object.
671 (Point.pointOnEllipse): Given, the radiuses of the ellipse and the angle of the point, it returns a point object.
672 (Point.prototype.get width): Should be called when the point is used as size.
673 (Point.prototype.get height): Should be called when the point is used as size.
674 (Point.prototype.get center): Should be called when the point is used as size.
675 (Point.prototype.add): Returns a new point = this + other.
676 (Point.prototype.subtract): Returns a new point = this - other.
677 (Point.prototype.multiply): Returns a new point = this * other.
678 (Point.prototype.move): Moves the point in a given direction, velocity, time period.
680 (Insets): Represents borders of a container.
681 (Insets.prototype.get width): Returns left + right.
682 (Insets.prototype.get height): Returns top + bottom.
685 (SimplePromise.prototype.then):
686 (SimplePromise.prototype.resolve):
687 Moved from Animometer/runner/resources/benchmark-runner.js since tests also need it.
689 (Options): Benchmark running options as they are set by the user.
691 (ProgressBar): Manages a progress bar element. The progress bar is divided into equal length ranges.
692 (ProgressBar.prototype._progressToPercent): Converts the progress into a percentage.
693 (ProgressBar.prototype.incRange): Moves to the next range (a range is the running time of a single test).
694 (ProgressBar.prototype.setPos): Draws the current progress in the current range.
696 (RecordTable): Shows the results of running a benchmark in a tabular form.
697 (RecordTable.prototype.clear): Clears the results table.
698 (RecordTable.prototype._showTitles): Shows the header titles and appends the sub-titles to a queue.
699 (RecordTable.prototype._showHeader): Shows the table header titles.
700 (RecordTable.prototype._showEmpty): Shows an empty table cell.
701 (RecordTable.prototype._showValue): Shows a number value in the results table.
702 (RecordTable.prototype._showSamples): Shows a button for the sampled data graph.
703 (RecordTable.prototype._showTest): Shows the results of a single test.
704 (RecordTable.prototype._showSuite): Shows the results of a single suite.
705 (RecordTable.prototype.showRecord): Shows a single iteration for a single test.
706 (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations.
708 * Animometer/resources/sampler.js: Added.
709 (Statistics.sampleMean): Returns the sample mean.
710 (Statistics.unbiasedSampleStandardDeviation): Returns the unbiased sample variance (i.e. with Bessel's correction)
711 (Statistics.geometricMean): Returns the geometric mean.
713 (Experiment): Represents a sampling experiment.
714 (Experiment.prototype._init): Called when the object is created and when startSampling() is called.
715 (Experiment.prototype.startSampling): Called after warmup period. Restarts collecting sampled data points.
716 (Experiment.prototype.sample): Add a new data point.
717 (Experiment.prototype.mean): Returns the sample mean for the current sampled data points.
718 (Experiment.prototype.standardDeviation): Returns the sample standard deviation for the current sampled data points.
719 (Experiment.prototype.percentage): Returns the percentage of the standard deviation divided to the mean.
720 (Experiment.prototype.confidenceIntervalDelta): Calculates the confidence delta for the current sampled data given a confidence level.
721 (Experiment.prototype.concern): Returns the average of the worst given percentage from the sampled data.
722 (Experiment.prototype.score): Returns a score for the sampled data. It is the geometric mean of sampleMean and concern.
724 (Sampler): Represents a compound experiment. It manages sampling multiple data points at the same time offset.
725 (Sampler.prototype.startSampling): Called after warming up period. Restarts collecting sampled data points.
726 (Sampler.prototype.sample): Add a new data vector at a given time offset.
728 2015-10-02 Said Abou-Hallawa <sabouhallawa@apple.com>
730 Add the test runner for a new a graphics benchmark
731 https://bugs.webkit.org/show_bug.cgi?id=149683
733 Reviewed by Ryosuke Niwa.
735 The test runner collects the selected test suites and the running options
736 from its home page. It loops through all the tests, runs them and collects
737 their running results. At the end, it shows summary results and a final
738 score. It can also show a chart for a test sampled data.
741 * Animometer/runner: Added.
742 * Animometer/runner/resources: Added.
744 * Animometer/runner/animometer.html: Added.
745 * Animometer/runner/resources/animometer.css: Added.
746 The benchmark runner page and css.
748 * Animometer/runner/resources/animometer.js: Added.
749 (window.benchmarkRunnerClient.willAddTestFrame): Called after the test <iframe> is created.
750 (window.benchmarkRunnerClient.didRunTest): Called after running a test is finished.
751 (window.benchmarkRunnerClient.willStartFirstIteration): Called at the beginning before running any test.
752 (window.benchmarkRunnerClient.didRunSuites): Called after running all tests of a suite.
753 (window.benchmarkRunnerClient.didFinishLastIteration): Called after running the last test.
755 (showSection): Shows a section in the animometer.html page.
756 (startTest): Called when the "Start Test" button is clicked.
757 (showResults): Called after finishing all the tests.
758 (showGraph): Called when "Click..." button in the "Samples" column of the results table is clicked
760 * Animometer/runner/resources/benchmark-runner.js: Copied from PerformanceTests/Speedometer/resources/benchmark-runner.js.
761 (BenchmarkRunnerState): Tracks the current running <suite, test>
762 (BenchmarkRunnerState.prototype.currentSuite): Returns the current running suite.
763 (BenchmarkRunnerState.prototype.currentTest): Returns the current running test.
764 (BenchmarkRunnerState.prototype.isFirstTest): Returns true if we are running the first test in the current suite.
765 (BenchmarkRunnerState.prototype.next): Advances to the next test.
766 (BenchmarkRunnerState.prototype.prepareCurrentTest): Creates a new <iframe> and waits for it to load a test.
768 (BenchmarkRunner): Manages running the tests and communicating with the benchmarkRunnerClient.
769 (BenchmarkRunner.prototype.waitForElement): Waits for an element to be created.
770 (BenchmarkRunner.prototype._appendFrame): Creates a new <iframe> element.
771 (BenchmarkRunner.prototype._removeFrame): Removed the current <iframe> element.
772 (BenchmarkRunner.prototype._runTestAndRecordResults): Runs the current test and saves its results.
773 (BenchmarkRunner.prototype.step): Either runs the current test if there is or start a new iteration.
774 (BenchmarkRunner.prototype.runAllSteps): Loops to run all the tests and move to the next iteration.
775 (this._runNextIteration): Starts a new iteration or show the results.
776 (BenchmarkRunner.prototype.runMultipleIterations): Loops to run all the iterations and show the results
777 (BenchmarkRunner.prototype._finalize): Finalizes the current iteration and starts a new one.
779 (SimplePromise): Deleted.
780 (SimplePromise.prototype.then): Deleted.
781 (SimplePromise.prototype.resolve): Deleted.
782 (BenchmarkTestStep): Deleted.
783 (Fibonacci): Deleted.
784 SimplePromise was moved t Animometer/resources/extensions.js because it is used by the runner and the tests.
786 (BenchmarkRunner.prototype._waitAndWarmUp): Deleted.
787 (BenchmarkRunner.prototype._runTest): Deleted.
788 (BenchmarkState.prototype.currentSuite): Deleted.
789 (BenchmarkState.prototype.currentTest): Deleted.
790 (BenchmarkState.prototype.next): Deleted.
791 (BenchmarkState.prototype.isFirstTest): Deleted.
792 (BenchmarkState.prototype.prepareCurrentSuite): Deleted.
793 BenchmarkState was renamed to BenchmarkRunnerState to not be confused with the tests BenchmarkState.
795 * Animometer/runner/resources/d3.min.js: Copied from Websites/perf.webkit.org/public/v2/js/d3/d3.min.js.
796 Needed for drawing charts for the sampled scores and frame rates.
798 * Animometer/runner/resources/graph.js: Added.
799 (graph): Draws a chart for a test sampled data. It shows two y-axes: one for the animated items and the second for FPS.
801 * Skipped: Skip the Animometer benchmark for now.
803 2015-08-27 Csaba Osztrogonác <ossy@webkit.org>
805 [EFL] REGRESSION(r188793): It made 200 layout tests and Bindings/event-target-wrapper.html performance test fail
806 https://bugs.webkit.org/show_bug.cgi?id=148470
808 Unreviewed gardening, skip the hanging test to make the performance bot work.
812 2015-08-17 Chris Dumez <cdumez@apple.com>
814 Add performance tests for traversal of collections returned by getElementsByClassName() / getElementsByTagName()
815 https://bugs.webkit.org/show_bug.cgi?id=148080
817 Reviewed by Antti Koivisto.
819 Add performance tests for traversal of *uncached* collections returned
820 by getElementsByClassName() / getElementsByTagName(). These methods
821 will soon be updated to return an HTMLCollection instead of a
822 NodeList and we need to make sure we don't regress performance in the
825 * DOM/get-elements-by-class-name-traversal-uncached.html: Added.
826 * DOM/get-elements-by-tag-name-traversal-uncached.html: Added.
828 2015-08-14 Chris Dumez <cdumez@apple.com>
830 Add performance tests for NodeList and HTMLCollection traversal
831 https://bugs.webkit.org/show_bug.cgi?id=148043
833 Reviewed by Gavin Barraclough.
835 Add performance tests for NodeList and HTMLCollection traversal.
836 Ideally, those 2 tests should be as fast. However, due to inefficiencies
837 in our HTMLCollection bindings code, the HTMLCollection tests is ~30%
838 slower. This will be addressed in the near future.
840 * Bindings/childNodes-traversal.html: Added.
841 * Bindings/children-traversal.html: Added.
843 2015-08-05 Myles C. Maxfield <mmaxfield@apple.com>
845 Add a second font-fallback performance test
846 https://bugs.webkit.org/show_bug.cgi?id=147692
848 Reviewed by Ryosuke Niwa.
850 This test is smaller, but has more realistic content. Also, it uses the "lang" attribute.
852 * Layout/font-fallback-2.html: Added.
853 * Layout/resources/font-fallback-2.html: Added.
855 2015-07-13 Filip Pizlo <fpizlo@apple.com>
857 Update JetStream version number to 1.1.
859 Rubber stamped by Ryosuke Niwa.
861 * JetStream/create.rb:
863 2015-06-30 Filip Pizlo <fpizlo@apple.com>
865 Update the JetStream documentation to reflect the recent changes
866 https://bugs.webkit.org/show_bug.cgi?id=146474
868 Reviewed by Geoffrey Garen.
870 * JetStream/create.rb: Bump the version.
871 * JetStream/in-depth-TEMPLATE.html: Add cdjs documentation. Remove cordic documentation. Change documentation for splay and mandreel.
873 2015-06-26 Filip Pizlo <fpizlo@apple.com>
875 [JetStream] Raise the percentile of mandreel-latency and splay-latency
876 https://bugs.webkit.org/show_bug.cgi?id=146378
878 Reviewed by Mark Lam.
880 The current percentile is 95%. When I looked at the sample lists in our GC, it was
881 clear that the worst 5% samples completely amortize our GC pauses. Our GC pauses can
882 be quite bad. Clearly, splay-latency is meant to test whether we have an incremental
883 GC that ensures that you don't have bad worst-case pauses. But 95% is too small,
884 because it doesn't really capture those pauses. Raising the percentile to above 99%
885 appears to do the trick. 99.5% or more seems like a good bet. The trade-off there is
886 just that if we set it too high, then we won't have enough statistics. Doing this very
887 clearly rewards GCs that are incremental, and punishes GCs that aren't (like ours).
888 That's what we want, since in the future we want to use this test to guide any
889 improvements to the worst-case performance of our GC.
891 The way that the percentile is selected will also affect mandreel-latency. That's a
892 good thing, because 95% is probably too low for that test as well. That test ends up
893 with >10k samples. The goal of using 95% in the first place was to get enough samples
894 to have a stable average. But if we have >10k samples, we can push that percentile up
895 much higher and still get good statistics while achieving the effect we want - i.e.
896 getting the worst case.
898 I don't think that we need to do the same thing for cdjs. That test only takes 200
899 samples, so 95% means we report the average of the worst 10 samples. That's probably
902 * JetStream/Octane2/base.js: Raise the percentile as described above.
903 (BenchmarkSuite.prototype.RunSingleBenchmark):
904 * JetStream/Reference.js: Tweak the reference times to bring the latency tests closer to 100ish on my machine.
905 * JetStream/create.rb: Bump the version.
907 2015-06-19 Filip Pizlo <fpizlo@apple.com>
909 Run CDjs as part of JSC stress testing
910 https://bugs.webkit.org/show_bug.cgi?id=146174
912 Reviewed by Geoffrey Garen.
914 * 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.
915 * JetStream/cdjs/main.js: Mark this as a slow test.
916 * JetStream/create.rb: Don't copy the JSC stress tests artifacts into the JetStream bundle.
918 2015-06-19 Filip Pizlo <fpizlo@apple.com>
920 Unreviewed, fix a small indentation goof.
922 * JetStream/cdjs/motion.js:
923 (Motion.prototype.findIntersection):
925 2015-06-19 Filip Pizlo <fpizlo@apple.com>
927 JetStream should include a JavaScript version of the CDx real-time benchmark
928 https://bugs.webkit.org/show_bug.cgi?id=146156
930 Reviewed by Geoffrey Garen.
932 This adds a JavaScript port of the CDx real-time benchmark to JetStream, and retires
933 the cordic test because it was previously the smallest and probably least interesting.
935 The new test, "cdjs", is mostly a faithful rewrite of the Java code into JavaScript.
936 I got the Java code from https://www.cs.purdue.edu/sss/projects/cdx/.
938 There are some differences:
940 - It uses RedBlackTree's for all sets and maps rather than hashtables. This is clearly
941 more in the spirit of real-time than the CDx benchmark. FWIW, CDx used to use trees
942 and I don't know why that changed in the latest version.
944 - CDjs doesn't attempt to avoid memory allocations, unlike the real-time Java version.
945 I wrote the code that I wanted to write for aesthetics, rather than the code that I
946 would have written if I tried to write the fastest code possible. Again, I believe
947 that this is in the spirit of CDj - it's meant to test what would happen if you wrote
948 real-timey stuff in a high level language and actually took advantage of that
949 language to be more productive.
951 The test score reflects the average latency of the worst 10 samples out of 200 samples.
952 The simulation uses 1000 aircraft, flying along paths that result in some detected
953 collisions every once in a while. The benchmark validates its results by checking the
954 total number of collisions detected.
956 Apart from the integration into the JetStream harness, the CDjs directory contains a
957 fully self-contained benchmark that could be run either in the jsc shell or in browser.
959 This new code uses the same 3-clause BSD license as the Purdue code, and gives
960 attribution to Purdue in almost all files. I believe that is appropriate since I wrote
961 most of the JS files by looking at the Purdue Java code and trascribing to JavaScript.
962 In some cases, I even copy-pasted the Java code, like the complicated math for
963 four-dimensional intersections and voxel hashing.
965 * JetStream/CDjsSetup.js: Added.
966 * JetStream/Octane2Setup.js:
967 * JetStream/Reference.js:
968 * JetStream/cdjs: Added.
969 * JetStream/cdjs/benchmark.js: Added.
971 * JetStream/cdjs/call_sign.js: Added.
973 (CallSign.prototype.compareTo):
974 (CallSign.prototype.toString):
975 * JetStream/cdjs/collision.js: Added.
977 (Collision.prototype.toString):
978 * JetStream/cdjs/collision_detector.js: Added.
980 (CollisionDetector.prototype.handleNewFrame.get for):
981 (CollisionDetector.prototype.handleNewFrame):
982 * JetStream/cdjs/constants.js: Added.
983 * JetStream/cdjs/main.html: Added.
984 * JetStream/cdjs/main.js: Added.
985 * JetStream/cdjs/motion.js: Added.
987 (Motion.prototype.toString):
988 (Motion.prototype.delta):
989 (Motion.prototype.findIntersection):
990 * JetStream/cdjs/motion_test.js: Added.
991 (checkDoesIntersect):
992 (checkDoesNotIntersect):
994 * JetStream/cdjs/red_black_tree.js: Added.
997 * JetStream/cdjs/red_black_tree_test.js: Added.
1000 * JetStream/cdjs/reduce_collision_set.js: Added.
1001 (drawMotionOnVoxelMap):
1002 (drawMotionOnVoxelMap.):
1003 (.get reduceCollisionSet):
1004 * JetStream/cdjs/reduce_collision_set_test.js: Added.
1008 * JetStream/cdjs/simulator.js: Added.
1010 (Simulator.prototype.simulate):
1011 * JetStream/cdjs/util.js: Added.
1013 (averageAbovePercentile):
1016 * JetStream/cdjs/vector_2d.js: Added.
1018 (Vector2D.prototype.plus):
1019 (Vector2D.prototype.minus):
1020 (Vector2D.prototype.toString):
1021 (Vector2D.prototype.compareTo):
1022 * JetStream/cdjs/vector_3d.js: Added.
1024 (Vector3D.prototype.plus):
1025 (Vector3D.prototype.minus):
1026 (Vector3D.prototype.dot):
1027 (Vector3D.prototype.squaredMagnitude):
1028 (Vector3D.prototype.magnitude):
1029 (Vector3D.prototype.times):
1030 (Vector3D.prototype.as2D):
1031 (Vector3D.prototype.toString):
1032 * JetStream/create.rb:
1033 * JetStream/index-TEMPLATE.html:
1034 * JetStream/sunspider/cordic.js: Removed.
1036 2015-06-17 Javier Fernandez <jfernandez@igalia.com>
1038 [CSS Grid Layout] We should add performance tests for stretching logic
1039 https://bugs.webkit.org/show_bug.cgi?id=146063
1041 Reviewed by Sergio Villar Senin.
1043 Added a new performance test for Grid Layout to ensure there are no
1044 regressions in the stretching alignment logic.
1046 * Layout/fixed-grid-lots-of-stretched-data.html: Added.
1048 2015-06-17 Javier Fernandez <jfernandez@igalia.com>
1050 [CSS Grid Layout] Performance tests are using the old syntax
1051 https://bugs.webkit.org/show_bug.cgi?id=146061
1053 Reviewed by Sergio Villar Senin.
1055 Adapted tests to the new grid tracks definition syntax.
1057 * Layout/auto-grid-lots-of-data.html:
1058 * Layout/fixed-grid-lots-of-data.html:
1060 2015-06-08 Filip Pizlo <fpizlo@apple.com>
1062 JetStream should have a more rational story for jitter-oriented latency tests
1063 https://bugs.webkit.org/show_bug.cgi?id=145762
1065 Reviewed by Geoffrey Garen.
1067 JetStream has some latency tests that are meant to measure jitter. Prior to this change, they
1068 did this by computing the RMS. But the RMS is a pretty bad metric. The thing that it rewards
1069 isn't really the thing that you'd want your browser to do. These RMS-based tests involve taking
1070 the geomean of the RMS of some samples and the sample average. The lower the geomean, the better
1071 (in the JetStream harness we then invert the scores so that higher is better, but let's ignore
1072 that for this discussion and assume that lower is better). Here's an example of how this can go
1073 bad. A browser that always computes a task in some horribly long time (say, 1000ms) but never
1074 varies that time will perform better than a browser that usually computes the task super quickly
1075 (say, 10ms) and sometimes just a little bit less quickly (say, 15ms). The former browser will
1076 have an RMS of 0 and an average of 1000. The latter will have a RMS somewhere around 3.5 and an
1077 average of 12.5 (assuming equal probability of 10ms and 15ms). The geomean of (0, 1000) is 0.
1078 The geomean of (3.5, 12.5) is 6.6. Lower is better, so the former browser scores higher - even
1079 though it's obviously never better to have a browser always complete a task in 1000ms when a
1080 different browser can do it in 15ms in the worst case.
1082 JetStream should not have this pathology. The right way of avoiding it is to replace RMS with
1083 some other metric of how bad things get. A good metric is the average of the worst percentile.
1084 The worst 1% or the worst 5% would be good things to average. This will catch cases where the VM
1085 jittered due to JIT or GC, but it never have the pathology that we end up giving the better score
1086 to a VM whose best case is worst than another VM's worst case.
1088 For now, this change uses the highest samples above the 95% percentile. I'm not yet sure if that
1089 is the best thing - it might include too many scores that are around the best-case performance -
1090 but it's certainly better than RMS and it might be good enough to keep. But because of that
1091 uncertainty, I'm setting the version to be "1.1-alpha1" to indicate that we aren't ready to
1094 * JetStream/Octane2/base.js:
1095 (.this.Setup.setup.setup):
1096 (.this.TearDown.tearDown.tearDown):
1097 (BenchmarkSuite.GeometricMeanTime):
1098 (BenchmarkSuite.AverageAbovePercentile):
1099 (BenchmarkSuite.GeometricMeanLatency):
1100 (BenchmarkSuite.prototype.NotifyStep):
1101 (BenchmarkSuite.prototype.RunSingleBenchmark):
1102 * JetStream/Octane2/mandreel.js:
1104 (updateMandreelStats):
1105 (startMandreelTimer):
1108 (RMSMandreel): Deleted.
1109 * JetStream/Octane2/splay.js:
1114 (SplayRMS): Deleted.
1115 * JetStream/create.rb:
1117 2015-06-03 Zalan Bujtas <zalan@apple.com>
1119 Skip Dromaeo/jslib-modify-prototype.html for now.
1121 Unreviewed gardening.
1125 2015-05-04 Filip Pizlo <fpizlo@apple.com>
1127 Large array shouldn't be slow
1128 https://bugs.webkit.org/show_bug.cgi?id=144617
1130 Reviewed by Geoffrey Garen.
1132 Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
1133 SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
1134 long-running. So, hash-map sort of belongs here.
1136 * LongSpider/hash-map.js: Added.
1141 2015-05-01 Dewei Zhu <dewei_zhu@apple.com>
1143 Fix typo bug in Speedometer/resources/main.js
1144 https://bugs.webkit.org/show_bug.cgi?id=144504
1146 Reviewed by Ryosuke Niwa.
1148 * Speedometer/resources/main.js: Fix typo.
1149 (window.benchmarkClient.totalTimeInDisplayUnit):
1151 2015-04-21 Ryosuke Niwa <rniwa@webkit.org>
1153 Add JetStream to PerformanceTests
1154 https://bugs.webkit.org/show_bug.cgi?id=144024
1156 Rubber-stamped by Filip Pizlo.
1159 * JetStream/JetStream-Logo.png: Added.
1160 * JetStream/JetStream-Logo@2x.png: Added.
1161 * JetStream/JetStream.css: Added.
1162 * JetStream/JetStreamDriver.js: Added.
1163 * JetStream/LICENSE.txt: Added.
1164 * JetStream/LLVM-test-suite-LICENSE.txt: Added.
1165 * JetStream/Octane: Added.
1166 * JetStream/Octane/base.js: Added.
1167 * JetStream/Octane/code-load.js: Added.
1168 * JetStream/Octane2: Added.
1169 * JetStream/Octane2/base.js: Added.
1170 * JetStream/Octane2/box2d.js: Added.
1171 * JetStream/Octane2/code-load.js: Added.
1172 * JetStream/Octane2/crypto.js: Added.
1173 * JetStream/Octane2/deltablue.js: Added.
1174 * JetStream/Octane2/earley-boyer.js: Added.
1175 * JetStream/Octane2/gbemu-part1.js: Added.
1176 * JetStream/Octane2/gbemu-part2.js: Added.
1177 * JetStream/Octane2/mandreel.js: Added.
1178 * JetStream/Octane2/navier-stokes.js: Added.
1179 * JetStream/Octane2/pdfjs.js: Added.
1180 * JetStream/Octane2/raytrace.js: Added.
1181 * JetStream/Octane2/regexp.js: Added.
1182 * JetStream/Octane2/richards.js: Added.
1183 * JetStream/Octane2/run.js: Added.
1184 * JetStream/Octane2/splay.js: Added.
1185 * JetStream/Octane2/typescript-compiler.js: Added.
1186 * JetStream/Octane2/typescript-input.js: Added.
1187 * JetStream/Octane2/typescript.js: Added.
1188 * JetStream/Octane2/zlib-data.js: Added.
1189 * JetStream/Octane2/zlib.js: Added.
1190 * JetStream/Octane2Setup.js: Added.
1191 * JetStream/OctaneSetup.js: Added.
1192 * JetStream/README: Added.
1193 * JetStream/Reference.js: Added.
1194 * JetStream/SimpleSetup.js: Added.
1195 * JetStream/SunSpiderSetup.js: Added.
1196 * JetStream/Swoosh.png: Added.
1197 * JetStream/Swoosh@2x.png: Added.
1198 * JetStream/TestingSetup.js: Added.
1199 * JetStream/create.rb: Added.
1200 * JetStream/docs: Added.
1201 * JetStream/docs/JetStreamBlogPost.html: Added.
1202 * JetStream/in-depth-TEMPLATE.html: Added.
1203 * JetStream/index-TEMPLATE.html: Added.
1204 * JetStream/simple: Added.
1205 * JetStream/simple/bigfib.cpp: Added.
1206 * JetStream/simple/bigfib.cpp.js: Added.
1207 * JetStream/simple/container.cpp: Added.
1208 * JetStream/simple/container.cpp.js: Added.
1209 * JetStream/simple/dry.c: Added.
1210 * JetStream/simple/dry.c.js: Added.
1211 * JetStream/simple/float-mm.c: Added.
1212 * JetStream/simple/float-mm.c.js: Added.
1213 * JetStream/simple/gcc-loops.cpp: Added.
1214 * JetStream/simple/gcc-loops.cpp.js: Added.
1215 * JetStream/simple/hash-map.js: Added.
1216 * JetStream/simple/n-body.c: Added.
1217 * JetStream/simple/n-body.c.js: Added.
1218 * JetStream/simple/quicksort.c: Added.
1219 * JetStream/simple/quicksort.c.js: Added.
1220 * JetStream/simple/towers.c: Added.
1221 * JetStream/simple/towers.c.js: Added.
1222 * JetStream/sunspider: Added.
1223 * JetStream/sunspider/3d-cube.js: Added.
1224 * JetStream/sunspider/3d-raytrace.js: Added.
1225 * JetStream/sunspider/base64.js: Added.
1226 * JetStream/sunspider/cordic.js: Added.
1227 * JetStream/sunspider/crypto-aes.js: Added.
1228 * JetStream/sunspider/crypto-md5.js: Added.
1229 * JetStream/sunspider/crypto-sha1.js: Added.
1230 * JetStream/sunspider/date-format-tofte.js: Added.
1231 * JetStream/sunspider/date-format-xparb.js: Added.
1232 * JetStream/sunspider/n-body.js: Added.
1233 * JetStream/sunspider/regex-dna.js: Added.
1234 * JetStream/sunspider/tagcloud.js: Added.
1236 2015-04-14 Said Abou-Hallawa <sabouhallawa@apple.com>
1238 textPath layout performance improvement.
1239 https://bugs.webkit.org/show_bug.cgi?id=141570.
1241 Reviewed by Darin Adler.
1243 Cut down the time spent in traversing the path for text by 50%. Instead
1244 of traversing the path twice at a certain length: one time for the position
1245 and the second time for the angle, we can merge these two passes into one.
1247 * SVG/TextOnPathSimple.html: Added.
1248 * SVG/resources/TextOnPathSimple.svg: Added.
1250 2015-04-13 Zalan Bujtas <zalan@apple.com>
1252 Clear up the test content when test is done.
1256 * Layout/simple-line-layout-innertext.html:
1258 2015-04-09 Zalan Bujtas <zalan@apple.com>
1260 Simple line layout(regression): Calling innerText on RenderFlow with multiple children is slow.
1261 https://bugs.webkit.org/show_bug.cgi?id=143554
1263 Reviewed by Antti Koivisto.
1265 Initialize render flow's segments only when the render flow changes in TextIterator.
1266 The included performance test shows 6x speedup. (from ~10 runs/sec to ~60 runs/sec)
1268 * Layout/simple-line-layout-innertext.html: Added.
1270 2015-03-09 Chris Dumez <cdumez@apple.com>
1272 [CG] Have Canvas use the IOSurfacePool
1273 https://bugs.webkit.org/show_bug.cgi?id=142417
1274 <rdar://problem/20044440>
1276 Reviewed by Darin Adler.
1278 Lower the number of different canvas sizes from 1000 to 100 so that
1279 the test does not require such a huge cache size. With 100, we now
1280 get over 90% cache hit rate with the default IOSurfacePool size.
1282 * Canvas/reuse.html:
1284 2015-01-28 Said Abou-Hallawa <sabouhallawa@apple.com>
1286 Poor performance on IE's Chalkboard benchmark.
1287 https://bugs.webkit.org/show_bug.cgi?id=140753.
1289 Reviewed by Zalan Bujtas.
1291 * SVG/UnderTheSeeBenchmark.html: Added
1292 * SVG/WorldcupBenchmark.html: Added.
1293 * SVG/resources/RenderAnimator.css: Added.
1294 * SVG/resources/RenderAnimator.js: Added.
1295 These are benchmarks for the SVG rendering. Mainly we want to measure how fast
1296 the SVG rendering will be when only a small part of it is drawn.
1298 2015-01-21 Geoffrey Garen <ggaren@apple.com>
1300 bmalloc: support aligned allocation
1301 https://bugs.webkit.org/show_bug.cgi?id=140732
1303 Reviewed by Andreas Kling.
1305 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1306 * MallocBench/MallocBench/Benchmark.cpp:
1307 * MallocBench/MallocBench/memalign.cpp:
1309 (benchmark_memalign): Added a test for specific interesting memalign values.
1311 * MallocBench/MallocBench/stress_aligned.cpp: Added.
1312 (benchmark_stress_aligned):
1313 * MallocBench/MallocBench/stress_aligned.h: Added. Added a stress test
1314 for arbitrary memalign values.
1316 2015-01-16 Geoffrey Garen <ggaren@apple.com>
1318 bmalloc: added the tiniest bit of testing for aligned allocation
1319 https://bugs.webkit.org/show_bug.cgi?id=140573
1321 Reviewed by Andreas Kling.
1323 Just good enoug to catch two bugs in a preliminary implementation.
1325 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1326 * MallocBench/MallocBench/Benchmark.cpp:
1327 * MallocBench/MallocBench/mbmalloc.cpp:
1328 * MallocBench/MallocBench/mbmalloc.h:
1329 * MallocBench/MallocBench/memalign.cpp: Added.
1330 (benchmark_memalign):
1331 * MallocBench/MallocBench/memalign.h: Added.
1333 2014-12-09 Myles C. Maxfield <mmaxfield@apple.com>
1335 Add performance test related to font fallback
1336 https://bugs.webkit.org/show_bug.cgi?id=139332
1338 Reviewed by Simon Fraser.
1340 * Layout/font-fallback.html: Added.
1341 * Layout/resources/font-fallback.html: Added.
1343 2014-12-08 Dean Jackson <dino@apple.com>
1345 [Apple] Use Accelerate framework to speed-up FEGaussianBlur
1346 https://bugs.webkit.org/show_bug.cgi?id=139310
1348 Reviewed by Simon Fraser.
1350 Add an interactive performance test that measures the speed of a set
1351 of blur operations on a generated images.
1353 * Interactive/blur-filter-timing.html: Added.
1355 2014-11-13 Zalan Bujtas <zalan@apple.com>
1357 Simple line layout: Add performance test case to measure line layout speed of monolithic text content.
1358 https://bugs.webkit.org/show_bug.cgi?id=138699
1360 Reviewed by Antti Koivisto.
1362 * Layout/line-layout-long-long-text.html: Added.
1364 2014-10-22 Zalan Bujtas <zalan@apple.com>
1366 Speed up line parsing for simple line layout (part I)
1367 https://bugs.webkit.org/show_bug.cgi?id=137275
1369 Reviewed by Antti Koivisto.
1371 Extend simple line layout performance test with a few more cases.
1376 <div white-space: pre (new)
1377 <div overflow-wrap: break-word (new)
1379 <pre white-space: pre-wrap
1380 <pre white-space: pre-line (new)
1381 <pre white-space: nowrap (new)
1382 <pre white-space: pre-wrap overflow-wrap: break-word
1383 <div + embedded <span etc.
1386 * Layout/line-layout-simple.html:
1388 2014-10-15 Andrei Bucur <abucur@adobe.com>
1390 [Multicol] Start adding performance tests for the multi-column implementation
1391 https://bugs.webkit.org/show_bug.cgi?id=137687
1393 Reviewed by Mihnea Ovidenie.
1395 This patch creates a Multicol folder inside the Layout performance tests suite. It adds only two tests
1398 The tests are skipped until the implementation stabilizes.
1400 * Layout/Multicol/MulticolManyColumns.html: Added.
1401 This test verifies the performance of the multi-column implementation with two nested multi-column
1402 containers, the first having 20 columns and the second 10 columns.
1404 * Layout/Multicol/MulticolNested.html: Added.
1405 This test verifies the performance of nesting multi-column containers in the presence
1408 * Layout/Multicol/resources/multicol-content-many-columns.html: Added.
1409 * Layout/Multicol/resources/multicol-content-nested.html: Added.
1410 * Skipped: Skip the Multicol folder for now.
1412 2014-09-29 Filip Pizlo <fpizlo@apple.com>
1414 It should be fun and easy to run every possible JavaScript benchmark from the command line
1415 https://bugs.webkit.org/show_bug.cgi?id=137245
1417 Reviewed by Oliver Hunt.
1419 This adds the scaffolding for running Octane version 2 inside run-jsc-benchmarks.
1420 In the future we should just land Octane2 in this directory, and run-jsc-benchmarks
1421 should be changed to point directly at this directory instead of requiring the
1422 Octane path to be configured as part of the configuration file.
1425 * Octane/wrappers: Added.
1426 * Octane/wrappers/jsc-box2d.js: Added.
1430 * Octane/wrappers/jsc-boyer.js: Added.
1434 * Octane/wrappers/jsc-closure.js: Added.
1438 * Octane/wrappers/jsc-decrypt.js: Added.
1442 * Octane/wrappers/jsc-deltablue.js: Added.
1446 * Octane/wrappers/jsc-earley.js: Added.
1450 * Octane/wrappers/jsc-encrypt.js: Added.
1454 * Octane/wrappers/jsc-gbemu.js: Added.
1458 * Octane/wrappers/jsc-jquery.js: Added.
1462 * Octane/wrappers/jsc-mandreel.js: Added.
1466 * Octane/wrappers/jsc-navier-stokes.js: Added.
1470 * Octane/wrappers/jsc-pdfjs.js: Added.
1471 (jscSetUp.PdfJS_window.console.log):
1475 * Octane/wrappers/jsc-raytrace.js: Added.
1479 * Octane/wrappers/jsc-regexp.js: Added.
1483 * Octane/wrappers/jsc-richards.js: Added.
1487 * Octane/wrappers/jsc-splay.js: Added.
1491 * Octane/wrappers/jsc-typescript.js: Added.
1495 * Octane/wrappers/jsc-zlib.js: Added.
1500 2014-09-28 Sungmann Cho <sungmann.cho@navercorp.com>
1502 Fix some minor typos: psuedo -> pseudo
1503 https://bugs.webkit.org/show_bug.cgi?id=137192
1505 Reviewed by Alexey Proskuryakov.
1507 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js:
1509 2014-09-11 Geoffrey Garen <ggaren@apple.com>
1511 Some MallocBench refinements
1512 https://bugs.webkit.org/show_bug.cgi?id=136750
1514 Reviewed by Sam Weinig.
1516 * MallocBench/MallocBench/Interpreter.cpp:
1517 (Interpreter::run): Allow for null entries in the object list so that
1518 we can test in modes that exclude large or small allocations.
1520 * MallocBench/MallocBench/churn.cpp:
1522 * MallocBench/MallocBench/flickr.cpp:
1524 * MallocBench/MallocBench/fragment.cpp:
1525 (benchmark_fragment_iterate):
1526 * MallocBench/MallocBench/list.cpp:
1527 (benchmark_list_allocate):
1528 * MallocBench/MallocBench/reddit.cpp:
1529 (benchmark_reddit): Updated test runtimes to weight them more equally,
1530 for the sake of arithmetic mean.
1532 * MallocBench/MallocBench/stress.cpp:
1536 (benchmark_stress): Verify the contents of memory as we go. Also,
1537 force scavenging each time through the loop to test the scavenging path.
1539 * MallocBench/MallocBench/theverge.cpp:
1540 (benchmark_theverge):
1541 * MallocBench/MallocBench/tree.cpp:
1542 (benchmark_tree_churn): Re-weighted, as above.
1544 2014-09-08 Myles C. Maxfield <mmaxfield@apple.com>
1546 PerformanceTests/SVG/SVG-Text.html has unparsable output
1547 https://bugs.webkit.org/show_bug.cgi?id=136648
1549 Reviewed by Gavin Barraclough.
1551 I need to clean up the arbitrary text on the page before telling
1552 the test runner infrastructure that the test is complete.
1554 * SVG/SVG-Text.html:
1556 2014-09-05 Myles C. Maxfield <mmaxfield@apple.com>
1558 Laying out a TextRun using an SVG font is O(n^2)
1559 https://bugs.webkit.org/show_bug.cgi?id=136584
1561 Reviewed by Andreas Kling.
1563 Time how long it takes to lay out and render some text using an SVG font.
1565 * SVG/SVG-Text.html: Added.
1566 * SVG/resources/graffiti.svg: Added.
1568 2014-09-02 Geoffrey Garen <ggaren@apple.com>
1570 MallocBench should have a stress test for correctness
1571 https://bugs.webkit.org/show_bug.cgi?id=136468
1573 Reviewed by Andreas Kling.
1575 Added a stress test that allocates randomized sizes of randomized
1576 lifetimes in randomized order.
1578 This version of the test reproduces the EWS crash seen in bmalloc
1579 (<https://bugs.webkit.org/show_bug.cgi?id=132629>).
1581 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1582 * MallocBench/MallocBench/Benchmark.cpp: Sort!
1583 * MallocBench/MallocBench/stress.cpp: Added.
1585 (SizeStream::SizeStream):
1587 (benchmark_stress): Usually, we random(0). Surprisingly, though, only
1588 random(1) reproduces the bug I was looking for.
1589 * MallocBench/MallocBench/stress.h: Added.
1591 2014-06-02 Ryosuke Niwa <rniwa@webkit.org>
1593 Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
1594 https://bugs.webkit.org/show_bug.cgi?id=133455
1596 Reviewed by Timothy Hatcher.
1598 * Speedometer/: Renamed from DoYouEvenBench.
1599 * Skipped: Updated the path for InteractiveRunner.html
1601 2014-06-02 Ryosuke Niwa <rniwa@webkit.org>
1603 Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
1604 https://bugs.webkit.org/show_bug.cgi?id=133455
1606 Reviewed by Timothy Hatcher.
1608 Renamed the benchmark to Speedometer and added the new look designed by Timothy Hatcher.
1610 Also changed the unit of measurements from milliseconds to runs-per-minute averaged over the number
1611 of the benchmark suites (7 for 1.0). You can divide 420000 by the old benchmark score (in milliseconds)
1612 to get the new value for the set of tests that are enabled by default in 1.0. You can continue to see
1613 results in milliseconds on Full.html#ms.
1615 * DoYouEvenBench/Full.html: Added a bunch of sections and the description of the benchmark.
1617 * DoYouEvenBench/resources/benchmark-report.js: Remove the newly added content when ran inside a DRT or
1618 WTR so that run-perf-tests wouldn't error.
1619 * DoYouEvenBench/resources/benchmark-runner.js:
1620 (BenchmarkRunner.prototype._appendFrame): Call a newly added willAddTestFrame callback when it exists.
1622 * DoYouEvenBench/resources/gauge.png: Added.
1623 * DoYouEvenBench/resources/gauge@2x.png: Added.
1624 * DoYouEvenBench/resources/logo.png: Added.
1625 * DoYouEvenBench/resources/logo@2x.png: Added.
1626 * DoYouEvenBench/resources/main.css: Replaced the style.
1628 * DoYouEvenBench/resources/main.js:
1629 (window.benchmarkClient.willAddTestFrame): Place the iframe right where #testContainer is shown.
1630 (window.benchmarkClient.willRunTest): Show the name of the suite (e.g. EmberJS-TodoMVC) to run next.
1631 (window.benchmarkClient.didRunSuites):
1632 (window.benchmarkClient.willStartFirstIteration): Initialize _timeValues and _finishedTestCount now that
1633 we have an UI to run the benchmark multiple times without reloading the page.
1634 (window.benchmarkClient.didFinishLastIteration): Split into smaller pieces.
1635 (window.benchmarkClient._computeResults): Computes the mean and the statistics for the given time values,
1636 and also format them in a human readable form.
1637 (window.benchmarkClient._computeResults.totalTimeInDisplayUnit): Converts ms to runs/min.
1638 (window.benchmarkClient._computeResults.sigFigFromPercentDelta): Given a percentage error (e.g. 1%),
1639 returns the number of significant digits required for the mean.
1640 (window.benchmarkClient._computeResults.toSigFigPrecision): Calls toPrecision with the specified precision
1641 constrained to be at least the number of non-decimal digits and at most 6.
1642 (window.benchmarkClient._addDetailedResultsRow): Renamed from _addResult. It now takes the table to which
1643 to add a row and the iteration number.
1644 (window.benchmarkClient._updateGaugeNeedle): Added. Controls the angle of the speed indicator.
1645 (window.benchmarkClient._populateDetailedResults): Added.
1646 (window.benchmarkClient.prepareUI): Added. It adds an event listener to show a specified section when
1647 the push state of the document changes, and shows a warning sign when the view port size is too small.
1648 We do this inside a callback to avoid running it inside DRT / WTR.
1650 (showSection): Added.
1652 (showResultsSummary): Added.
1653 (showResultDetails): Added.
1656 2014-06-01 Ryosuke Niwa <rniwa@webkit.org>
1658 DYEBench: Move test states into benchmarkClient and remove the closure
1659 https://bugs.webkit.org/show_bug.cgi?id=133438
1661 Reviewed by Benjamin Poulain.
1663 Moved all local variables in the closure wrapping benchmarkClient onto the object itself
1664 and removed the closure to improve the readability of the code.
1666 * DoYouEvenBench/Full.html:
1667 * DoYouEvenBench/resources/main.js:
1668 (window.benchmarkClient.willRunTest):
1669 (window.benchmarkClient.didRunTest):
1670 (window.benchmarkClient.didRunSuites):
1671 (window.benchmarkClient.willStartFirstIteration):
1672 (window.benchmarkClient.didFinishLastIteration):
1673 (window.benchmarkClient._addResult): Moved.
1676 2014-06-01 Ryosuke Niwa <rniwa@webkit.org>
1678 DYEBench: Split stylesheets and scripts in Full.html into separate files
1679 https://bugs.webkit.org/show_bug.cgi?id=133437
1681 Reviewed by Benjamin Poulain.
1683 Extracted main.js and main.css.
1685 Also fixed a bug in startBenchmark that disabled suites were counted towards the total number of tests.
1687 * DoYouEvenBench/Full.html:
1688 * DoYouEvenBench/resources/main.css: Added.
1689 * DoYouEvenBench/resources/main.js: Added.
1691 (window.benchmarkClient):
1692 (startBenchmark): Renamed from startTest.
1694 2014-06-01 Ryosuke Niwa <rniwa@webkit.org>
1696 DYEBench: CSS parser warning at line 106 of base.css
1697 https://bugs.webkit.org/show_bug.cgi?id=133433
1699 Reviewed by Maciej Stachowiak.
1701 Removed the old filter CSS property for Internet Explorer. The latest Internet Explorer supports -ms-linear-gradient
1702 on background CSS property anyways.
1704 It's interesting that some of the tests only have -webkit- prefixes. Perhaps we should update those subtests.
1706 * DoYouEvenBench/Full.html:
1707 * DoYouEvenBench/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css:
1709 * DoYouEvenBench/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css:
1711 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
1713 * DoYouEvenBench/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css:
1715 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css:
1717 * DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css:
1719 * DoYouEvenBench/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css:
1722 2014-05-31 Ryosuke Niwa <rniwa@webkit.org>
1724 DYEBench: Ember.js assertion hit at line 20593
1725 https://bugs.webkit.org/show_bug.cgi?id=133431
1727 Reviewed by Darin Adler.
1729 The assertion was hit because ToDoMVC includes jQuery 2.1 and Ember.js 1.3.1 only recognizes jQuery 2.0.
1730 Port the assertion from Ember.js 1.5.1 to suppress the assertion.
1732 We should update the entire Ember.js at some point but this would do the job for now.
1734 * DoYouEvenBench/Full.html:
1735 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:
1737 2014-05-31 Ryosuke Niwa <rniwa@webkit.org>
1739 DYEBench: Prevent frame flattening on iOS
1740 https://bugs.webkit.org/show_bug.cgi?id=133428
1742 Reviewed by Andreas Kling.
1744 Prevent frame flattening on iOS by setting scrolling=no.
1746 * DoYouEvenBench/Full.html:
1747 * DoYouEvenBench/resources/benchmark-runner.js:
1748 (BenchmarkRunner.prototype._appendFrame):
1750 2014-05-30 Ryosuke Niwa <rniwa@webkit.org>
1752 DYEBench spits out 404 errors for learn.json
1753 https://bugs.webkit.org/show_bug.cgi?id=133416
1755 Reviewed by Oliver Hunt.
1757 Add an empty learn.json file so that it won't cause a 404 error when hosted on a http server.
1759 Bumped the version number to 0.12.
1761 * DoYouEvenBench/Full.html:
1762 * DoYouEvenBench/resources/todomvc/learn.json:
1764 2014-05-23 Geoffrey Garen <ggaren@apple.com>
1766 Performance testing, diamond-square terrain generation + canvas
1767 https://bugs.webkit.org/show_bug.cgi?id=133054
1769 Reviewed by Ryosuke Niwa.
1771 This test was written by Hunter Loftis. It originally appeared on his
1772 blog @ <http://www.playfuljs.com/realistic-terrain-in-130-lines/>.
1774 I did a bit of editing for format and benchmark suitability.
1776 * Canvas/terrain.html: Added.
1778 2014-05-13 Ryosuke Niwa <rniwa@webkit.org>
1780 DYEBench should run 20 iterations in browser
1781 https://bugs.webkit.org/show_bug.cgi?id=132795
1783 Reviewed by Gavin Barraclough.
1785 Right now, run-perf-tests runs BYEBench 4 times with different instances of DRT/WTR to get
1786 a more stable time and account for differences in the runtime environment, particularly,
1787 ASLR (Address Space Layout Randomization).
1789 While we can't account for the latter effect when the benchmark is ran inside a browser,
1790 we can at least run 20 iterations to get a more stable (but perhaps biased by ALSR) number.
1792 While the sample size of 20 is statistically unsound to compute the arithmetic mean from,
1793 it's MUCH better than the current sample size of 5.
1795 * DoYouEvenBench/Full.html:
1796 (benchmarkClient.iterationCount): Set the default iteration count to 20.
1797 (startTest): Use benchmarkClient.iterationCount as the iteration count.
1798 * DoYouEvenBench/resources/benchmark-report.js:
1799 (benchmarkClient.iterationCount): Continue to use the old iteration count of 5 when ran
1800 inside run-perf-tests.
1802 2014-05-09 Ryosuke Niwa <rniwa@webkit.org>
1804 DYEBench should show 95th percentile right next to the mean with ±
1805 https://bugs.webkit.org/show_bug.cgi?id=132729
1807 Reviewed by Darin Adler.
1809 Before this patch, Full.html showed the 95th percentile delta for the arthemtic mean in a separate row
1810 but this was confusing for some people. Show it right next to mean in the same row separated by ±.
1812 * DoYouEvenBench/Full.html:
1814 2014-05-08 Ryosuke Niwa <rniwa@webkit.org>
1816 DYEBench should use TodoMVC to test FlightJS for consistency
1817 https://bugs.webkit.org/show_bug.cgi?id=132727
1819 Reviewed by Andreas Kling.
1821 Add a test suite for the FlightJS version of TodoMVC, and disable FlightJS-MailClient by default.
1823 I initially intended to include a wider variety of demo apps in DYEBench
1824 but that's not happening any time soon so let us use TodoMVC for all frameworks for now.
1826 We can add more demo apps in v2.
1828 * DoYouEvenBench/Full.html: Increment the version to 0.10.
1829 * DoYouEvenBench/InteractiveRunner.html: Don't check disabled suites by default.
1830 * DoYouEvenBench/resources/tests.js:
1831 * DoYouEvenBench/resources/todomvc/dependency-examples: Added.
1832 * DoYouEvenBench/resources/todomvc/dependency-examples/flight: Added.
1833 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/.gitignore: Added.
1834 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/.jshintrc: Added.
1835 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app: Added.
1836 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js: Added.
1837 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/app.js: Added.
1838 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data: Added.
1839 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/stats.js: Added.
1840 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/todos.js: Added.
1841 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/main.js: Added.
1842 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/store.js: Added.
1843 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui: Added.
1844 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js: Added.
1845 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js: Added.
1846 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js: Added.
1847 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js: Added.
1848 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js: Added.
1849 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js: Added.
1850 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/utils.js: Added.
1851 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates: Added.
1852 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/stats.html: Added.
1853 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/todo.html: Added.
1854 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower.json: Added.
1855 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components: Added.
1856 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot: Added.
1857 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js: Added.
1858 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim: Added.
1859 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js: Added.
1860 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Added.
1861 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight: Added.
1862 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib: Added.
1863 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js: Added.
1864 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js: Added.
1865 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js: Added.
1866 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Added.
1867 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js: Added.
1868 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Added.
1869 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Added.
1870 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js: Added.
1871 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js: Added.
1872 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery: Added.
1873 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Added.
1874 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs: Added.
1875 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text: Added.
1876 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js: Added.
1877 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js: Added.
1878 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common: Added.
1879 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Added.
1880 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js: Added.
1881 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Added.
1882 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/index.html: Added.
1883 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/karma.conf.js: Added.
1884 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/package.json: Added.
1885 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/readme.md: Added.
1886 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test: Added.
1887 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/.jshintrc: Added.
1888 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture: Added.
1889 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Added.
1890 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Added.
1891 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Added.
1892 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock: Added.
1893 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Added.
1894 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec: Added.
1895 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data: Added.
1896 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Added.
1897 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Added.
1898 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui: Added.
1899 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Added.
1900 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Added.
1901 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Added.
1902 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/test-main.js: Added.
1904 2014-05-07 Manuel Rego Casasnovas <rego@igalia.com>
1906 [CSS Grid Layout] Remove runtime feature
1907 https://bugs.webkit.org/show_bug.cgi?id=132382
1909 Reviewed by Benjamin Poulain.
1911 Remove set of WebKitCSSGridLayoutEnabled preference.
1913 * Layout/auto-grid-lots-of-data.html:
1914 * Layout/fixed-grid-lots-of-data.html:
1916 2014-05-06 Radu Stavila <stavila@adobe.com>
1918 [CSSRegions] Enabled regions performance tests by default
1919 https://bugs.webkit.org/show_bug.cgi?id=128244
1921 Reviewed by Andreas Kling.
1923 Enabled regions performance tests.
1927 2014-04-25 Andreas Kling <akling@apple.com>
1929 Bump jQuery to same version that dromaeo.com uses.
1931 Rubber-stamped by Ryosuke Niwa.
1933 * Dromaeo/resources/dromaeo/web/lib/jquery-1.10.2.min.js: Added.
1934 * Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html:
1935 * Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html:
1936 * Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html:
1937 * Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:
1938 * Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html:
1939 * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html:
1941 2014-04-18 Geoffrey Garen <ggaren@apple.com>
1943 Added some more Membuster recordings to MallocBench
1944 https://bugs.webkit.org/show_bug.cgi?id=131862
1946 Reviewed by Sam Weinig.
1948 * MallocBench/MallocBench/Benchmark.cpp:
1949 (Benchmark::Benchmark):
1951 * MallocBench/MallocBench/Benchmark.h:
1952 * MallocBench/MallocBench/CommandLine.cpp:
1953 * MallocBench/MallocBench/CommandLine.h:
1954 (CommandLine::runs): Added a --runs option, so we can specify zero runs
1955 for memory warning benchmarks. Those benchmarks want zero runs so that
1956 they can perform a single warmup, which does not free all allocated
1957 objects, and then see how far back to 0MB they can get. Running multiple
1958 times would accumulate leaks, which is not representative of the
1961 * MallocBench/MallocBench/Interpreter.cpp:
1962 (Interpreter::Interpreter):
1964 * MallocBench/MallocBench/Interpreter.h: Support not deallocating all
1965 objects allocated during the recording, so we can do low memory warning
1966 memory use measurements, as above.
1968 * MallocBench/MallocBench/flickr.cpp:
1969 (benchmark_flickr_memory_warning):
1970 * MallocBench/MallocBench/main.cpp:
1972 * MallocBench/MallocBench/reddit.cpp:
1973 (benchmark_reddit_memory_warning):
1974 * MallocBench/MallocBench/theverge.cpp:
1975 (benchmark_theverge_memory_warning): Adopt the API above.
1977 * MallocBench/run-malloc-benchmarks: I took a first pass at listing all
1978 available benchmarks here. Then I commented out the benchmarks that
1979 probably aren't reasonable to run by default.
1981 2014-04-18 Geoffrey Garen <ggaren@apple.com>
1983 MallocBench: removed the --measure-heap option
1984 https://bugs.webkit.org/show_bug.cgi?id=131854
1986 Reviewed by Sam Weinig.
1988 As of <https://bugs.webkit.org/show_bug.cgi?id=131661>, measuring the
1989 heap is fast, so there's no reason to disable it.
1991 * MallocBench/MallocBench/Benchmark.cpp:
1992 (Benchmark::Benchmark):
1994 (Benchmark::printReport):
1995 * MallocBench/MallocBench/Benchmark.h:
1996 * MallocBench/MallocBench/CommandLine.cpp:
1997 (CommandLine::printUsage):
1998 * MallocBench/MallocBench/CommandLine.h:
1999 (CommandLine::heapSize):
2000 (CommandLine::measureHeap): Deleted.
2001 * MallocBench/MallocBench/main.cpp:
2004 2014-04-16 Alexandru Chiculita <achicu@adobe.com>
2006 Improve performance of the RenderLayerCompositor::OverlapMap
2007 https://bugs.webkit.org/show_bug.cgi?id=115063
2009 Reviewed by Simon Fraser.
2011 Testing the performance of computing the overlap of 5000 layers.
2013 * Layout/layers_overlap_2d.html: Added. Using non-composited layers, to check
2014 that the performance on the non-composited path is not changing with this patch.
2015 * Layout/layers_overlap_3d.html: Added. Records the time to do the layout of 5000
2016 non-overlapping 3D layers.
2018 2014-04-15 Zoltan Horvath <zoltan@webkit.org>
2020 [CSS Shapes] Linking stylesheet instead of inline style definition has ruined ShapesRegions test
2021 https://bugs.webkit.org/show_bug.cgi?id=131572
2023 Reviewed by Rob Buis.
2025 In r167022 I moved the common CSS selectors into RegionsShapes.css, then I linked it into the perf test
2026 files, but the measurement results dropped down from about 400ms to 10ms. I realized it's caused by the
2027 linked css rule, so I've put the selectors back into every test case, which fixes the test measurements.
2029 * Layout/Shapes/resources/RegionsShapes.css: Removed.
2030 * Layout/Shapes/resources/RegionsShapesContent.html:
2031 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html:
2032 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html:
2033 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html:
2034 * Layout/Shapes/resources/RegionsShapesContentNoShapes.html:
2036 2014-04-14 Geoffrey Garen <ggaren@apple.com>
2038 MallocBench should scavenge explicitly instead of waiting
2039 https://bugs.webkit.org/show_bug.cgi?id=131661
2041 Reviewed by Andreas Kling.
2043 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Don't build mbmalloc
2044 by default because it will overwrite any other mbmalloc you're working
2045 with in the WebKitBuild directory.
2047 * MallocBench/MallocBench/Benchmark.cpp:
2048 (Benchmark::run): Scavenge explicitly instead of waiting. This is faster,
2049 and it's the only way to get FastMalloc to scavenge. (That's a bug in
2050 FastMalloc, but we don't want it to interfere with broader testing.)
2052 * MallocBench/MallocBench/mbmalloc.cpp:
2053 * MallocBench/MallocBench/mbmalloc.h: Added a scavenge implementation
2056 2014-04-14 Geoffrey Garen <ggaren@apple.com>
2058 A few MallocBench record/replay fixes
2059 https://bugs.webkit.org/show_bug.cgi?id=131627
2061 Reviewed by Andreas Kling.
2063 * MallocBench/MallocBench/Interpreter.cpp:
2064 (Interpreter::run): Accept 0-sized allocations without asserting because
2065 WebKit does that sometimes.
2067 * MallocBench/MallocBench/flickr.ops:
2068 * MallocBench/MallocBench/flickr_memory_warning.ops:
2069 * MallocBench/MallocBench/reddit.ops:
2070 * MallocBench/MallocBench/reddit_memory_warning.ops:
2071 * MallocBench/MallocBench/theverge.ops:
2072 * MallocBench/MallocBench/theverge_memory_warning.ops: Updated these
2073 recordings because a bug in the recording mechanism caused one out of
2074 every few thousand slot values to be bogus.
2076 2014-04-13 Geoffrey Garen <ggaren@apple.com>
2078 Added some website recordings to MallocBench -- taken from Membuster
2079 https://bugs.webkit.org/show_bug.cgi?id=131601
2081 Reviewed by Ryosuke Niwa.
2083 Added flickr, reddit, and theverge -- each recorded from Membuster's
2084 cache, with and without sending Safari a low memory warning.
2086 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
2087 * MallocBench/MallocBench/Benchmark.cpp:
2088 * MallocBench/MallocBench/flickr.cpp: Added.
2090 (benchmark_flickr_memory_warning):
2091 * MallocBench/MallocBench/flickr.h: Added.
2092 * MallocBench/MallocBench/flickr.ops: Added.
2093 * MallocBench/MallocBench/flickr_memory_warning.ops: Added.
2094 * MallocBench/MallocBench/reddit.cpp: Added.
2096 (benchmark_reddit_memory_warning):
2097 * MallocBench/MallocBench/reddit.h: Added.
2098 * MallocBench/MallocBench/reddit.ops: Added.
2099 * MallocBench/MallocBench/reddit_memory_warning.ops: Added.
2100 * MallocBench/MallocBench/theverge.cpp: Added.
2101 (benchmark_theverge):
2102 (benchmark_theverge_memory_warning):
2103 * MallocBench/MallocBench/theverge.h: Added.
2104 * MallocBench/MallocBench/theverge.ops: Added.
2105 * MallocBench/MallocBench/theverge_memory_warning.ops: Added.
2107 2014-04-13 Geoffrey Garen <ggaren@apple.com>
2109 MallocBench record/replay should support realloc
2110 https://bugs.webkit.org/show_bug.cgi?id=131598
2112 Reviewed by Ryosuke Niwa.
2114 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Fixed some linkage
2115 issues that caused us not to fully link to system malloc in the default
2116 case. Also marked mbmalloc.dylib as required so the error message will
2117 be clearer if we mess up.
2119 * MallocBench/MallocBench/Interpreter.cpp:
2121 * MallocBench/MallocBench/Interpreter.h: Added the realloc case, and
2122 upgraded one-letter names to full words.
2124 2014-04-11 Dirk Schulze <krit@webkit.org>
2126 Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
2127 https://bugs.webkit.org/show_bug.cgi?id=79659
2129 Reviewed by Andreas Kling.
2131 Add performance tests for real this time.
2133 * Canvas/compositing-drawimage.html: Added.
2134 * Canvas/compositing-fillRect.html: Added.
2137 2014-04-11 Dirk Schulze <krit@webkit.org>
2139 Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
2140 https://bugs.webkit.org/show_bug.cgi?id=79659
2142 Reviewed by Andreas Kling.
2144 Add performance tests for fillRect() and drawImage() on composited contexts.
2146 * Canvas/compositing-drawimage.html: Added.
2147 * Canvas/compositing-fillRect.html: Added.
2149 2014-04-09 Zoltan Horvath <zoltan@webkit.org>
2151 [CSS Shapes] Add no shapes version of RegionsShapes performance test
2152 https://bugs.webkit.org/show_bug.cgi?id=131455
2154 Reviewed by Ryosuke Niwa.
2156 This is a no shapes version of the RegionsShapes performance test. All the content
2157 will wrap around the floating containers. This way we can compare the runtime/memory
2158 usage of the RegionsShapes test with/without shapes. The test is skipped by default.
2160 * Layout/Shapes/RegionsShapesNoShapes.html: Added.
2161 * Layout/Shapes/resources/RegionsShapesContentNoShapes.html: Added.
2163 2014-04-09 Zoltan Horvath <zoltan@webkit.org>
2165 [CSS Shapes] Add no regions version of RegionsShapes performance test
2166 https://bugs.webkit.org/show_bug.cgi?id=131442
2168 Reviewed by Ryosuke Niwa.
2170 We would like have a no regions version for RegionsShapes performance test. The new
2171 test produces similar layout to RegionsShapes.html without using regions. It is helpful
2172 for us to do further comparisons when necessary. This test is skipped by default.
2174 * Layout/Shapes/RegionsShapesNoRegions.html: Added.
2175 * Layout/Shapes/resources/RegionsShapes.css: Added.
2181 (#roundedInsetShape):
2184 (#selfIntersectingStar):
2188 * Layout/Shapes/resources/RegionsShapesContent.html:
2189 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html: Added.
2190 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html: Added.
2191 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html: Added.
2193 2014-04-02 Geoffrey Garen <ggaren@apple.com>
2197 Try to ignore some Xcode shmutz in MallocBench.
2199 * MallocBench/MallocBench.xcodeproj: Added property svn:ignore.
2201 2014-04-02 Geoffrey Garen <ggaren@apple.com>
2203 Let's benchmark malloc
2204 https://bugs.webkit.org/show_bug.cgi?id=131118
2206 Reviewed by Mark Hahnenberg.
2208 I want to replace fastMalloc with something faster (fasterMalloc?).
2209 I wrote these benchmarks to test / drive development.
2211 * MallocBench: Added.
2212 * MallocBench/MallocBench: Added.
2213 * MallocBench/MallocBench.xcodeproj: Added.
2214 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Added.
2215 * MallocBench/MallocBench/Benchmark.cpp: Added.
2218 (Benchmark::Benchmark):
2219 (Benchmark::printBenchmarks):
2220 (Benchmark::runOnce):
2222 (Benchmark::printReport):
2223 (Benchmark::currentTimeMS):
2224 (Benchmark::currentMemoryBytes):
2225 * MallocBench/MallocBench/Benchmark.h: Added.
2226 (Benchmark::Memory::Memory):
2227 (Benchmark::Memory::operator-):
2228 (Benchmark::isValid):
2229 * MallocBench/MallocBench/CPUCount.cpp: Added.
2231 * MallocBench/MallocBench/CPUCount.h: Added.
2232 * MallocBench/MallocBench/CommandLine.cpp: Added.
2233 (CommandLine::printUsage):
2234 * MallocBench/MallocBench/CommandLine.h: Added.
2235 (CommandLine::isValid):
2236 (CommandLine::benchmarkName):
2237 (CommandLine::isParallel):
2238 (CommandLine::heapSize):
2239 (CommandLine::measureHeap):
2240 * MallocBench/MallocBench/Interpreter.cpp: Added.
2241 (Interpreter::Interpreter):
2242 (Interpreter::~Interpreter):
2244 * MallocBench/MallocBench/Interpreter.h: Added.
2245 * MallocBench/MallocBench/balloon.cpp: Added.
2246 (benchmark_balloon):
2247 * MallocBench/MallocBench/balloon.h: Added.
2248 * MallocBench/MallocBench/big.cpp: Added.
2250 * MallocBench/MallocBench/big.h: Added.
2251 * MallocBench/MallocBench/churn.cpp: Added.
2252 (HeapDouble::operator new):
2253 (HeapDouble::operator delete):
2254 (HeapDouble::HeapDouble):
2255 (HeapDouble::operator+=):
2257 * MallocBench/MallocBench/churn.h: Added.
2258 * MallocBench/MallocBench/crash.ops: Added.
2259 * MallocBench/MallocBench/facebook.cpp: Added.
2260 (benchmark_facebook):
2261 * MallocBench/MallocBench/facebook.h: Added.
2262 * MallocBench/MallocBench/facebook.ops: Added.
2263 * MallocBench/MallocBench/fragment.cpp: Added.
2265 (benchmark_fragment):
2266 (benchmark_fragment_iterate):
2267 * MallocBench/MallocBench/fragment.h: Added.
2268 * MallocBench/MallocBench/list.cpp: Added.
2269 (benchmark_list_allocate):
2270 (benchmark_list_traverse):
2271 * MallocBench/MallocBench/list.h: Added.
2272 * MallocBench/MallocBench/main.cpp: Added.
2274 * MallocBench/MallocBench/mbmalloc.cpp: Added.
2275 * MallocBench/MallocBench/mbmalloc.h: Added.
2276 * MallocBench/MallocBench/medium.cpp: Added.
2278 * MallocBench/MallocBench/medium.h: Added.
2279 * MallocBench/MallocBench/message.cpp: Added.
2280 (benchmark_message_one):
2281 (benchmark_message_many):
2282 * MallocBench/MallocBench/message.h: Added.
2283 * MallocBench/MallocBench/realloc.cpp: Added.
2284 (benchmark_realloc):
2285 * MallocBench/MallocBench/realloc.h: Added.
2286 * MallocBench/MallocBench/tree.cpp: Added.
2287 (benchmark_tree_allocate):
2288 (benchmark_tree_traverse):
2289 (benchmark_tree_churn):
2290 * MallocBench/MallocBench/tree.h: Added.
2291 * MallocBench/run-malloc-benchmarks: Added.
2293 2014-03-29 Mark Lam <mark.lam@apple.com>
2295 LongSpider 3d-morph result check is inappropriate.
2296 <https://webkit.org/b/130928>
2298 Reviewed by Filip Pizlo.
2300 The LongSpider 3d-morph component expected result check is incorrect.
2301 The existing test checks if the leading digit of a sum starts with "-1".
2302 However, it turned out that the expected sum is in the order of
2303 -1.8735013540549517e-16 (i.e. very close to 0). With small errors in
2304 the terms of the sum adding up, it is very easy for the resultant sum
2305 to fluctuate. There is no guarantee that the resultant sum's most
2306 significant digit will start with -1 either.
2308 The fix is to do a tolerance check on all the terms of the sum as well
2309 as the total sum value instead. The tolerance should be more lenient
2310 for the sum which accumulates error from the individual terms, then for
2313 * LongSpider/3d-morph.js:
2316 2014-03-28 Zoltan Horvath <zoltan@webkit.org>
2318 [CSS Shapes] Add performance tests for Shapes with Regions
2319 https://bugs.webkit.org/show_bug.cgi?id=129624
2321 Reviewed by Ryosuke Niwa.
2323 This tests introduces a real-life like page, which contains different types of shapes within
2324 shape-outsides. The content flows through regions, which use media queries. The performance test
2325 loads the actual Shapes-Regions test case into iframes with different page sizes (thus the layout
2326 triggers the media queries as well), and measures its load time.
2328 * Layout/RegionsShapes.html: Added.
2329 * Layout/Shapes/resources/RegionsShapesContent.html: Added.
2331 2014-03-20 Zoltan Horvath <zoltan@webkit.org>
2333 Add option for hiding Confidence Interval Delta on the performance tests results page
2334 https://bugs.webkit.org/show_bug.cgi?id=130483
2336 Reviewed by Ryosuke Niwa.
2338 I've found it useful to hide the confidence interval delta from the results table
2339 sometimes, for example on copying data, or for a clearer look. This patch introduces
2340 a new button for it on the local results page.
2342 * resources/results-template.html:
2344 2014-03-20 Laszlo Vidacs <lvidacs.u-szeged@partner.samsung.com>
2346 Optimize RenderTable::colToEffCol() for tables without colspans
2347 https://bugs.webkit.org/show_bug.cgi?id=129298
2349 Reviewed by Simon Fraser.
2351 Create an alternative fast path to RenderTable colToEffCol() and effColToCol()
2352 when there is no colspan or colspan does not exceed the width of table.
2353 Blink merge https://codereview.chromium.org/154243002 by rhogan
2355 * Layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html: Added.
2356 * Layout/large-table-with-collapsed-borders-and-colspans.html: Added.
2357 * Layout/large-table-with-collapsed-borders-and-no-colspans.html: Added.
2358 * Layout/resources/large-table-with-collapsed-borders.css: Added.
2359 * Layout/resources/large-table-with-collapsed-borders.js: Added.
2361 2014-03-14 Maciej Stachowiak <mjs@apple.com>
2363 Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
2364 https://bugs.webkit.org/show_bug.cgi?id=130276
2365 <rdar://problem/16266927>
2367 Reviewed by Simon Fraser.
2369 * Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html:
2370 * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html:
2371 * Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html:
2372 * Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html:
2373 * LongSpider/3d-morph.js:
2374 * LongSpider/3d-raytrace.js:
2375 * LongSpider/math-cordic.js:
2376 * LongSpider/string-tagcloud.js:
2377 * Parser/resources/html5-8266.html:
2378 * Parser/resources/html5.html:
2380 2014-03-10 Zoltan Horvath <zoltan@webkit.org>
2382 [CSS Shapes] Add performance tests for SVG shape with shape-margin
2383 https://bugs.webkit.org/show_bug.cgi?id=129930
2385 Reviewed by Ryosuke Niwa.
2387 The test is skipped by default.
2389 * Layout/Shapes/ShapeOutsideSVGWithMargin.html: Added.
2390 * Layout/Shapes/resources/shape.svg: Added.
2392 2014-02-19 Zoltan Horvath <zoltan@webkit.org>
2394 [CSS Shapes] Add performance test for stacked floats with shape-outsides
2395 https://bugs.webkit.org/show_bug.cgi?id=128821
2397 Reviewed by Brent Fulgham.
2399 This tests generate stacked floats content with shape-outsides.
2400 The test is skipped by default.
2402 * Layout/Shapes/ShapeOutsideStackedPolygons.html: Added.
2404 2014-02-15 Zoltan Horvath <zoltan@webkit.org>
2406 [CSS Shapes] Add performance test for raster shape with shape-margin
2407 https://bugs.webkit.org/show_bug.cgi?id=128770
2409 Reviewed by Ryosuke Niwa.
2411 This patch introduces a new performance test for image valued shapes,
2412 where shape-margin is applied on the shape.
2413 The test is skipped by default.
2415 * Layout/Shapes/ShapeOutsideRasterWithMargin.html: Added.
2417 2014-02-14 Ryosuke Niwa <rniwa@webkit.org>
2419 Improve the appearance of DYEBench
2420 https://bugs.webkit.org/show_bug.cgi?id=128866
2422 Reviewed by Antti Koivisto.
2424 Add a div that shows progress during the test. Also show 95th percentile,
2425 and use a table instead of pre to show results.
2427 * DoYouEvenBench/Full.html:
2428 (.addResult): Added. Shows results in a table.
2429 (benchmarkClient.willRunTest): Added to show the progress bar.
2430 (benchmarkClient.didRunTest):
2431 (benchmarkClient.didRunSuites):
2432 (benchmarkClient.didFinishLastIteration): Compute 95th percentile using Statistics.js
2434 * DoYouEvenBench/resources/benchmark-runner.js:
2435 (BenchmarkRunner.prototype._appendFrame): Fix the bug where marginLeft and marginTop
2436 weren't correctly parsed. We were treating top as left and bottom as top somehow.
2437 (BenchmarkRunner.prototype._runTestAndRecordResults): Fixed a typo.
2439 2014-02-13 Zoltan Horvath <zoltan@webkit.org>
2441 [CSS Shapes] Add performance test for complex polygon with shape-margin
2442 https://bugs.webkit.org/show_bug.cgi?id=128769
2444 Reviewed by Ryosuke Niwa.
2446 This patch modifies the logic of createShapeOutsideTest to accept multiple
2447 CSS properties from the test. The patch adds performance test for complex
2448 polygon shape (self intersecting at multiple places) case, moreover we
2449 apply shape-margin on the polygon also.
2451 * Layout/Shapes/ShapeOutsideContentBox.html:
2452 * Layout/Shapes/ShapeOutsideInset.html:
2453 * Layout/Shapes/ShapeOutsidePolygonWithMargin.html: Added.
2454 * Layout/Shapes/ShapeOutsideRaster.html:
2455 * Layout/Shapes/ShapeOutsideSimplePolygon.html:
2456 * Layout/Shapes/resources/shapes.js:
2458 2014-02-13 Zoltan Horvath <zoltan@webkit.org>
2460 [CSS Shapes] Add performance test for raster shape
2461 https://bugs.webkit.org/show_bug.cgi?id=128746
2463 Reviewed by Ryosuke Niwa.
2465 This patch adds performance testing for image valued shape-outside.
2466 The test is skipped by default for now.
2468 * Layout/Shapes/ShapeOutsideRaster.html: Added.
2469 * Layout/Shapes/resources/shape.gif: Added.
2471 2014-02-10 Zoltan Horvath <zoltan@webkit.org>
2473 [CSS Shapes] Add initial performance tests for polygon shape
2474 https://bugs.webkit.org/show_bug.cgi?id=128554
2476 Reviewed by Ryosuke Niwa.
2478 This patch adds performance testing for simple polygon shape-outside.
2479 The Shapes performance tests directory is skipped by default.
2481 * Layout/Shapes/ShapeOutsideSimplePolygon.html: Added.
2483 2014-02-07 Zoltan Horvath <zoltan@webkit.org>
2485 [CSS Shapes] Add initial performance tests for inset shape
2486 https://bugs.webkit.org/show_bug.cgi?id=128378
2488 Reviewed by Ryosuke Niwa.
2490 * Layout/Shapes/ShapeOutsideContentBox.html: Move js to shapes.js.
2491 * Layout/Shapes/ShapeOutsideInset.html: Added.
2492 * Layout/Shapes/resources/shapes.js: Added.
2495 2014-02-04 Ryosuke Niwa <rniwa@webkit.org>
2497 Undelete the "build" directory erroneously removed in r163427.
2499 * DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/director/build:
2501 2014-02-04 Ryosuke Niwa <rniwa@webkit.org>
2503 Revert the change made in r162216 as it broke the benchmark on shipping Safari.
2505 * DoYouEvenBench/resources/benchmark-runner.js:
2507 2014-02-04 Ryosuke Niwa <rniwa@webkit.org>
2509 DoYouEvenBench: Update Ember.js test case
2510 https://bugs.webkit.org/show_bug.cgi?id=128227
2512 Reviewed by Benjamin Poulain.
2514 Updated the Ember.js TodoMVC implementation.
2516 * DoYouEvenBench/resources/tests.js:
2517 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower.json:
2518 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Added.
2519 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js:
2520 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:
2521 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js:
2522 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js:
2523 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
2524 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js:
2525 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/index.html:
2526 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/app.js:
2527 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js:
2528 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js:
2529 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Added.
2530 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Removed.
2531 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/models/store.js: Removed.
2532 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/models/todo.js:
2533 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/router.js:
2534 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js:
2535 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Added.
2536 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/readme.md:
2537 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/test.html:
2539 2014-02-04 Zoltan Horvath <zoltan@webkit.org>
2541 [CSS Shapes] Add initial performance test for shape-outside: content-box
2542 https://bugs.webkit.org/show_bug.cgi?id=128190
2544 Reviewed by Ryosuke Niwa.
2546 I've introduced Shapes subdirectory in Layout, every CSS Shapes related performance tests should
2547 go there in the future. The initial performance tests uses 'shape-outside: content-box' in order
2548 to tests the code paths of the Shapes implementation. I also introduced shapes.js, which allows us
2549 to easily add new, simple performance tests for shape-outside.
2551 The entire progress is tracked under #128188 meta bug.
2553 * Layout/Shapes/ShapeOutsideContentBox.html: Added.
2554 * Layout/Shapes/resources/shapes.css: Added.
2555 * Layout/Shapes/resources/shapes.js: Added.
2556 * Skipped: We skip running the tests by default for now.
2558 2014-01-17 Manuel Rego Casasnovas <rego@igalia.com>
2560 [CSS Regions] Minor fixes in regions performance tests
2561 https://bugs.webkit.org/show_bug.cgi?id=127041
2563 Reviewed by Ryosuke Niwa.
2565 Fix minor issues in CSS Regions performance tests.
2567 * Layout/RegionsAuto.html: Change type to lower case.
2568 * Layout/RegionsAutoMaxHeight.html: Ditto.
2569 * Layout/RegionsFixed.html: Ditto.
2570 * Layout/RegionsFixedShort.html: Ditto.
2571 * Layout/RegionsSelection.html: Ditto. Move test methods from regions.js.
2572 * Layout/resources/regions.js: Remove moved methods.
2574 2014-01-17 Ryosuke Niwa <rniwa@webkit.org>
2576 Host DoYouEvenBench on webkit.org
2577 https://bugs.webkit.org/show_bug.cgi?id=127185
2579 Reviewed by Benjamin Poulain.
2581 Compute the resources directory relative to the benchmark-runner's location
2582 so that we can load tests even if the runner HTML was located elsewhere.
2584 * DoYouEvenBench/Full.html:
2585 * DoYouEvenBench/resources/benchmark-runner.js:
2586 (BenchmarkState._containingDirectory):
2588 2014-01-17 Ryosuke Niwa <rniwa@webkit.org>
2590 DoYouEvenBench: Move flightjs-example-app and todomvc into resources
2591 https://bugs.webkit.org/show_bug.cgi?id=127183
2593 Rubber-stamped by Anders Carlsson.
2595 * DoYouEvenBench/InteractiveRunner.html: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
2596 * DoYouEvenBench/benchmark.html: Removed.
2597 * DoYouEvenBench/flightjs-example-app: Removed.
2598 * DoYouEvenBench/flightjs-example-app/LICENSE.md: Removed.
2599 * DoYouEvenBench/flightjs-example-app/README.md: Removed.
2600 * DoYouEvenBench/flightjs-example-app/app: Removed.
2601 * DoYouEvenBench/flightjs-example-app/app/boot: Removed.
2602 * DoYouEvenBench/flightjs-example-app/app/boot/page.js: Removed.
2603 * DoYouEvenBench/flightjs-example-app/app/component_data: Removed.
2604 * DoYouEvenBench/flightjs-example-app/app/component_data/compose_box.js: Removed.
2605 * DoYouEvenBench/flightjs-example-app/app/component_data/mail_items.js: Removed.
2606 * DoYouEvenBench/flightjs-example-app/app/component_data/move_to.js: Removed.
2607 * DoYouEvenBench/flightjs-example-app/app/component_ui: Removed.
2608 * DoYouEvenBench/flightjs-example-app/app/component_ui/compose_box.js: Removed.
2609 * DoYouEvenBench/flightjs-example-app/app/component_ui/folders.js: Removed.
2610 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_controls.js: Removed.
2611 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_items.js: Removed.
2612 * DoYouEvenBench/flightjs-example-app/app/component_ui/move_to_selector.js: Removed.
2613 * DoYouEvenBench/flightjs-example-app/app/component_ui/with_select.js: Removed.
2614 * DoYouEvenBench/flightjs-example-app/app/css: Removed.
2615 * DoYouEvenBench/flightjs-example-app/app/css/custom.css: Removed.
2616 * DoYouEvenBench/flightjs-example-app/app/data.js: Removed.
2617 * DoYouEvenBench/flightjs-example-app/app/templates.js: Removed.
2618 * DoYouEvenBench/flightjs-example-app/components: Removed.
2619 * DoYouEvenBench/flightjs-example-app/components/bootstrap: Removed.
2620 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css: Removed.
2621 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Removed.
2622 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Removed.
2623 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.css: Removed.
2624 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Removed.
2625 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img: Removed.
2626 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Removed.
2627 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Removed.
2628 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js: Removed.
2629 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.js: Removed.
2630 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Removed.
2631 * DoYouEvenBench/flightjs-example-app/components/es5-shim: Removed.
2632 * DoYouEvenBench/flightjs-example-app/components/es5-shim/.gitignore: Removed.
2633 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CHANGES: Removed.
2634 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Removed.
2635 * DoYouEvenBench/flightjs-example-app/components/es5-shim/LICENSE: Removed.
2636 * DoYouEvenBench/flightjs-example-app/components/es5-shim/README.md: Removed.
2637 * DoYouEvenBench/flightjs-example-app/components/es5-shim/component.json: Removed.
2638 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.js: Removed.
2639 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.min.js: Removed.
2640 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.js: Removed.
2641 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.min.js: Removed.
2642 * DoYouEvenBench/flightjs-example-app/components/es5-shim/package.json: Removed.
2643 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests: Removed.
2644 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers: Removed.
2645 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Removed.
2646 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Removed.
2647 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Removed.
2648 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/index.html: Removed.
2649 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib: Removed.
2650 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Removed.
2651 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Removed.
2652 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Removed.
2653 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Removed.
2654 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Removed.
2655 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec: Removed.
2656 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Removed.
2657 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Removed.
2658 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Removed.
2659 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Removed.
2660 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Removed.
2661 * DoYouEvenBench/flightjs-example-app/components/flight: Removed.
2662 * DoYouEvenBench/flightjs-example-app/components/flight/.travis.yml: Removed.
2663 * DoYouEvenBench/flightjs-example-app/components/flight/lib: Removed.
2664 * DoYouEvenBench/flightjs-example-app/components/flight/lib/advice.js: Removed.
2665 * DoYouEvenBench/flightjs-example-app/components/flight/lib/component.js: Removed.
2666 * DoYouEvenBench/flightjs-example-app/components/flight/lib/compose.js: Removed.
2667 * DoYouEvenBench/flightjs-example-app/components/flight/lib/index.js: Removed.
2668 * DoYouEvenBench/flightjs-example-app/components/flight/lib/logger.js: Removed.
2669 * DoYouEvenBench/flightjs-example-app/components/flight/lib/registry.js: Removed.
2670 * DoYouEvenBench/flightjs-example-app/components/flight/lib/utils.js: Removed.
2671 * DoYouEvenBench/flightjs-example-app/components/flight/tools: Removed.
2672 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug: Removed.
2673 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug/debug.js: Removed.
2674 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight: Removed.
2675 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/LICENSE.md: Removed.
2676 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/README.md: Removed.
2677 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/bower.json: Removed.
2678 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib: Removed.
2679 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Removed.
2680 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery: Removed.
2681 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib: Removed.
2682 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Removed.
2683 * DoYouEvenBench/flightjs-example-app/components/jquery: Removed.
2684 * DoYouEvenBench/flightjs-example-app/components/jquery/component.json: Removed.
2685 * DoYouEvenBench/flightjs-example-app/components/jquery/composer.json: Removed.
2686 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.js: Removed.
2687 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.min.js: Removed.
2688 * DoYouEvenBench/flightjs-example-app/components/mustache: Removed.
2689 * DoYouEvenBench/flightjs-example-app/components/mustache/mustache.js: Removed.
2690 * DoYouEvenBench/flightjs-example-app/components/requirejs: Removed.
2691 * DoYouEvenBench/flightjs-example-app/components/requirejs/require.js: Removed.
2692 * DoYouEvenBench/flightjs-example-app/index.html: Removed.
2693 * DoYouEvenBench/flightjs-example-app/karma.conf.js: Removed.
2694 * DoYouEvenBench/flightjs-example-app/package.json: Removed.
2695 * DoYouEvenBench/flightjs-example-app/requireMain.js: Removed.
2696 * DoYouEvenBench/resources/benchmark-runner.js:
2697 * DoYouEvenBench/resources/flightjs-example-app: Copied from PerformanceTests/DoYouEvenBench/flightjs-example-app.
2698 * DoYouEvenBench/resources/todomvc: Copied from PerformanceTests/DoYouEvenBench/todomvc.
2699 * DoYouEvenBench/todomvc: Removed.
2700 * DoYouEvenBench/todomvc/architecture-examples: Removed.
2701 * DoYouEvenBench/todomvc/architecture-examples/angularjs: Removed.
2702 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower.json: Removed.
2703 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components: Removed.
2704 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular: Removed.
2705 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks: Removed.
2706 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Removed.
2707 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Removed.
2708 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common: Removed.
2709 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Removed.
2710 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Removed.
2711 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Removed.
2712 * DoYouEvenBench/todomvc/architecture-examples/angularjs/index.html: Removed.
2713 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js: Removed.
2714 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/app.js: Removed.
2715 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers: Removed.
2716 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Removed.
2717 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives: Removed.
2718 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Removed.
2719 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Removed.
2720 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Removed.
2721 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services: Removed.
2722 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Removed.
2723 * DoYouEvenBench/todomvc/architecture-examples/angularjs/readme.md: Removed.
2724 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test: Removed.
2725 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config: Removed.
2726 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Removed.
2727 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/package.json: Removed.
2728 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/readme.md: Removed.
2729 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit: Removed.
2730 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Removed.
2731 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Removed.
2732 * DoYouEvenBench/todomvc/architecture-examples/backbone: Removed.
2733 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower.json: Removed.
2734 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components: Removed.
2735 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone: Removed.
2736 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage: Removed.
2737 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Removed.
2738 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Removed.
2739 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery: Removed.
2740 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Removed.
2741 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common: Removed.
2742 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Removed.
2743 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Removed.
2744 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Removed.
2745 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore: Removed.
2746 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Removed.
2747 * DoYouEvenBench/todomvc/architecture-examples/backbone/index.html: Removed.
2748 * DoYouEvenBench/todomvc/architecture-examples/backbone/js: Removed.
2749 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/app.js: Removed.
2750 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections: Removed.
2751 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections/todos.js: Removed.
2752 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models: Removed.
2753 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models/todo.js: Removed.
2754 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers: Removed.
2755 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers/router.js: Removed.
2756 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views: Removed.
2757 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/app-view.js: Removed.
2758 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/todo-view.js: Removed.
2759 * DoYouEvenBench/todomvc/architecture-examples/backbone/readme.md: Removed.
2760 * DoYouEvenBench/todomvc/architecture-examples/emberjs: Removed.
2761 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower.json: Removed.
2762 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components: Removed.
2763 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember: Removed.
2764 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter: Removed.
2765 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Removed.
2766 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Removed.
2767 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars: Removed.
2768 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Removed.
2769 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery: Removed.
2770 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Removed.
2771 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common: Removed.
2772 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Removed.
2773 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Removed.
2774 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Removed.
2775 * DoYouEvenBench/todomvc/architecture-examples/emberjs/index.html: Removed.
2776 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js: Removed.
2777 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/app.js: Removed.
2778 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers: Removed.
2779 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Removed.
2780 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Removed.
2781 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs: Removed.
2782 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Removed.
2783 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models: Removed.
2784 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/store.js: Removed.
2785 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/todo.js: Removed.
2786 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/router.js: Removed.
2787 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views: Removed.
2788 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Removed.
2789 * DoYouEvenBench/todomvc/architecture-examples/emberjs/readme.md: Removed.
2790 * DoYouEvenBench/todomvc/architecture-examples/emberjs/test.html: Removed.
2791 * DoYouEvenBench/todomvc/architecture-examples/jquery: Removed.
2792 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower.json: Removed.
2793 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components: Removed.
2794 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars: Removed.
2795 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Removed.
2796 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery: Removed.
2797 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Removed.
2798 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common: Removed.
2799 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Removed.
2800 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Removed.
2801 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Removed.
2802 * DoYouEvenBench/todomvc/architecture-examples/jquery/css: Removed.
2803 * DoYouEvenBench/todomvc/architecture-examples/jquery/css/app.css: Removed.
2804 * DoYouEvenBench/todomvc/architecture-examples/jquery/index.html: Removed.
2805 * DoYouEvenBench/todomvc/architecture-examples/jquery/js: Removed.
2806 * DoYouEvenBench/todomvc/architecture-examples/jquery/js/app.js: Removed.
2807 * DoYouEvenBench/todomvc/architecture-examples/jquery/readme.md: Removed.
2808 * DoYouEvenBench/todomvc/labs: Removed.
2809 * DoYouEvenBench/todomvc/labs/architecture-examples: Removed.
2810 * DoYouEvenBench/todomvc/labs/architecture-examples/react: Removed.
2811 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower.json: Removed.
2812 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components: Removed.
2813 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director: Removed.
2814 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Removed.
2815 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Removed.
2816 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build: Removed.
2817 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js: Removed.
2818 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js: Removed.
2819 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js: Removed.
2820 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react: Removed.
2821 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Removed.
2822 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Removed.
2823 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Removed.
2824 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Removed.
2825 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common: Removed.
2826 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Removed.
2827 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Removed.
2828 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Removed.
2829 * DoYouEvenBench/todomvc/labs/architecture-examples/react/index.html: Removed.
2830 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js: Removed.
2831 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/app.jsx: Removed.
2832 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/footer.jsx: Removed.
2833 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Removed.
2834 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/utils.jsx: Removed.
2835 * DoYouEvenBench/todomvc/labs/architecture-examples/react/readme.md: Removed.
2836 * DoYouEvenBench/todomvc/license.md: Removed.
2837 * DoYouEvenBench/todomvc/readme.md: Removed.
2838 * DoYouEvenBench/todomvc/vanilla-examples: Removed.
2839 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs: Removed.
2840 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower.json: Removed.
2841 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components: Removed.
2842 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common: Removed.
2843 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Removed.
2844 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Removed.
2845 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Removed.
2846 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/index.html: Removed.
2847 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js: Removed.
2848 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/app.js: Removed.
2849 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/controller.js: Removed.
2850 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/helpers.js: Removed.
2851 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/model.js: Removed.
2852 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/store.js: Removed.
2853 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/view.js: Removed.
2854 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/readme.md: Removed.
2857 2014-01-17 Ryosuke Niwa <rniwa@webkit.org>
2859 Build fix. Skip HTML files that are not tests.
2863 2014-01-16 Ryosuke Niwa <rniwa@webkit.org>
2865 Automate DoYouEvenBench
2866 https://bugs.webkit.org/show_bug.cgi?id=124497
2868 Reviewed by Geoffrey Garen.
2870 Enable DoYouEvenBench/Full.html on perf bots by default.
2872 Put a space between the time and ms, and fixed a typo in runner.js so that the aggregator name will be reported.
2874 * DoYouEvenBench/Full.html:
2876 * resources/runner.js:
2878 2014-01-15 Manuel Rego Casasnovas <rego@igalia.com>
2880 [CSS Regions] Add performance tests for selection with mixed content
2881 https://bugs.webkit.org/show_bug.cgi?id=126427
2883 Reviewed by Ryosuke Niwa.
2885 Add new performance tests for selection in CSS Regions mixing regular
2886 content with regions. 2 new tests are added, one checking select all
2887 command and another simulating a user selection passing through all the
2888 paragraphs (similar to Layout/RegionsSelection.html).
2890 Test are skipped for now while implementation of selection in CSS
2891 Regions is still evolving.
2893 * Layout/RegionsExtendingSelectionMixedContent.html: Added.
2894 * Layout/RegionsSelectAllMixedContent.html: Added.
2895 * Layout/resources/regions.css:
2897 * Layout/resources/regions.js:
2900 2014-01-14 Ryosuke Niwa <rniwa@webkit.org>
2902 Make DoYouEvenBench runnable by run-perf-tests
2903 https://bugs.webkit.org/show_bug.cgi?id=127030
2905 Reviewed by Andreas Kling.
2907 Added Full.html that runs 5 iterations of DoYouEvenBench. This is the canonical DoYouEvenBench,
2908 which is also runnable by run-perf-tests.
2910 * DoYouEvenBench/Full.html: Added.
2912 * DoYouEvenBench/benchmark.html:
2913 (startTest): Updated the code to account for the fact old measuredValues is pushed down to tests
2914 property and we now have total property so that we don't have to manually compute the total.
2916 * DoYouEvenBench/resources/benchmark-report.js: Added. When we're inside a DRT/WTR, use
2917 PerfTestRunner to output that can be parsed by run-perf-tests. Do the same when the query part
2918 or the fragment part of the current URL is "webkit" for debugging purposes.
2920 * DoYouEvenBench/resources/benchmark-runner.js:
2922 (BenchmarkRunner.prototype._appendFrame): Position the frame at (0, 0) inside DRT and WTR since
2923 we have exactly 800px by 600px inside those two test runners. Also always insert the iframe as
2924 the first child of body to avoid inserting it after the pre inserted by the test runner.
2925 (BenchmarkRunner.prototype.step): Initializes _measuredValues.
2926 (BenchmarkRunner.prototype.runAllSteps): Merged callNextStep in benchmark.html.
2927 (BenchmarkRunner.prototype.runMultipleIterations): Added.
2928 (BenchmarkRunner.prototype._runTestAndRecordResults): Compute the grand total among suites.
2929 Also push down the sync and async time into tests property for consistency.
2930 (BenchmarkRunner.prototype._finalize):
2932 * Dromaeo/resources/dromaeorunner.js:
2933 (DRT.testObject): Renamed dromaeoIterationCount to customIterationCount as this option is also
2934 used by DoYouEvenBench.
2936 * resources/runner.js: Ditto.
2937 (.finish): Spit out the aggregator name.
2939 2014-01-07 Ryosuke Niwa <rniwa@webkit.org>
2941 DoYouEvenBench: Turn BenchmarkRunner into a real class
2942 https://bugs.webkit.org/show_bug.cgi?id=126613
2944 Reviewed by Stephanie Lewis.
2946 Made BenchmarkRunner an instantiatable class. Made tests.js simply create an array of suite objects
2947 instead of calling BenchmarkRunner.Suite now that we can have mulitple instances of BenchmarkRunner.
2949 * DoYouEvenBench/benchmark.html:
2950 (formatTestName): Moved and renamed from BenchmarkRunner._testName.
2951 (createUIForSuites): Extracted from a giant blob of code.
2953 * DoYouEvenBench/resources/benchmark-runner.js:
2954 (BenchmarkRunner): Added.
2955 (BenchmarkRunner.prototype.waitForElement):
2956 (BenchmarkRunner.prototype._removeFrame):
2957 (BenchmarkRunner.prototype._appendFrame):
2958 (BenchmarkRunner.prototype._waitAndWarmUp):
2959 (BenchmarkRunner.prototype._runTest):
2960 (BenchmarkState.prototype.prepareCurrentSuite):
2961 (BenchmarkRunner.prototype.step):
2962 (BenchmarkRunner.prototype._runTestAndRecordResults):
2963 (BenchmarkRunner.prototype._finalize):
2964 * DoYouEvenBench/resources/tests.js:
2966 2014-01-07 Ryosuke Niwa <rniwa@webkit.org>
2968 DoYouEvenBench: Extract tests and runner code from benchmark.js/html
2969 https://bugs.webkit.org/show_bug.cgi?id=126596
2971 Reviewed by Stephanie Lewis.
2973 Extracted benchmark-runner.js and tests.js out of benchmark.js and benchmark.html.
2975 Added a "client" interface to BenchmarkRunner so that benchmark.html could register necessary hooks to
2976 update its UI. Also made BenchmarkRunner store a tree of results so that the serialization of test names
2977 could be isolated from BenchmarkRunner itself in the future.
2979 * DoYouEvenBench/benchmark.html:
2980 Moved the code to instantiate and update UI here from benchmark.js. The test code was moved out of this
2981 file into resources/tests.js.
2983 * DoYouEvenBench/resources/benchmark-runner.js: Renamed from PerformanceTests/DoYouEvenBench/benchmark.js.
2984 (SimplePromise): Moved from benchmark.js
2985 (SimplePromise.prototype.then): Ditto.
2986 (SimplePromise.prototype.resolve): Ditto.
2987 (BenchmarkTestStep): Added. Wraps each test step.
2988 (BenchmarkRunner.suite): Moved from benchmark.js.
2989 (BenchmarkRunner.setClient): Added.
2990 (BenchmarkRunner.waitForElement): Moved.
2991 (BenchmarkRunner._removeFrame): Ditto.
2992 (BenchmarkRunner._appendFrame): Ditto. Set the width and the height of the iframe as they're more than
2993 presentational as they affect performance.
2994 (BenchmarkRunner._waitAndWarmUp): Ditto.
2995 (BenchmarkRunner._runTest): Ditto.
2996 (BenchmarkRunner._testName): Ditto.
2997 (BenchmarkState): Ditto.
2998 (BenchmarkState.prototype.currentSuite): Ditto.
2999 (BenchmarkState.prototype.currentTest): Ditto.
3000 (BenchmarkState.prototype.next): Ditto.
3001 (BenchmarkState.prototype.isFirstTest): Ditto.
3002 (BenchmarkState.prototype.prepareCurrentSuite): Ditto.
3003 (BenchmarkRunner.step): Ditto.
3004 (BenchmarkRunner._runTestAndRecordResults): Ditto. Note the code to update the UI has been move to
3005 benchmark.html. Also moved the code to accumulate the totals here from _finalize.
3006 (BenchmarkRunner._finalize): Moved.
3008 * DoYouEvenBench/resources/tests.js: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
3009 Uses BenchmarkTestStep instead of an array for each test step.
3011 2014-01-02 Myles C. Maxfield <mmaxfield@apple.com>
3013 Allow ImageBuffer to re-use IOSurfaces
3014 https://bugs.webkit.org/show_bug.cgi?id=125477
3016 Reviewed by Geoff Garen.
3018 This test times creating a variety of different sizes of canvases
3019 once some have already been created. The second creation of the
3020 canvases should re-use the existing IOSurfaces.
3022 * Canvas/reuse.html: Added.
3024 2013-12-23 Commit Queue <commit-queue@webkit.org>
3026 Unreviewed, rolling out r160945.
3027 http://trac.webkit.org/changeset/160945
3028 https://bugs.webkit.org/show_bug.cgi?id=126164
3030 Seems to have broken multiple canvas tests (Requested by ap on
3033 * Canvas/reuse.html: Removed.
3035 2013-12-09 Myles C. Maxfield <mmaxfield@apple.com>
3037 Allow ImageBuffer to re-use IOSurfaces
3038 https://bugs.webkit.org/show_bug.cgi?id=125477
3040 Reviewed by Geoff Garen.
3042 This test times creating a variety of different sizes of canvases
3043 once some have already been created. The second creation of the
3044 canvases should re-use the existing IOSurfaces.
3046 * Canvas/reuse.html: Added.
3048 2013-12-15 Ryosuke Niwa <rniwa@webkit.org>
3050 REGRESSION: 2x regression on Dromaeo DOM query tests
3051 https://bugs.webkit.org/show_bug.cgi?id=125377
3053 Reviewed by Filip Pizlo.
3055 Added a micro-benchmark for updating a named property on document.
3057 * Bindings/update-name-getter.html: Added.
3060 2013-12-03 Manuel Rego Casasnovas <rego@igalia.com>
3062 [CSS Regions] Fix Layout/RegionsSelection.html in Mac platform
3063 https://bugs.webkit.org/show_bug.cgi?id=124963
3065 Reviewed by Ryosuke Niwa.
3067 Layout/RegionsSelection.html introduced in r159488 was not working in
3068 Mac platform because of it was trying to use mouse events out of the
3069 window dimensions. Use collapse() and extend() methods from Selection
3070 object to solve the issue.
3072 * Layout/resources/regions.js: Use collapse() and extend() instead of
3075 2013-11-27 Ryosuke Niwa <rniwa@webkit.org>
3077 Build fix after r159805.
3079 * resources/runner.js:
3081 2013-11-26 Sergio Villar Senin <svillar@igalia.com>
3083 [CSS Grid Layout] Support grid-definition-{rows|columns} repeat() syntax
3084 https://bugs.webkit.org/show_bug.cgi?id=103312
3086 Reviewed by Andreas Kling.
3088 Use the repeat() syntax to build the huge grids used by the
3091 * Layout/auto-grid-lots-of-data.html:
3092 * Layout/fixed-grid-lots-of-data.html:
3094 2013-11-26 Ryosuke Niwa <rniwa@webkit.org>
3096 Record subtest values in Dromaeo tests
3097 https://bugs.webkit.org/show_bug.cgi?id=124498
3099 Reviewed by Andreas Kling.
3101 Made Dromaeo's test runner report values in DRT.progress via newly added PerfTestRunner.reportValues.
3103 * Dromaeo/resources/dromaeorunner.js:
3104 (.): Moved the definition out of DRT.setup.
3106 (DRT.testObject): Extracted from DRT.setup. Set the subtest name and continueTesting.
3107 continueTesting is set true for subtests; i.e. when name is specified.
3108 (DRT.progress): Call PerfTestRunner.reportValues to report subtest results.
3109 (DRT.teardown): Call PerfTestRunner.reportValues instead of measureValueAsync.
3111 * resources/runner.js: Made various changes for newly added PerfTestRunner.reportValues.
3112 (.): Moved the initialization of completedIterations, results, jsHeapResults, and mallocHeapResults into
3113 start since they need to be initialized before running each subtest. Initialize logLines here since we
3114 need to use the same logger for all subtests.
3115 (.start): Initialize the variables mentioned above here. Also respect doNotLogStart used by reportValues.
3116 (ignoreWarmUpAndLog): Added doNotLogProgress. Used by reportValues since it reports all values at once.
3117 (finish): Compute the metric name such as FrameFrame and Runs from unit. Also don't log or notify done
3118 when continueTesting is set on the test object.
3119 (PerfTestRunner.reportValues): Added. Reports all values for the main/sub test.
3121 2013-11-26 Ryosuke Niwa <rniwa@webkit.org>
3123 Remove replay performance tests as it's not actively maintained
3124 https://bugs.webkit.org/show_bug.cgi?id=124764
3126 Reviewed by Andreas Kling.
3128 Removed the replay performance tests. We can add them back when time comes.
3130 * Replay/Chinese/chinaz.com.replay: Removed.
3131 * Replay/Chinese/www.163.com.replay: Removed.
3132 * Replay/Chinese/www.alipay.com.replay: Removed.
3133 * Replay/Chinese/www.baidu.com.replay: Removed.
3134 * Replay/Chinese/www.csdn.net.replay: Removed.
3135 * Replay/Chinese/www.douban.com.replay: Removed.
3136 * Replay/Chinese/www.hao123.com.replay: Removed.
3137 * Replay/Chinese/www.xinhuanet.com.replay: Removed.
3138 * Replay/Chinese/www.xunlei.com.replay: Removed.
3139 * Replay/Chinese/www.youku.com.replay: Removed.
3140 * Replay/English/beatonna.livejournal.com.replay: Removed.
3141 * Replay/English/cakewrecks.blogspot.com.replay: Removed.
3142 * Replay/English/chemistry.about.com.replay: Removed.
3143 * Replay/English/digg.com.replay: Removed.
3144 * Replay/English/en.wikipedia.org-rorschach_test.replay: Removed.
3145 * Replay/English/icanhascheezburger.com.replay: Removed.
3146 * Replay/English/imgur.com-gallery.replay: Removed.
3147 * Replay/English/online.wsj.com.replay: Removed.
3148 * Replay/English/stockoverflow.com-best-comment.replay: Removed.
3149 * Replay/English/www.alibaba.com.replay: Removed.
3150 * Replay/English/www.amazon.com-kindle.replay: Removed.
3151 * Replay/English/www.apple.com.replay: Removed.
3152 * Replay/English/www.cnet.com.replay: Removed.
3153 * Replay/English/www.dailymotion.com.replay: Removed.
3154 * Replay/English/www.ehow.com-prevent-fire.replay: Removed.
3155 * Replay/English/www.filestube.com-amy-adams.replay: Removed.
3156 * Replay/English/www.foxnews.replay: Removed.
3157 * Replay/English/www.huffingtonpost.com.replay: Removed.
3158 * Replay/English/www.imdb.com-twilight.replay: Removed.
3159 * Replay/English/www.mozilla.com-all-order.replay: Removed.
3160 * Replay/English/www.php.net.replay: Removed.
3161 * Replay/English/www.reddit.com.replay: Removed.
3162 * Replay/English/www.telegraph.co.uk.replay: Removed.
3163 * Replay/English/www.w3.org-htmlcss.replay: Removed.
3164 * Replay/English/www.w3schools.com-html.replay: Removed.
3165 * Replay/English/www.youtube.com-music.replay: Removed.
3166 * Replay/French/www.orange.fr.replay: Removed.
3167 * Replay/Italian/www.repubblica.it.replay: Removed.
3168 * Replay/Japanese/2ch.net-newsplus.replay: Removed.
3169 * Replay/Japanese/entameblog.seesaa.net.replay: Removed.
3170 * Replay/Japanese/ja.wikipedia.org.replay: Removed.
3171 * Replay/Japanese/www.hatena.ne.jp.replay: Removed.
3172 * Replay/Japanese/www.livedoor.com.replay: Removed.
3173 * Replay/Japanese/www.nicovideo.jp.replay: Removed.
3174 * Replay/Japanese/www.rakuten.co.jp.replay: Removed.
3175 * Replay/Japanese/www.yahoo.co.jp.replay: Removed.
3176 * Replay/Korean/www.naver.com.replay: Removed.
3177 * Replay/Persian/blogfa.com.replay: Removed.
3178 * Replay/Polish/www.wp.pl.replay: Removed.
3179 * Replay/Portuguese/www.uol.com.br.replay: Removed.
3180 * Replay/Russian/lenta.ru.replay: Removed.
3181 * Replay/Russian/vkontakte.ru-help.replay: Removed.
3182 * Replay/Russian/www.ixbt.com.replay: Removed.
3183 * Replay/Russian/www.kp.ru.replay: Removed.
3184 * Replay/Russian/www.liveinternet.ru.replay: Removed.
3185 * Replay/Russian/www.pravda.ru.replay: Removed.
3186 * Replay/Russian/www.rambler.ru.replay: Removed.
3187 * Replay/Russian/www.ucoz.ru.replay: Removed.
3188 * Replay/Russian/www.yandex.ru.replay: Removed.
3189 * Replay/Spanish/www.taringa.net.replay: Removed.
3190 * Replay/Swedish/www.flashback.se.replay: Removed.
3191 * Replay/Swedish/www.tradera.com.replay: Removed.
3192 * Replay/www.google.com.replay: Removed.
3193 * Replay/www.techcrunch.com.replay: Removed.
3194 * Replay/www.youtube.com.replay: Removed.
3196 2013-11-22 Ryosuke Niwa <rniwa@webkit.org>
3198 Layout Test editing/deleting/password-delete-performance.html is failing
3199 https://bugs.webkit.org/show_bug.cgi?id=124781
3201 Reviewed by Alexey Proskuryakov.
3203 Add a new performance test to replace editing/deleting/password-delete-performance.html.
3204 We skip this test by default since it's a micro benchmark.
3206 * Interactive/DeletingInPasswordField.html: Added.
3209 2013-11-18 Sergio Villar Senin <svillar@igalia.com>
3211 [CSS Grid Layout] Improve content-sized track layout
3212 https://bugs.webkit.org/show_bug.cgi?id=124408
3214 Reviewed by Dean Jackson.
3216 From Blink r156122 by <jchaffraix@chromium.org>
3218 New test to check the performance of layouting grids with content sized tracks.
3220 * Layout/auto-grid-lots-of-data.html: Added.
3222 2013-11-08 Sergio Villar Senin <svillar@igalia.com>
3224 [CSS Grid Layout] Run the content-sized tracks sizing algorithm only when required
3225 https://bugs.webkit.org/show_bug.cgi?id=124039
3227 Reviewed by Dean Jackson.
3229 From Blink r156028 and r156168 by <jchaffraix@chromium.org>.
3231 New performance tests for layouts in grids with fixed size tracks.
3233 * Layout/fixed-grid-lots-of-data.html: Added.
3235 2013-11-19 Manuel Rego Casasnovas <rego@igalia.com>
3237 [CSS Regions] Add performance test for selection
3238 https://bugs.webkit.org/show_bug.cgi?id=119230
3240 Reviewed by Ryosuke Niwa.
3242 Add new performance test for selection in CSS Regions. It checks a
3243 selection from the first region to the last one, passing through all the
3246 Test is skipped for now while implementation of selection in CSS Regions
3249 * Layout/RegionsSelection.html: Added.
3250 * Layout/resources/regions.js:
3254 2013-11-18 Ryosuke Niwa <rniwa@webkit.org>
3256 Simplify and reformat the output of performance tests inside test runners
3257 https://bugs.webkit.org/show_bug.cgi?id=124496
3259 Reviewed by Antti Koivisto.
3261 As a preparation to support subtests for Dromaeo and DoYouEvenBench, simplify the output performance tests generate.
3262 Also modernize the output to better support "metric" concept we introduced a while ago.
3264 New output on Dromaeo/dom-attr looks like this:
3265 -----------------------------------------------
3267 getAttribute -> [1105, 1108, 1134, 1137, 1154]
3268 element.property -> [1634, 1655, 1685, 1696, 1723]
3269 setAttribute -> [646.3536463536464, 651, 651, 656.3436563436563, 658]
3270 element.property = value -> [934, 949, 963, 964, 974]
3271 element.expando = value -> [419, 419.5804195804196, 421.57842157842157, 425.57442557442556, 429]
3272 element.expando -> [501, 517, 519.4805194805194, 521.4785214785214, 525]
3274 1: 117.40644785571585 runs/s
3275 2: 118.84720469666297 runs/s
3276 3: 119.80547640905021 runs/s
3277 4: 120.51886194758805 runs/s
3278 5: 121.51924380569295 runs/s
3280 :Time -> [117.40644785571585, 118.84720469666297, 119.80547640905021, 120.51886194758805, 121.51924380569295] runs/s
3281 mean: 119.619446942942 runs/s
3282 median: 119.80547640905021 runs/s
3283 stdev: 1.5769040458730506 runs/s
3284 min: 117.40644785571585 runs/s
3285 max: 121.51924380569295 runs/s
3286 -----------------------------------------------
3288 * Dromaeo/resources/dromaeorunner.js: