1 2015-10-12 Jon Lee <jonlee@apple.com>
3 Add canvas line path tests
4 https://bugs.webkit.org/show_bug.cgi?id=150076
5 <rdar://problem/23082285>
7 Reviewed by Dean Jackson.
9 * Animometer/runner/resources/tests.js: Add new line path tests, with different
11 * Animometer/tests/simple/resources/simple-canvas-paths.js:
12 (CanvasLinePathStage): The stage is the same as the SimpleCanvasPathStrokeStage
13 but sets the lineJoin on the context.
14 (CanvasPathBenchmark.prototype.createStage): Add the tests.
16 2015-10-12 Jon Lee <jonlee@apple.com>
18 Add missing paint objects for arc and arcTo fills
19 https://bugs.webkit.org/show_bug.cgi?id=150075
20 <rdar://problem/23082233>
22 Reviewed by Dean Jackson.
24 * Animometer/tests/simple/resources/simple-canvas-paths.js: Add missing paint objects
25 for arcTo and arc segment fills.
26 (CanvasArcToSegmentFill):
27 (CanvasArcToSegmentFill.prototype.draw):
28 (CanvasArcSegmentFill):
29 (CanvasArcSegmentFill.prototype.draw):
31 2015-10-12 Jon Lee <jonlee@apple.com>
33 Add canvas line segment tests
34 https://bugs.webkit.org/show_bug.cgi?id=150073
35 <rdar://problem/23082138>
37 Reviewed by Dean Jackson.
39 * Animometer/runner/resources/tests.js: Add new line segment tests, with different
41 * Animometer/tests/simple/resources/simple-canvas-paths.js:
42 (CanvasLineSegment): Add new line segment paint object.
43 (CanvasLineSegmentStage): Create a new stage that sets the lineCap.
45 2015-10-12 Jon Lee <jonlee@apple.com>
47 Add canvas path fill tests
48 https://bugs.webkit.org/show_bug.cgi?id=150071
49 <rdar://problem/23082001>
51 Reviewed by Dean Jackson.
53 * Animometer/runner/resources/tests.js: Add new pathTypes for path fills.
54 * Animometer/tests/simple/resources/simple-canvas-paths.js:
55 (CanvasLinePoint): Add basic point for a line, and call lineTo.
56 (SimpleCanvasPathFillStage): Add a new stage similar to SimpleCanvasPathStrokeStage.
57 (CanvasPathBenchmark.prototype.createStage): Add the tests.
59 2015-10-12 Jon Lee <jonlee@apple.com>
62 https://bugs.webkit.org/show_bug.cgi?id=150067
63 rdar://problem/23081463
65 Reviewed by Dean Jackson.
67 * Animometer/runner/resources/tests.js: Add a quadratic and bezier path test.
69 * Animometer/tests/simple/resources/simple-canvas.js:
70 (SimpleCanvasStage.prototype.tune): This kind of test joins all of the segments
71 into one long path, and tries to render that one path. Random points make it
72 difficult to tell what is going on, so add a parameter to the constructor to
73 confine the area where the random coordinates can land. The more complicated the
74 case is, the larger an area the path will cover. Add an artificial minimum so
75 that the first 200 points aren't confined to a space that is too small.
77 * Animometer/tests/simple/resources/simple-canvas-paths.js:
78 (SimpleCanvasPathStrokeStage): Add a new kind of stage that inherits from
79 SimpleCanvasStage. Each time the frame animates a random line width and stroke
80 color are chosen. The path setup is done outside of each paint object.
81 (CanvasQuadraticPoint): This point just calls quadraticCurveTo.
82 (CanvasPathBenchmark.prototype.createStage): Add the tests.
84 2015-10-12 Jon Lee <jonlee@apple.com>
86 Add basic canvas tests
87 https://bugs.webkit.org/show_bug.cgi?id=150066
88 rdar://problem/23081143
90 Reviewed by Dean Jackson.
92 This adds a new test suite that will cover all of the path-based canvas calls.
93 The patch will be divided up to cover tests with similar techniques.
95 The simplest version uses a SimpleCanvasStage.
97 * Animometer/runner/resources/tests.js: Add tests for quadratic, bezier, arcTo,
98 arc, and rect segments. Also include arcTo, arc, and rect fills.
99 * Animometer/tests/resources/stage.js:
100 (Stage.prototype.randomBool): Added for counterclockwise property for arc segments.
101 (Stage.prototype.randomInt): Fix how values are rounded, used by randomBool. It should
102 round instead of flooring everything.
103 * Animometer/tests/simple/resources/simple-canvas.js: Added. Defines common classes
104 used by all simple canvas tests. The page reads best bottom to top.
105 (SimpleCanvasStage): Basic stage. Pass a canvasObject which will be used to create new
106 objects as needed in tune().
107 (SimpleCanvasStage.prototype.tune): Modeled on other tests. Adds and removed objects
108 as specified by the provided |count|.
109 (SimpleCanvasStage.prototype.animate): Iterate over all the objects and ask them to draw.
110 There is no "animating" of the objects; they will just paint statically on the canvas.
111 (SimpleCanvasAnimator): Basic animator clears the canvas prior to painting.
112 (SimpleCanvasBenchmark): Hard-code the feedback loop parameters instead of including
113 them in the query parameters to the test URLs.
114 (SimpleCanvasBenchmark.prototype.createAnimator):
115 * Animometer/tests/simple/simple-canvas-paths.html: Added.
117 * Animometer/tests/simple/resources/simple-canvas-paths.js: Added. There is no "animating"
118 of these objects--they just paint statically on the canvas.
119 (CanvasQuadraticSegment): Paint a quadratic segment stroke.
120 (CanvasBezierSegment): Paint a bezier segment stroke.
121 (CanvasArcToSegment): Paint an arcTo stroke.
122 (CanvasArcSegment): Paint an arc stroke.
123 (CanvasRect): Paint a rect.
124 (CanvasRectFill): Paint a filled rect.
126 (CanvasPathBenchmark):
127 (CanvasPathBenchmark.prototype.createStage): Look for the pathType and create the
128 stage using the right paint object.
129 (window.benchmarkClient.create):
131 2015-10-12 Jon Lee <jonlee@apple.com>
133 Refactor tune() to pass in an integer-based count
134 https://bugs.webkit.org/show_bug.cgi?id=150060
135 <rdar://problem/23079425>
137 Reviewed by Dean Jackson.
139 All of the tune functions do an initial step of flooring the
140 # of painting objects to add or remove. Factor that out since
141 the complexity of all of these tests is always expressed in terms
144 * Animometer/tests/resources/main.js:
145 (Benchmark.prototype.update): Update the tuneValue.
147 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js:
148 (BouncingParticlesStage.prototype.tune): Remove the count adjustment.
149 * Animometer/tests/examples/resources/canvas-electrons.js:
150 (CanvasElectronsStage.prototype.tune): Ditto.
151 * Animometer/tests/examples/resources/canvas-stars.js:
152 (CanvasStarsStage.prototype.tune): Ditto.
153 * Animometer/tests/text/resources/layering-text.js:
154 (LayeringTextStage.prototype.tune): Ditto.
156 2015-10-12 Jon Lee <jonlee@apple.com>
158 Store test-interval in localStorage
159 https://bugs.webkit.org/show_bug.cgi?id=150055
160 <rdar://problem/23078879>
162 Reviewed by Dean Jackson.
164 * Animometer/runner/resources/animometer.js:
165 (populateSettings): Keep track of the specified test interval in localStorage
166 to make it easy to repeat a test suite.
168 2015-10-12 Jon Lee <jonlee@apple.com>
170 Remove "../tests/" from the URLs of all tests
171 https://bugs.webkit.org/show_bug.cgi?id=150054
172 <rdar://problem/23078784>
174 Reviewed by Dean Jackson.
176 Presumably all tests will be running from the tests/ directory,
177 so we don't have to specify it in all of the test URLs.
179 * Animometer/runner/resources/benchmark-runner.js:
180 (BenchmarkRunnerState.prototype.prepareCurrentTest): Prepend
181 "../tests/" to all tests.
182 * Animometer/runner/resources/tests.js: Remove "../tests/" from
185 2015-10-12 Jon Lee <jonlee@apple.com>
187 Refactor test suites to a separate class.
188 https://bugs.webkit.org/show_bug.cgi?id=150053
189 <rdar://problem/23078645>
191 Reviewed by Dean Jackson.
193 Create a Suite class to refactor out prepare() and run().
194 Generate the checkboxes representing the suites using Suites
195 instead of maintaining a separate list. Also, save the
196 selections out to localStorage.
198 * Animometer/runner/animometer.html: Remove the explicitly listed
199 suites. These will be generated from Suites instead.
200 * Animometer/runner/resources/animometer.js:
201 (populateSettings): Iterate through Suites, and create the
202 label and checkbox. Attach the Suite object to the checkbox so
203 when the benchmark is started, we get direct access. Initialize
204 the checkmark based on its value in localStorage. Set this to
205 run when DOMContentLoaded is dispatched.
206 (startBenchmark): Grab all of the checkboxes, inspect their
207 values, add it to enabledSuites if selected. Remember whether
208 the suite was enabled in localStorage, so that it's easy to do
210 * Animometer/runner/resources/tests.js:
211 (Suite): Create a new Suite class. Refactor out prepare() and
212 run(), since all of them have the same implementation. Populate
213 Suites with Suite instances instead of generic objects.
215 2015-10-12 Jon Lee <jonlee@apple.com>
217 Update graph styles for legibility.
218 https://bugs.webkit.org/show_bug.cgi?id=150052
219 <rdar://problem/23078503>
221 Reviewed by Dean Jackson.
223 * Animometer/runner/resources/animometer.css: Update colors and
224 stroke thicknesses to make the graphs easier to read.
225 (.smaple-time): Correct to .sample-time
226 * Animometer/runner/resources/graph.js:
229 2015-10-12 Jon Lee <jonlee@apple.com>
231 Update graph styles for legibility.
232 https://bugs.webkit.org/show_bug.cgi?id=150052
233 <rdar://problem/23078503>
235 Reviewed by Dean Jackson.
237 * Animometer/runner/resources/animometer.css: Update colors and
238 stroke thicknesses to make the graphs easier to read.
239 (.smaple-time): Correct to .sample-time
240 * Animometer/runner/resources/graph.js:
243 2015-10-12 Filip Pizlo <fpizlo@apple.com>
245 Unreviewed, revert an unintended commit.
247 * JetStream/Octane2/crypto.js:
251 2015-10-05 Said Abou-Hallawa <sabouhallawa@apple.com>
253 Add a graphics benchmark
254 https://bugs.webkit.org/show_bug.cgi?id=149053
255 <rdar://problem/18984169>
257 Reviewed by Dean Jackson.
259 Instead of measuring the FPS of the animation, this benchmark measures the
260 test complexity when rendering at a set-point FPS which should be lower
261 than 60 FPS. This benchmark tries to stay at the set-point FPS by using
262 a closed loop control system PID function. The gain of the system is passed
263 as a parameter when running the test. Measuring the FPS faithfully results
264 very fluctuating values. A Kalman filter is used to give a better estimate
267 The animation of the tests is done manually. requestAnimationFrame() is
268 called with a callback. Inside this callback, the test is animating by
269 changing the positions of the elements inside the page. The test complexity
270 may change also if the current FPS is not equal to the desired FPS.
272 In this patch, the benchmark and the tests are included. The shared code
273 and the tests runner are included in separate patches.
275 * Animometer/runner/animometer.html:
276 * Animometer/runner/resources/animometer.js:
277 Add two new examples for more complex animation techniques.
278 Add an option to show/hide the test running results which is off by default.
280 * Animometer/runner/resources/tests.js: Added.
281 (suiteFromName): Returns a suite given its name.
282 (testFromName): Returns a test given its suite and name.
284 * Animometer/tests: Added.
285 This directory includes all the test suites to be run by the benchmark.
286 runner. All the tests should try to run on three stages: CSS, canvas and
289 * Animometer/tests/bouncing-particles: Added.
290 * Animometer/tests/bouncing-particles/resources: Added.
291 The bouncing particles test is an example of a simple animation technique.
293 * Animometer/tests/bouncing-particles/bouncing-canvas-images.html: Added.
294 * Animometer/tests/bouncing-particles/bouncing-canvas-shapes.html: Added.
295 * Animometer/tests/bouncing-particles/bouncing-css-images.html: Added.
296 * Animometer/tests/bouncing-particles/bouncing-css-shapes.html: Added.
297 * Animometer/tests/bouncing-particles/bouncing-svg-images.html: Added.
298 * Animometer/tests/bouncing-particles/bouncing-svg-shapes.html: Added.
299 Bouncing particles test pages.
301 * Animometer/tests/bouncing-particles/resources/bouncing-particles.js: Added.
302 (BouncingParticle): Base class for a bouncing particle.
303 (BouncingParticle.prototype.center): Returns the center point or the particle.
304 (BouncingParticle.prototype.animate): Moves the particle based on its current position, angle and velocity.
306 (BouncingParticlesAnimator): A sub class of Animator.
308 (BouncingParticlesStage): Represents the container of all the bouncing particles.
309 (BouncingParticlesStage.prototype.parseShapeParamters): Gets the shape parameters for shape animating tests.
310 (BouncingParticlesStage.prototype.randomRotater): Creates a rotater for the particles.
311 (BouncingParticlesStage.prototype.animate): Animates all the particles.
312 (BouncingParticlesStage.prototype.tune): Changes the test by adding or removing particles.
314 (BouncingParticlesBenchmark): Runs the benchmark for bouncing particles test.
315 (BouncingParticlesBenchmark.prototype.createAnimator): Creates an animator of type BouncingParticlesAnimator.
317 * Animometer/tests/bouncing-particles/resources/bouncing-css-shapes.js: Added.
318 (BouncingCssShape): A sub class of BouncingParticle for animating CSS shapes.
319 (BouncingCssShape.prototype._createSpan): Creates a <span> element and takes the shape and clipping classes into consideration.
320 (BouncingCssShape.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
321 (BouncingCssShape.prototype.animate): Rotates and moves the shape to a new location.
323 (BouncingCssShapesStage): A sub class of BouncingParticlesStage for animating CSS shapes.
324 (BouncingCssShapesStage.prototype.createParticle): Creates a particle of type BouncingCssShape.
325 (BouncingCssShapesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
327 (BouncingCssShapesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS shapes.
328 (BouncingCssShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCssShapesStage.
329 (window.benchmarkClient.create): Creates a benchmark of type BouncingCssShapesBenchmark.
331 * Animometer/tests/bouncing-particles/resources/bouncing-css-images.js: Added.
332 (BouncingCssImage): A sub class of BouncingParticle for animating CSS images.
333 (BouncingCssImage.prototype._move): Move the particle to a new location. Apply transform since it does not require layout.
334 (BouncingCssImage.prototype.animate): Rotates and moves the shape to a new location.
336 (BouncingCssImagesStage): A sub class of BouncingParticlesStage for animating CSS images.
337 (BouncingCssImagesStage.prototype.createParticle): Creates a particle of type BouncingCssImage.
338 (BouncingCssImagesStage.prototype.particleWillBeRemoved): Removes the corresponding element form the parent children list.
340 (BouncingCssImagesBenchmark): A sub class of BouncingParticlesBenchmark for animating CSS images.
341 (BouncingCssImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCssImagesStage.
342 (window.benchmarkClient.create): Creates a benchmark of type BouncingCssImagesBenchmark.
344 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-particles.js: Added.
345 (BouncingCanvasParticle): A base sub-class of BouncingParticle for animating canvas particles.
346 (BouncingCanvasParticle.prototype._applyRotation): Apply the particle rotation-around-center transform to the canvas context.
347 (BouncingCanvasParticle.prototype._applyClipping): Apply the particle clipping to the canvas context.
348 (BouncingCanvasParticle.prototype._draw): A non-implemented version of the drawing function.
349 (BouncingCanvasParticle.prototype.animate): Carries out all the steps to redraw the canvas particle.
351 (BouncingCanvasParticlesStage): A base sub-class of BouncingParticlesStage for animating canvas particles.
353 (BouncingCanvasParticlesAnimator): A concrete sub-class of BouncingParticlesAnimator for animating canvas particles.
354 (BouncingCanvasParticlesAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
356 (BouncingCanvasParticlesBenchmark): A base sub-class of StageBenchmark for animating canvas particles.
357 (BouncingCanvasParticlesBenchmark.prototype.createAnimator): Creates the canvas particles animator.
359 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-shapes.js: Added.
360 (BouncingCanvasShape): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
361 (BouncingCanvasShape.prototype._applyFill): Sets the fillStyle in the canvas context.
362 (BouncingCanvasShape.prototype._drawShape): Carries out the actual drawing.
363 (BouncingCanvasShape.prototype._draw): Carries out all the steps to draw the shape.
365 (BouncingCanvasShapesStage): A concrete sub-class of BouncingCanvasParticle for animating canvas shapes.
366 (BouncingCanvasShapesStage.prototype.createParticle): Creates a particle of type BouncingCanvasShape.
368 (BouncingCanvasShapesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas shapes.
369 (BouncingCanvasShapesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasShapesStage.
370 (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasShapesBenchmark.
372 * Animometer/tests/bouncing-particles/resources/bouncing-canvas-images.js: Added.
373 (BouncingCanvasImage): A concrete sub-class of BouncingCanvasParticle for animating canvas images.
374 (BouncingCanvasImage.prototype._draw): Draws an image on the context of a canvas.
376 (BouncingCanvasImagesStage): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
377 (BouncingCanvasImagesStage.prototype.createParticle): Creates a particle of type BouncingCanvasImage.
379 (BouncingCanvasImagesBenchmark): A concrete sub-class of BouncingCanvasParticlesBenchmark for animating canvas images.
380 (BouncingCanvasImagesBenchmark.prototype.createStage): Creates a stage of type BouncingCanvasImagesStage.
381 (window.benchmarkClient.create): Creates a benchmark of type BouncingCanvasImagesBenchmark.
383 * Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js: Added.
384 (BouncingSvgParticle): A base sub-class of BouncingParticle for animating SVG particles.
385 (BouncingSvgParticle.prototype._applyClipping): Apply the particle clipping by setting the 'clip-path' attribute of the SVGElement.
386 (BouncingSvgParticle.prototype._move): Moves the particle to a new location. Apply transform since it does not require layout.
387 (BouncingSvgParticle.prototype.animate): Rotates and moves the shape to a new location.
388 (BouncingSvgParticlesStage): A sub class of BouncingParticlesStage for animating SVGElements.
389 (BouncingSvgParticlesStage.prototype._createDefs): Creates an SVGDefsElement.
390 (BouncingSvgParticlesStage.prototype._ensureDefsIsCreated): Ensures there is only one SVGDefsElement is created.
391 (BouncingSvgParticlesStage.prototype._createClipStar): Creates an SVGClipPathElement and sets its 'd' attribute to a star like shape.
392 (BouncingSvgParticlesStage.prototype.ensureClipStarIsCreated): Ensure there is only one star SVGClipPathElement is created.
393 (BouncingSvgParticlesStage.prototype.particleWillBeRemoved): Remove the corresponding element form the parent children list.
395 * Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js: Added.
396 (BouncingSvgShape): A concrete sub-class of BouncingSVGParticle for animating SVG shapes.
397 (BouncingSvgShape.prototype._createShape): Creates an SVG shape.
398 (BouncingSvgShape.prototype._applyFill): Applies the selected fill style to the SVG shape.
400 (BouncingSvgShapesStage): A concrete sub-class of BouncingSvgParticlesStage for animating SVG shapes.
401 (BouncingSvgShapesStage.prototype.createGradient): Creates an SVGLinearGradientElement.
402 (BouncingSvgShapesStage.prototype.createParticle): Creates a particle of type BouncingSvgShape.
403 (BouncingSvgShapesStage.prototype.particleWillBeRemoved): Ensures the attached SVGLinearGradientElement is removed from the SVGDefsElement.
405 (BouncingSvgShapesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
406 (BouncingSvgShapesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgShapesStage.
407 (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgShapesBenchmark.
409 * Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js: Added.
410 (BouncingSvgImage): A concrete sub-class of BouncingSVGParticle for animating SVG images.
412 (BouncingSvgImagesStage): A concrete sub-class of BouncingSVGParticlesBenchmark for animating SVG images.
413 (BouncingSvgImagesStage.prototype.createParticle): Creates a particle of type BouncingSvgImage.
415 (BouncingSvgImagesBenchmark): A concrete sub-class of BouncingParticlesBenchmark for animating SVG images.
416 (BouncingSvgImagesBenchmark.prototype.createStage): Creates a stage of type BouncingSvgImagesStage.
417 (window.benchmarkClient.create): Creates a benchmark of type BouncingSvgImagesBenchmark.
419 * Animometer/tests/examples: Added.
420 * Animometer/tests/examples/canvas-electrons.html: Added.
421 * Animometer/tests/examples/canvas-stars.html: Added.
424 * Animometer/tests/examples/resources: Added.
425 * Animometer/tests/examples/resources/canvas-electrons.js: Added.
426 (CanvasElectron): An object which draws and animate a electron object on a canvas stage.
427 (CanvasElectron.prototype._draw): Draws the electron object.
428 (CanvasElectron.prototype.animate): Animates the electron object.
430 (CanvasElectronsStage): A concrete sub-class of Stage for animating electrons.
431 (CanvasElectronsStage.prototype.tune): Changes the test by adding or removing elements.
432 (CanvasElectronsStage.prototype.animate): Animates the test elements.
434 (CanvasElectronsAnimator): A concrete sub-class of StageAnimator for animating canvas electrons.
435 (CanvasElectronsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
437 (CanvasElectronsBenchmark): A concrete sub-class of StageBenchmark for animating electrons.
438 (CanvasElectronsBenchmark.prototype.createStage): Creates a stage of CanvasElectronsStage.
439 (CanvasElectronsBenchmark.prototype.createAnimator): Creates an animator of type CanvasElectronsAnimator.
440 (window.benchmarkClient.create): Creates a benchmark of type CanvasElectronsBenchmark.
442 * Animometer/tests/examples/resources/canvas-stars.js: Added.
443 (CanvasStar): An object which draws and animate a star object on a canvas stage.
444 (CanvasStar.prototype._draw): Draws the star object.
445 (CanvasStar.prototype.animate): Animates the star object.
447 (CanvasStarsStage): A concrete sub-class of Stage for animating stars.
448 (CanvasStarsStage.prototype.tune): Changes the test by adding or removing elements.
449 (CanvasStarsStage.prototype.animate): Animates the test elements.
451 (CanvasStarsAnimator): A concrete sub-class of StageAnimator for animating canvas stars.
452 (CanvasStarsAnimator.prototype.animate): Overrides the base class method to clear the canvas before redrawing the stage.
454 (CanvasStarsBenchmark): A concrete sub-class of Benchmark for animating stars.
455 (CanvasStarsBenchmark.prototype.createStage): Creates a stage of CanvasStarsStage.
456 (CanvasStarsBenchmark.prototype.createAnimator): Creates an animator of type CanvasStarsAnimator.
457 (window.benchmarkClient.create): Creates a benchmark of type CanvasStarsBenchmark.
459 * Animometer/tests/resources: Added.
460 This directory includes the script which is required to run an adaptive
461 graphics benchmark. From an empty test page, the set of classes in this
462 directory are responsible for measuring the current frame rate and
463 changing the test to reach a desired FPS. It keeps asking the test page
464 to tune itself by a certain value to increase or decrease the frame rate.
465 It's also responsible for sampling the test state and the corresponding
468 * Animometer/tests/resources/main.js: Added.
469 (BenchmarkState): Tracks the state of the benchmark test.
470 (BenchmarkState.prototype._timeOffset): Returns the timeOffset of a stage.
471 (BenchmarkState.prototype._message): Returns the message of a stage.
472 (BenchmarkState.prototype.update): Sets the currentTimeOffset to a new value.
473 (BenchmarkState.prototype.samplingTimeOffset): Returns the timeOffset of the sampling stage.
474 (BenchmarkState.prototype.currentStage): Returns the current stage of the benchmark.
475 (BenchmarkState.prototype.currentMessage): Returns the message of the current stage and timeOffset.
476 (BenchmarkState.prototype.currentProgress): Returns a percentage of how much the benchmark is running.
478 (Animator): Manages animating the test.
479 (Animator.prototype.start): Called if animating using setInterval is requested.
480 (Animator.prototype.timeDelta): Returns the current timeDelta
481 (Animator.prototype.animate): Manages the test animation.
482 (Animator.prototype.animateLoop): Called if animating using requestAnimationFrame is requested.
484 (Benchmark): Manages running the test benchmark and recording the sampled data.
485 (Benchmark.prototype.start): Starts the benchmark.
486 (Benchmark.prototype.update): Called from the animator.animate() to change the complexity of the test.
487 (Benchmark.prototype.record): Shows the current (not final) results of the benchmark.
488 (Benchmark.prototype.resolveWhenFinished): Spins until the benchmark is finished and returns its results.
489 (Benchmark.prototype.run): Starts the test, runs it, waits until it is finished and return its results.
490 (window.runBenchmark): Called from the benchmark runner through the suite controller run-callback.
492 * Animometer/tests/resources/math.js: Added.
493 (Matrix): A matrix object.
494 (Vector3): A vector of size 3 object.
495 (Matrix3): A matrix of size 3x3 object.
497 (PIDController): Closed-loop controller for a set-point y.
498 (PIDController.prototype._sat): Limits the output to a certain range.
499 (PIDController.prototype.tune): Given the current output of a system, it produces a new pid value for tuning it.
501 (KalmanEstimator): Implement Kalman filter to get an estimate for a sampled data point.
502 (KalmanEstimator.prototype.estimate): Returns an estimate for for a sampled data point.
504 * Animometer/tests/resources/utilities.js: Added.
505 (window.Utilities._parse): Given a separator character, it pareses a string to a set of <key, value> pairs.
506 (window.Utilities.parseParameters): Parses a test parameters.
507 (window.Utilities.parseArguments): Parses a tag arguments.
508 (window.Utilities.extendObject): Adds the attributes and their values of an object to another object.
509 (window.Utilities.copyObject): Copies the attributes and their values of an object to a new object.
510 (window.Utilities.mergeObjects): Copies the attributes and their values of two objects to a new object.
511 (window.Utilities.createSvgElement): Creates an SVGElement given its name and its attributes.
513 * Animometer/tests/resources/stage.css: Added.
514 * Animometer/tests/resources/stage.js: Added.
515 (Rotater): Manages rotating an angle within a fixed time interval.
516 (Rotater.prototype.get interval): Returns the time interval which is required to rotate 360 degrees.
517 (Rotater.prototype.next): Moves the current time by a delta.
518 (Rotater.prototype.degree): Returns the current rotating degree.
519 (Rotater.prototype.rotateZ): Returns CSS formatted transform rotateZ() string for the current degree.
520 (Rotater.prototype.rotate): Returns SVG formatted transform rotate() string for the current degree.
522 (Stage): A base class for managing the test complexity and test animation.
523 (Stage.prototype.get size): Returns the size of the stage excluding the CSS padding.
524 (Stage.prototype.random): Returns a random float.
525 (Stage.prototype.randomInt): Returns a random integer.
526 (Stage.prototype.randomPosition): Returns a random position.
527 (Stage.prototype.randomSquareSize): Returns a square size.
528 (Stage.prototype.randomVelocity): Returns a random velocity.
529 (Stage.prototype.randomAngle): Returns a random angle.
530 (Stage.prototype.randomColor): Returns a random color not too dark and not too light.
531 (Stage.prototype.randomRotater): Creates a random rotater. Its velocity depends on choosing a random rotation time interval.
532 (Stage.prototype.tune): A not-implemented version of this function.
533 (Stage.prototype.animate): A not-implemented version of this function.
534 (Stage.prototype.clear): Clears the stage from all its animation elements.
536 (StageAnimator): A base class for the stage-based animators.
537 (StageAnimator.prototype.animate): Calls Animator.animate() which updates the test page and then calls Stage.animate() to force redraw.
539 (StageBenchmark): A base class for the stage-based benchmarks.
540 (StageBenchmark.prototype.createStage): Creates the default stage.
541 (StageBenchmark.prototype.createAnimator): Creates the default animator.
542 (StageBenchmark.prototype.tune): Delegates the call to stage.
543 (StageBenchmark.prototype.clear): Delegates the call to stage.
544 (StageBenchmark.prototype.showResults): Shows the results/progress through its recordTable and progressBar.
546 * Animometer/tests/resources/yin-yang.png: Added.
547 * Animometer/tests/resources/yin-yang.svg: Added.
548 These images are shared among all the tests.
550 * Animometer/tests/template: Added.
551 * Animometer/tests/template/resources: Added.
552 This directory includes template tests which do nothing. They can be used
553 to author new tests. Animated items can be created, moved and redrawn by
554 removing the TODO comments in the script files and writing actual code.
556 * Animometer/tests/template/template-css.html: Added.
557 * Animometer/tests/template/template-canvas.html: Added.
558 * Animometer/tests/template/template-svg.html: Added.
559 Template test pages. They can be used as they are. CSS attributes or hidden
560 elements can be added to these derived test pages if needed.
562 * Animometer/tests/template/resources/template-css.js: Added.
564 (TemplateCssStage): A stage to create and animate HTMLElements.
565 (TemplateCssStage.prototype.tune): Changes the test by adding or removing elements.
566 (TemplateCssStage.prototype.animate): Animates the test elements.
567 (TemplateCssBenchmark):
568 (TemplateCssBenchmark.prototype.createStage): Creates the test stage.
569 (window.benchmarkClient.create): Creates a benchmark of type TemplateCssBenchmark.
571 * Animometer/tests/template/resources/template-canvas.js: Added.
572 (TemplateCanvasObject):
573 (TemplateCanvasObject.prototype._draw): Draws the objects on the canvas context.
574 (TemplateCanvasObject.prototype.animate): Moves and redraws the object.
575 (TemplateCanvasStage): A stage to create and animate drawing elements.
576 (TemplateCanvasStage.prototype.tune): hanges the test by adding or removing elements.
577 (TemplateCanvasStage.prototype.animate): Animates the test elements.
578 (TemplateCanvasAnimator.prototype.animate): Starts the animation every frame.
579 (TemplateCanvasBenchmark):
580 (TemplateCanvasBenchmark.prototype.createStage): Creates a stage of type TemplateCanvasStage.
581 (TemplateCanvasBenchmark.prototype.createAnimator): Creates a animator of type TemplateCanvasAnimator.
582 (window.benchmarkClient.create): Creates a benchmark of type TemplateCanvasBenchmark.
584 * Animometer/tests/template/resources/template-svg.js: Added.
585 (TemplateSvgStage): A stage to create and animate SVGElements.
586 (TemplateSvgStage.prototype.tune): Changes the test by adding or removing elements.
587 (TemplateSvgStage.prototype.animate): Animates the test elements.
588 (TemplateSvgBenchmark.prototype.createStage): Creates a stage of type TemplateSvgStage.
589 (window.benchmarkClient.create): Creates a benchmark of type TemplateSvgBenchmark.
591 * Animometer/tests/text: Added.
592 * Animometer/tests/text/resources: Added.
593 This directory includes the text animating tests which currently runs
596 * Animometer/tests/text/layering-text.html: Added.
599 * Animometer/tests/text/resources/layering-text.js: Added.
600 (LayeringTextStage): Represents the container of all the stacked text layers.
601 (LayeringTextStage.parseTextItem): Parses a textItem which may be an opening tag, a closing tag or a self-closing tag.
602 (LayeringTextStage.isOpeningTextItem): Returns true if the textItem is an opening tag e.g. '<ol>'.
603 (LayeringTextStage.isClosingTextItem): Returns true if the textItem is an closing tag e.g. '</ol>.
604 (LayeringTextStage.textItemsFlags.LayeringTextStage.textItems.map): Calculates and stores isOpening and isClosing flags for each textItem.
605 (LayeringTextStage.isColorableTextItem): Returns true if the textItem is self-closing tag e.g. '<p>...</p>'.
606 (LayeringTextStage.isInsertableTextItem): Returns true if the textItems causes a new element to be added to the text layers.
607 (LayeringTextStage.colorableTextItems.LayeringTextStage.textItemsFlags.filter): Number of colorable textItems.
608 (LayeringTextStage.insertableTextItems.LayeringTextStage.textItemsFlags.filter): Number of insertable textItems.
609 (LayeringTextStage.colorIndexToTextElementIndex): Maps from colorIndex [0..colorableTextItems-1] to textElementIndex [0..insertableTextItems-1].
610 (LayeringTextStage.prototype._nextTextItem): Moves the _textItemIndex one step forward in a loop [0..LayeringTextStage.textItems.length-1].
611 (LayeringTextStage.prototype._previousTextItem): Moves the _textItemIndex one step backward in a loop.
612 (LayeringTextStage.prototype._pushTextElement): Creates a new textItemElement and adds it to the topmost container <div>.
613 (LayeringTextStage.prototype._popTextElement): Removes the last textItemElement from the topmost container <div>.
614 (LayeringTextStage.prototype._colorTextItem): Changes the background color of a single colorable textElement. The index advances in a circle [0..colorableTextItems-1].
615 (LayeringTextStage.prototype.animate): Changes the background color and the text color of the textElements such that a redraw is enforced.
616 (LayeringTextStage.prototype.tune): Adds or removes textElements to the stage.
618 (LayeringTextBenchmark): Runs the benchmark for the layering text test.
619 (LayeringTextBenchmark.prototype.createStage): Creates a stage of type LayeringTextStage.
620 (window.benchmarkClient.create): Creates a benchmark of type LayeringTextBenchmark.
622 2015-10-02 Said Abou-Hallawa <sabouhallawa@apple.com>
624 Add shared code for a new a graphics benchmark
625 https://bugs.webkit.org/show_bug.cgi?id=149691
627 Reviewed by Ryosuke Niwa.
629 This set of classes will be shared and used by the tests and the runner
630 of a new graphics benchmark.
632 * Animometer/resources: Added.
633 * Animometer/resources/algorithm.js: Added.
634 (Array.prototype.swap): Swaps two elements in an array.
635 (Heap): Binary Min/Max Heap object
636 (Heap.prototype._parentIndex): Given the child node index, it returns the parent index.
637 (Heap.prototype._leftIndex): Given the parent node index, it returns the left node index.
638 (Heap.prototype._rightIndex): Given the parent node index, it returns the right node index.
639 (Heap.prototype._childIndex): Given the parent node index, it returns the child index that may violate the heap property.
640 (Heap.prototype.init): Initializes the heap state.
641 (Heap.prototype.top): Returns the value stored at the top of the heap.
642 (Heap.prototype.push): Pushes a new node at the top of the heap.
643 (Heap.prototype.pop): Extracts the top node of the heap.
644 (Heap.prototype._bubble): Fixes the heap property by moving upward.
645 (Heap.prototype._sink): Fixes the heap property by moving downward.
646 (Heap.prototype.str): Prints the nodes of the heap to a string.
647 (Heap.prototype.values): Returns the last "size" heap elements values.
649 (Algorithm.createMinHeap): Creates a size-bounded min-heap object.
650 (Algorithm.createMaxHeap): Creates a size-bounded max-heap object.
652 * Animometer/resources/extensions.js: Added.
653 (Point): Point object but can be used as size also.
654 (Point.pointOnCircle): Given, the radius of the circle and the angle of the point, it returns a point object.
655 (Point.pointOnEllipse): Given, the radiuses of the ellipse and the angle of the point, it returns a point object.
656 (Point.prototype.get width): Should be called when the point is used as size.
657 (Point.prototype.get height): Should be called when the point is used as size.
658 (Point.prototype.get center): Should be called when the point is used as size.
659 (Point.prototype.add): Returns a new point = this + other.
660 (Point.prototype.subtract): Returns a new point = this - other.
661 (Point.prototype.multiply): Returns a new point = this * other.
662 (Point.prototype.move): Moves the point in a given direction, velocity, time period.
664 (Insets): Represents borders of a container.
665 (Insets.prototype.get width): Returns left + right.
666 (Insets.prototype.get height): Returns top + bottom.
669 (SimplePromise.prototype.then):
670 (SimplePromise.prototype.resolve):
671 Moved from Animometer/runner/resources/benchmark-runner.js since tests also need it.
673 (Options): Benchmark running options as they are set by the user.
675 (ProgressBar): Manages a progress bar element. The progress bar is divided into equal length ranges.
676 (ProgressBar.prototype._progressToPercent): Converts the progress into a percentage.
677 (ProgressBar.prototype.incRange): Moves to the next range (a range is the running time of a single test).
678 (ProgressBar.prototype.setPos): Draws the current progress in the current range.
680 (RecordTable): Shows the results of running a benchmark in a tabular form.
681 (RecordTable.prototype.clear): Clears the results table.
682 (RecordTable.prototype._showTitles): Shows the header titles and appends the sub-titles to a queue.
683 (RecordTable.prototype._showHeader): Shows the table header titles.
684 (RecordTable.prototype._showEmpty): Shows an empty table cell.
685 (RecordTable.prototype._showValue): Shows a number value in the results table.
686 (RecordTable.prototype._showSamples): Shows a button for the sampled data graph.
687 (RecordTable.prototype._showTest): Shows the results of a single test.
688 (RecordTable.prototype._showSuite): Shows the results of a single suite.
689 (RecordTable.prototype.showRecord): Shows a single iteration for a single test.
690 (RecordTable.prototype.showIterations): Shows the results of all the suites of the iterations.
692 * Animometer/resources/sampler.js: Added.
693 (Statistics.sampleMean): Returns the sample mean.
694 (Statistics.unbiasedSampleStandardDeviation): Returns the unbiased sample variance (i.e. with Bessel's correction)
695 (Statistics.geometricMean): Returns the geometric mean.
697 (Experiment): Represents a sampling experiment.
698 (Experiment.prototype._init): Called when the object is created and when startSampling() is called.
699 (Experiment.prototype.startSampling): Called after warmup period. Restarts collecting sampled data points.
700 (Experiment.prototype.sample): Add a new data point.
701 (Experiment.prototype.mean): Returns the sample mean for the current sampled data points.
702 (Experiment.prototype.standardDeviation): Returns the sample standard deviation for the current sampled data points.
703 (Experiment.prototype.percentage): Returns the percentage of the standard deviation divided to the mean.
704 (Experiment.prototype.confidenceIntervalDelta): Calculates the confidence delta for the current sampled data given a confidence level.
705 (Experiment.prototype.concern): Returns the average of the worst given percentage from the sampled data.
706 (Experiment.prototype.score): Returns a score for the sampled data. It is the geometric mean of sampleMean and concern.
708 (Sampler): Represents a compound experiment. It manages sampling multiple data points at the same time offset.
709 (Sampler.prototype.startSampling): Called after warming up period. Restarts collecting sampled data points.
710 (Sampler.prototype.sample): Add a new data vector at a given time offset.
712 2015-10-02 Said Abou-Hallawa <sabouhallawa@apple.com>
714 Add the test runner for a new a graphics benchmark
715 https://bugs.webkit.org/show_bug.cgi?id=149683
717 Reviewed by Ryosuke Niwa.
719 The test runner collects the selected test suites and the running options
720 from its home page. It loops through all the tests, runs them and collects
721 their running results. At the end, it shows summary results and a final
722 score. It can also show a chart for a test sampled data.
725 * Animometer/runner: Added.
726 * Animometer/runner/resources: Added.
728 * Animometer/runner/animometer.html: Added.
729 * Animometer/runner/resources/animometer.css: Added.
730 The benchmark runner page and css.
732 * Animometer/runner/resources/animometer.js: Added.
733 (window.benchmarkRunnerClient.willAddTestFrame): Called after the test <iframe> is created.
734 (window.benchmarkRunnerClient.didRunTest): Called after running a test is finished.
735 (window.benchmarkRunnerClient.willStartFirstIteration): Called at the beginning before running any test.
736 (window.benchmarkRunnerClient.didRunSuites): Called after running all tests of a suite.
737 (window.benchmarkRunnerClient.didFinishLastIteration): Called after running the last test.
739 (showSection): Shows a section in the animometer.html page.
740 (startTest): Called when the "Start Test" button is clicked.
741 (showResults): Called after finishing all the tests.
742 (showGraph): Called when "Click..." button in the "Samples" column of the results table is clicked
744 * Animometer/runner/resources/benchmark-runner.js: Copied from PerformanceTests/Speedometer/resources/benchmark-runner.js.
745 (BenchmarkRunnerState): Tracks the current running <suite, test>
746 (BenchmarkRunnerState.prototype.currentSuite): Returns the current running suite.
747 (BenchmarkRunnerState.prototype.currentTest): Returns the current running test.
748 (BenchmarkRunnerState.prototype.isFirstTest): Returns true if we are running the first test in the current suite.
749 (BenchmarkRunnerState.prototype.next): Advances to the next test.
750 (BenchmarkRunnerState.prototype.prepareCurrentTest): Creates a new <iframe> and waits for it to load a test.
752 (BenchmarkRunner): Manages running the tests and communicating with the benchmarkRunnerClient.
753 (BenchmarkRunner.prototype.waitForElement): Waits for an element to be created.
754 (BenchmarkRunner.prototype._appendFrame): Creates a new <iframe> element.
755 (BenchmarkRunner.prototype._removeFrame): Removed the current <iframe> element.
756 (BenchmarkRunner.prototype._runTestAndRecordResults): Runs the current test and saves its results.
757 (BenchmarkRunner.prototype.step): Either runs the current test if there is or start a new iteration.
758 (BenchmarkRunner.prototype.runAllSteps): Loops to run all the tests and move to the next iteration.
759 (this._runNextIteration): Starts a new iteration or show the results.
760 (BenchmarkRunner.prototype.runMultipleIterations): Loops to run all the iterations and show the results
761 (BenchmarkRunner.prototype._finalize): Finalizes the current iteration and starts a new one.
763 (SimplePromise): Deleted.
764 (SimplePromise.prototype.then): Deleted.
765 (SimplePromise.prototype.resolve): Deleted.
766 (BenchmarkTestStep): Deleted.
767 (Fibonacci): Deleted.
768 SimplePromise was moved t Animometer/resources/extensions.js because it is used by the runner and the tests.
770 (BenchmarkRunner.prototype._waitAndWarmUp): Deleted.
771 (BenchmarkRunner.prototype._runTest): Deleted.
772 (BenchmarkState.prototype.currentSuite): Deleted.
773 (BenchmarkState.prototype.currentTest): Deleted.
774 (BenchmarkState.prototype.next): Deleted.
775 (BenchmarkState.prototype.isFirstTest): Deleted.
776 (BenchmarkState.prototype.prepareCurrentSuite): Deleted.
777 BenchmarkState was renamed to BenchmarkRunnerState to not be confused with the tests BenchmarkState.
779 * Animometer/runner/resources/d3.min.js: Copied from Websites/perf.webkit.org/public/v2/js/d3/d3.min.js.
780 Needed for drawing charts for the sampled scores and frame rates.
782 * Animometer/runner/resources/graph.js: Added.
783 (graph): Draws a chart for a test sampled data. It shows two y-axes: one for the animated items and the second for FPS.
785 * Skipped: Skip the Animometer benchmark for now.
787 2015-08-27 Csaba Osztrogonác <ossy@webkit.org>
789 [EFL] REGRESSION(r188793): It made 200 layout tests and Bindings/event-target-wrapper.html performance test fail
790 https://bugs.webkit.org/show_bug.cgi?id=148470
792 Unreviewed gardening, skip the hanging test to make the performance bot work.
796 2015-08-17 Chris Dumez <cdumez@apple.com>
798 Add performance tests for traversal of collections returned by getElementsByClassName() / getElementsByTagName()
799 https://bugs.webkit.org/show_bug.cgi?id=148080
801 Reviewed by Antti Koivisto.
803 Add performance tests for traversal of *uncached* collections returned
804 by getElementsByClassName() / getElementsByTagName(). These methods
805 will soon be updated to return an HTMLCollection instead of a
806 NodeList and we need to make sure we don't regress performance in the
809 * DOM/get-elements-by-class-name-traversal-uncached.html: Added.
810 * DOM/get-elements-by-tag-name-traversal-uncached.html: Added.
812 2015-08-14 Chris Dumez <cdumez@apple.com>
814 Add performance tests for NodeList and HTMLCollection traversal
815 https://bugs.webkit.org/show_bug.cgi?id=148043
817 Reviewed by Gavin Barraclough.
819 Add performance tests for NodeList and HTMLCollection traversal.
820 Ideally, those 2 tests should be as fast. However, due to inefficiencies
821 in our HTMLCollection bindings code, the HTMLCollection tests is ~30%
822 slower. This will be addressed in the near future.
824 * Bindings/childNodes-traversal.html: Added.
825 * Bindings/children-traversal.html: Added.
827 2015-08-05 Myles C. Maxfield <mmaxfield@apple.com>
829 Add a second font-fallback performance test
830 https://bugs.webkit.org/show_bug.cgi?id=147692
832 Reviewed by Ryosuke Niwa.
834 This test is smaller, but has more realistic content. Also, it uses the "lang" attribute.
836 * Layout/font-fallback-2.html: Added.
837 * Layout/resources/font-fallback-2.html: Added.
839 2015-07-13 Filip Pizlo <fpizlo@apple.com>
841 Update JetStream version number to 1.1.
843 Rubber stamped by Ryosuke Niwa.
845 * JetStream/create.rb:
847 2015-06-30 Filip Pizlo <fpizlo@apple.com>
849 Update the JetStream documentation to reflect the recent changes
850 https://bugs.webkit.org/show_bug.cgi?id=146474
852 Reviewed by Geoffrey Garen.
854 * JetStream/create.rb: Bump the version.
855 * JetStream/in-depth-TEMPLATE.html: Add cdjs documentation. Remove cordic documentation. Change documentation for splay and mandreel.
857 2015-06-26 Filip Pizlo <fpizlo@apple.com>
859 [JetStream] Raise the percentile of mandreel-latency and splay-latency
860 https://bugs.webkit.org/show_bug.cgi?id=146378
862 Reviewed by Mark Lam.
864 The current percentile is 95%. When I looked at the sample lists in our GC, it was
865 clear that the worst 5% samples completely amortize our GC pauses. Our GC pauses can
866 be quite bad. Clearly, splay-latency is meant to test whether we have an incremental
867 GC that ensures that you don't have bad worst-case pauses. But 95% is too small,
868 because it doesn't really capture those pauses. Raising the percentile to above 99%
869 appears to do the trick. 99.5% or more seems like a good bet. The trade-off there is
870 just that if we set it too high, then we won't have enough statistics. Doing this very
871 clearly rewards GCs that are incremental, and punishes GCs that aren't (like ours).
872 That's what we want, since in the future we want to use this test to guide any
873 improvements to the worst-case performance of our GC.
875 The way that the percentile is selected will also affect mandreel-latency. That's a
876 good thing, because 95% is probably too low for that test as well. That test ends up
877 with >10k samples. The goal of using 95% in the first place was to get enough samples
878 to have a stable average. But if we have >10k samples, we can push that percentile up
879 much higher and still get good statistics while achieving the effect we want - i.e.
880 getting the worst case.
882 I don't think that we need to do the same thing for cdjs. That test only takes 200
883 samples, so 95% means we report the average of the worst 10 samples. That's probably
886 * JetStream/Octane2/base.js: Raise the percentile as described above.
887 (BenchmarkSuite.prototype.RunSingleBenchmark):
888 * JetStream/Reference.js: Tweak the reference times to bring the latency tests closer to 100ish on my machine.
889 * JetStream/create.rb: Bump the version.
891 2015-06-19 Filip Pizlo <fpizlo@apple.com>
893 Run CDjs as part of JSC stress testing
894 https://bugs.webkit.org/show_bug.cgi?id=146174
896 Reviewed by Geoffrey Garen.
898 * 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.
899 * JetStream/cdjs/main.js: Mark this as a slow test.
900 * JetStream/create.rb: Don't copy the JSC stress tests artifacts into the JetStream bundle.
902 2015-06-19 Filip Pizlo <fpizlo@apple.com>
904 Unreviewed, fix a small indentation goof.
906 * JetStream/cdjs/motion.js:
907 (Motion.prototype.findIntersection):
909 2015-06-19 Filip Pizlo <fpizlo@apple.com>
911 JetStream should include a JavaScript version of the CDx real-time benchmark
912 https://bugs.webkit.org/show_bug.cgi?id=146156
914 Reviewed by Geoffrey Garen.
916 This adds a JavaScript port of the CDx real-time benchmark to JetStream, and retires
917 the cordic test because it was previously the smallest and probably least interesting.
919 The new test, "cdjs", is mostly a faithful rewrite of the Java code into JavaScript.
920 I got the Java code from https://www.cs.purdue.edu/sss/projects/cdx/.
922 There are some differences:
924 - It uses RedBlackTree's for all sets and maps rather than hashtables. This is clearly
925 more in the spirit of real-time than the CDx benchmark. FWIW, CDx used to use trees
926 and I don't know why that changed in the latest version.
928 - CDjs doesn't attempt to avoid memory allocations, unlike the real-time Java version.
929 I wrote the code that I wanted to write for aesthetics, rather than the code that I
930 would have written if I tried to write the fastest code possible. Again, I believe
931 that this is in the spirit of CDj - it's meant to test what would happen if you wrote
932 real-timey stuff in a high level language and actually took advantage of that
933 language to be more productive.
935 The test score reflects the average latency of the worst 10 samples out of 200 samples.
936 The simulation uses 1000 aircraft, flying along paths that result in some detected
937 collisions every once in a while. The benchmark validates its results by checking the
938 total number of collisions detected.
940 Apart from the integration into the JetStream harness, the CDjs directory contains a
941 fully self-contained benchmark that could be run either in the jsc shell or in browser.
943 This new code uses the same 3-clause BSD license as the Purdue code, and gives
944 attribution to Purdue in almost all files. I believe that is appropriate since I wrote
945 most of the JS files by looking at the Purdue Java code and trascribing to JavaScript.
946 In some cases, I even copy-pasted the Java code, like the complicated math for
947 four-dimensional intersections and voxel hashing.
949 * JetStream/CDjsSetup.js: Added.
950 * JetStream/Octane2Setup.js:
951 * JetStream/Reference.js:
952 * JetStream/cdjs: Added.
953 * JetStream/cdjs/benchmark.js: Added.
955 * JetStream/cdjs/call_sign.js: Added.
957 (CallSign.prototype.compareTo):
958 (CallSign.prototype.toString):
959 * JetStream/cdjs/collision.js: Added.
961 (Collision.prototype.toString):
962 * JetStream/cdjs/collision_detector.js: Added.
964 (CollisionDetector.prototype.handleNewFrame.get for):
965 (CollisionDetector.prototype.handleNewFrame):
966 * JetStream/cdjs/constants.js: Added.
967 * JetStream/cdjs/main.html: Added.
968 * JetStream/cdjs/main.js: Added.
969 * JetStream/cdjs/motion.js: Added.
971 (Motion.prototype.toString):
972 (Motion.prototype.delta):
973 (Motion.prototype.findIntersection):
974 * JetStream/cdjs/motion_test.js: Added.
975 (checkDoesIntersect):
976 (checkDoesNotIntersect):
978 * JetStream/cdjs/red_black_tree.js: Added.
981 * JetStream/cdjs/red_black_tree_test.js: Added.
984 * JetStream/cdjs/reduce_collision_set.js: Added.
985 (drawMotionOnVoxelMap):
986 (drawMotionOnVoxelMap.):
987 (.get reduceCollisionSet):
988 * JetStream/cdjs/reduce_collision_set_test.js: Added.
992 * JetStream/cdjs/simulator.js: Added.
994 (Simulator.prototype.simulate):
995 * JetStream/cdjs/util.js: Added.
997 (averageAbovePercentile):
1000 * JetStream/cdjs/vector_2d.js: Added.
1002 (Vector2D.prototype.plus):
1003 (Vector2D.prototype.minus):
1004 (Vector2D.prototype.toString):
1005 (Vector2D.prototype.compareTo):
1006 * JetStream/cdjs/vector_3d.js: Added.
1008 (Vector3D.prototype.plus):
1009 (Vector3D.prototype.minus):
1010 (Vector3D.prototype.dot):
1011 (Vector3D.prototype.squaredMagnitude):
1012 (Vector3D.prototype.magnitude):
1013 (Vector3D.prototype.times):
1014 (Vector3D.prototype.as2D):
1015 (Vector3D.prototype.toString):
1016 * JetStream/create.rb:
1017 * JetStream/index-TEMPLATE.html:
1018 * JetStream/sunspider/cordic.js: Removed.
1020 2015-06-17 Javier Fernandez <jfernandez@igalia.com>
1022 [CSS Grid Layout] We should add performance tests for stretching logic
1023 https://bugs.webkit.org/show_bug.cgi?id=146063
1025 Reviewed by Sergio Villar Senin.
1027 Added a new performance test for Grid Layout to ensure there are no
1028 regressions in the stretching alignment logic.
1030 * Layout/fixed-grid-lots-of-stretched-data.html: Added.
1032 2015-06-17 Javier Fernandez <jfernandez@igalia.com>
1034 [CSS Grid Layout] Performance tests are using the old syntax
1035 https://bugs.webkit.org/show_bug.cgi?id=146061
1037 Reviewed by Sergio Villar Senin.
1039 Adapted tests to the new grid tracks definition syntax.
1041 * Layout/auto-grid-lots-of-data.html:
1042 * Layout/fixed-grid-lots-of-data.html:
1044 2015-06-08 Filip Pizlo <fpizlo@apple.com>
1046 JetStream should have a more rational story for jitter-oriented latency tests
1047 https://bugs.webkit.org/show_bug.cgi?id=145762
1049 Reviewed by Geoffrey Garen.
1051 JetStream has some latency tests that are meant to measure jitter. Prior to this change, they
1052 did this by computing the RMS. But the RMS is a pretty bad metric. The thing that it rewards
1053 isn't really the thing that you'd want your browser to do. These RMS-based tests involve taking
1054 the geomean of the RMS of some samples and the sample average. The lower the geomean, the better
1055 (in the JetStream harness we then invert the scores so that higher is better, but let's ignore
1056 that for this discussion and assume that lower is better). Here's an example of how this can go
1057 bad. A browser that always computes a task in some horribly long time (say, 1000ms) but never
1058 varies that time will perform better than a browser that usually computes the task super quickly
1059 (say, 10ms) and sometimes just a little bit less quickly (say, 15ms). The former browser will
1060 have an RMS of 0 and an average of 1000. The latter will have a RMS somewhere around 3.5 and an
1061 average of 12.5 (assuming equal probability of 10ms and 15ms). The geomean of (0, 1000) is 0.
1062 The geomean of (3.5, 12.5) is 6.6. Lower is better, so the former browser scores higher - even
1063 though it's obviously never better to have a browser always complete a task in 1000ms when a
1064 different browser can do it in 15ms in the worst case.
1066 JetStream should not have this pathology. The right way of avoiding it is to replace RMS with
1067 some other metric of how bad things get. A good metric is the average of the worst percentile.
1068 The worst 1% or the worst 5% would be good things to average. This will catch cases where the VM
1069 jittered due to JIT or GC, but it never have the pathology that we end up giving the better score
1070 to a VM whose best case is worst than another VM's worst case.
1072 For now, this change uses the highest samples above the 95% percentile. I'm not yet sure if that
1073 is the best thing - it might include too many scores that are around the best-case performance -
1074 but it's certainly better than RMS and it might be good enough to keep. But because of that
1075 uncertainty, I'm setting the version to be "1.1-alpha1" to indicate that we aren't ready to
1078 * JetStream/Octane2/base.js:
1079 (.this.Setup.setup.setup):
1080 (.this.TearDown.tearDown.tearDown):
1081 (BenchmarkSuite.GeometricMeanTime):
1082 (BenchmarkSuite.AverageAbovePercentile):
1083 (BenchmarkSuite.GeometricMeanLatency):
1084 (BenchmarkSuite.prototype.NotifyStep):
1085 (BenchmarkSuite.prototype.RunSingleBenchmark):
1086 * JetStream/Octane2/mandreel.js:
1088 (updateMandreelStats):
1089 (startMandreelTimer):
1092 (RMSMandreel): Deleted.
1093 * JetStream/Octane2/splay.js:
1098 (SplayRMS): Deleted.
1099 * JetStream/create.rb:
1101 2015-06-03 Zalan Bujtas <zalan@apple.com>
1103 Skip Dromaeo/jslib-modify-prototype.html for now.
1105 Unreviewed gardening.
1109 2015-05-04 Filip Pizlo <fpizlo@apple.com>
1111 Large array shouldn't be slow
1112 https://bugs.webkit.org/show_bug.cgi?id=144617
1114 Reviewed by Geoffrey Garen.
1116 Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
1117 SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
1118 long-running. So, hash-map sort of belongs here.
1120 * LongSpider/hash-map.js: Added.
1125 2015-05-01 Dewei Zhu <dewei_zhu@apple.com>
1127 Fix typo bug in Speedometer/resources/main.js
1128 https://bugs.webkit.org/show_bug.cgi?id=144504
1130 Reviewed by Ryosuke Niwa.
1132 * Speedometer/resources/main.js: Fix typo.
1133 (window.benchmarkClient.totalTimeInDisplayUnit):
1135 2015-04-21 Ryosuke Niwa <rniwa@webkit.org>
1137 Add JetStream to PerformanceTests
1138 https://bugs.webkit.org/show_bug.cgi?id=144024
1140 Rubber-stamped by Filip Pizlo.
1143 * JetStream/JetStream-Logo.png: Added.
1144 * JetStream/JetStream-Logo@2x.png: Added.
1145 * JetStream/JetStream.css: Added.
1146 * JetStream/JetStreamDriver.js: Added.
1147 * JetStream/LICENSE.txt: Added.
1148 * JetStream/LLVM-test-suite-LICENSE.txt: Added.
1149 * JetStream/Octane: Added.
1150 * JetStream/Octane/base.js: Added.
1151 * JetStream/Octane/code-load.js: Added.
1152 * JetStream/Octane2: Added.
1153 * JetStream/Octane2/base.js: Added.
1154 * JetStream/Octane2/box2d.js: Added.
1155 * JetStream/Octane2/code-load.js: Added.
1156 * JetStream/Octane2/crypto.js: Added.
1157 * JetStream/Octane2/deltablue.js: Added.
1158 * JetStream/Octane2/earley-boyer.js: Added.
1159 * JetStream/Octane2/gbemu-part1.js: Added.
1160 * JetStream/Octane2/gbemu-part2.js: Added.
1161 * JetStream/Octane2/mandreel.js: Added.
1162 * JetStream/Octane2/navier-stokes.js: Added.
1163 * JetStream/Octane2/pdfjs.js: Added.
1164 * JetStream/Octane2/raytrace.js: Added.
1165 * JetStream/Octane2/regexp.js: Added.
1166 * JetStream/Octane2/richards.js: Added.
1167 * JetStream/Octane2/run.js: Added.
1168 * JetStream/Octane2/splay.js: Added.
1169 * JetStream/Octane2/typescript-compiler.js: Added.
1170 * JetStream/Octane2/typescript-input.js: Added.
1171 * JetStream/Octane2/typescript.js: Added.
1172 * JetStream/Octane2/zlib-data.js: Added.
1173 * JetStream/Octane2/zlib.js: Added.
1174 * JetStream/Octane2Setup.js: Added.
1175 * JetStream/OctaneSetup.js: Added.
1176 * JetStream/README: Added.
1177 * JetStream/Reference.js: Added.
1178 * JetStream/SimpleSetup.js: Added.
1179 * JetStream/SunSpiderSetup.js: Added.
1180 * JetStream/Swoosh.png: Added.
1181 * JetStream/Swoosh@2x.png: Added.
1182 * JetStream/TestingSetup.js: Added.
1183 * JetStream/create.rb: Added.
1184 * JetStream/docs: Added.
1185 * JetStream/docs/JetStreamBlogPost.html: Added.
1186 * JetStream/in-depth-TEMPLATE.html: Added.
1187 * JetStream/index-TEMPLATE.html: Added.
1188 * JetStream/simple: Added.
1189 * JetStream/simple/bigfib.cpp: Added.
1190 * JetStream/simple/bigfib.cpp.js: Added.
1191 * JetStream/simple/container.cpp: Added.
1192 * JetStream/simple/container.cpp.js: Added.
1193 * JetStream/simple/dry.c: Added.
1194 * JetStream/simple/dry.c.js: Added.
1195 * JetStream/simple/float-mm.c: Added.
1196 * JetStream/simple/float-mm.c.js: Added.
1197 * JetStream/simple/gcc-loops.cpp: Added.
1198 * JetStream/simple/gcc-loops.cpp.js: Added.
1199 * JetStream/simple/hash-map.js: Added.
1200 * JetStream/simple/n-body.c: Added.
1201 * JetStream/simple/n-body.c.js: Added.
1202 * JetStream/simple/quicksort.c: Added.
1203 * JetStream/simple/quicksort.c.js: Added.
1204 * JetStream/simple/towers.c: Added.
1205 * JetStream/simple/towers.c.js: Added.
1206 * JetStream/sunspider: Added.
1207 * JetStream/sunspider/3d-cube.js: Added.
1208 * JetStream/sunspider/3d-raytrace.js: Added.
1209 * JetStream/sunspider/base64.js: Added.
1210 * JetStream/sunspider/cordic.js: Added.
1211 * JetStream/sunspider/crypto-aes.js: Added.
1212 * JetStream/sunspider/crypto-md5.js: Added.
1213 * JetStream/sunspider/crypto-sha1.js: Added.
1214 * JetStream/sunspider/date-format-tofte.js: Added.
1215 * JetStream/sunspider/date-format-xparb.js: Added.
1216 * JetStream/sunspider/n-body.js: Added.
1217 * JetStream/sunspider/regex-dna.js: Added.
1218 * JetStream/sunspider/tagcloud.js: Added.
1220 2015-04-14 Said Abou-Hallawa <sabouhallawa@apple.com>
1222 textPath layout performance improvement.
1223 https://bugs.webkit.org/show_bug.cgi?id=141570.
1225 Reviewed by Darin Adler.
1227 Cut down the time spent in traversing the path for text by 50%. Instead
1228 of traversing the path twice at a certain length: one time for the position
1229 and the second time for the angle, we can merge these two passes into one.
1231 * SVG/TextOnPathSimple.html: Added.
1232 * SVG/resources/TextOnPathSimple.svg: Added.
1234 2015-04-13 Zalan Bujtas <zalan@apple.com>
1236 Clear up the test content when test is done.
1240 * Layout/simple-line-layout-innertext.html:
1242 2015-04-09 Zalan Bujtas <zalan@apple.com>
1244 Simple line layout(regression): Calling innerText on RenderFlow with multiple children is slow.
1245 https://bugs.webkit.org/show_bug.cgi?id=143554
1247 Reviewed by Antti Koivisto.
1249 Initialize render flow's segments only when the render flow changes in TextIterator.
1250 The included performance test shows 6x speedup. (from ~10 runs/sec to ~60 runs/sec)
1252 * Layout/simple-line-layout-innertext.html: Added.
1254 2015-03-09 Chris Dumez <cdumez@apple.com>
1256 [CG] Have Canvas use the IOSurfacePool
1257 https://bugs.webkit.org/show_bug.cgi?id=142417
1258 <rdar://problem/20044440>
1260 Reviewed by Darin Adler.
1262 Lower the number of different canvas sizes from 1000 to 100 so that
1263 the test does not require such a huge cache size. With 100, we now
1264 get over 90% cache hit rate with the default IOSurfacePool size.
1266 * Canvas/reuse.html:
1268 2015-01-28 Said Abou-Hallawa <sabouhallawa@apple.com>
1270 Poor performance on IE's Chalkboard benchmark.
1271 https://bugs.webkit.org/show_bug.cgi?id=140753.
1273 Reviewed by Zalan Bujtas.
1275 * SVG/UnderTheSeeBenchmark.html: Added
1276 * SVG/WorldcupBenchmark.html: Added.
1277 * SVG/resources/RenderAnimator.css: Added.
1278 * SVG/resources/RenderAnimator.js: Added.
1279 These are benchmarks for the SVG rendering. Mainly we want to measure how fast
1280 the SVG rendering will be when only a small part of it is drawn.
1282 2015-01-21 Geoffrey Garen <ggaren@apple.com>
1284 bmalloc: support aligned allocation
1285 https://bugs.webkit.org/show_bug.cgi?id=140732
1287 Reviewed by Andreas Kling.
1289 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1290 * MallocBench/MallocBench/Benchmark.cpp:
1291 * MallocBench/MallocBench/memalign.cpp:
1293 (benchmark_memalign): Added a test for specific interesting memalign values.
1295 * MallocBench/MallocBench/stress_aligned.cpp: Added.
1296 (benchmark_stress_aligned):
1297 * MallocBench/MallocBench/stress_aligned.h: Added. Added a stress test
1298 for arbitrary memalign values.
1300 2015-01-16 Geoffrey Garen <ggaren@apple.com>
1302 bmalloc: added the tiniest bit of testing for aligned allocation
1303 https://bugs.webkit.org/show_bug.cgi?id=140573
1305 Reviewed by Andreas Kling.
1307 Just good enoug to catch two bugs in a preliminary implementation.
1309 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1310 * MallocBench/MallocBench/Benchmark.cpp:
1311 * MallocBench/MallocBench/mbmalloc.cpp:
1312 * MallocBench/MallocBench/mbmalloc.h:
1313 * MallocBench/MallocBench/memalign.cpp: Added.
1314 (benchmark_memalign):
1315 * MallocBench/MallocBench/memalign.h: Added.
1317 2014-12-09 Myles C. Maxfield <mmaxfield@apple.com>
1319 Add performance test related to font fallback
1320 https://bugs.webkit.org/show_bug.cgi?id=139332
1322 Reviewed by Simon Fraser.
1324 * Layout/font-fallback.html: Added.
1325 * Layout/resources/font-fallback.html: Added.
1327 2014-12-08 Dean Jackson <dino@apple.com>
1329 [Apple] Use Accelerate framework to speed-up FEGaussianBlur
1330 https://bugs.webkit.org/show_bug.cgi?id=139310
1332 Reviewed by Simon Fraser.
1334 Add an interactive performance test that measures the speed of a set
1335 of blur operations on a generated images.
1337 * Interactive/blur-filter-timing.html: Added.
1339 2014-11-13 Zalan Bujtas <zalan@apple.com>
1341 Simple line layout: Add performance test case to measure line layout speed of monolithic text content.
1342 https://bugs.webkit.org/show_bug.cgi?id=138699
1344 Reviewed by Antti Koivisto.
1346 * Layout/line-layout-long-long-text.html: Added.
1348 2014-10-22 Zalan Bujtas <zalan@apple.com>
1350 Speed up line parsing for simple line layout (part I)
1351 https://bugs.webkit.org/show_bug.cgi?id=137275
1353 Reviewed by Antti Koivisto.
1355 Extend simple line layout performance test with a few more cases.
1360 <div white-space: pre (new)
1361 <div overflow-wrap: break-word (new)
1363 <pre white-space: pre-wrap
1364 <pre white-space: pre-line (new)
1365 <pre white-space: nowrap (new)
1366 <pre white-space: pre-wrap overflow-wrap: break-word
1367 <div + embedded <span etc.
1370 * Layout/line-layout-simple.html:
1372 2014-10-15 Andrei Bucur <abucur@adobe.com>
1374 [Multicol] Start adding performance tests for the multi-column implementation
1375 https://bugs.webkit.org/show_bug.cgi?id=137687
1377 Reviewed by Mihnea Ovidenie.
1379 This patch creates a Multicol folder inside the Layout performance tests suite. It adds only two tests
1382 The tests are skipped until the implementation stabilizes.
1384 * Layout/Multicol/MulticolManyColumns.html: Added.
1385 This test verifies the performance of the multi-column implementation with two nested multi-column
1386 containers, the first having 20 columns and the second 10 columns.
1388 * Layout/Multicol/MulticolNested.html: Added.
1389 This test verifies the performance of nesting multi-column containers in the presence
1392 * Layout/Multicol/resources/multicol-content-many-columns.html: Added.
1393 * Layout/Multicol/resources/multicol-content-nested.html: Added.
1394 * Skipped: Skip the Multicol folder for now.
1396 2014-09-29 Filip Pizlo <fpizlo@apple.com>
1398 It should be fun and easy to run every possible JavaScript benchmark from the command line
1399 https://bugs.webkit.org/show_bug.cgi?id=137245
1401 Reviewed by Oliver Hunt.
1403 This adds the scaffolding for running Octane version 2 inside run-jsc-benchmarks.
1404 In the future we should just land Octane2 in this directory, and run-jsc-benchmarks
1405 should be changed to point directly at this directory instead of requiring the
1406 Octane path to be configured as part of the configuration file.
1409 * Octane/wrappers: Added.
1410 * Octane/wrappers/jsc-box2d.js: Added.
1414 * Octane/wrappers/jsc-boyer.js: Added.
1418 * Octane/wrappers/jsc-closure.js: Added.
1422 * Octane/wrappers/jsc-decrypt.js: Added.
1426 * Octane/wrappers/jsc-deltablue.js: Added.
1430 * Octane/wrappers/jsc-earley.js: Added.
1434 * Octane/wrappers/jsc-encrypt.js: Added.
1438 * Octane/wrappers/jsc-gbemu.js: Added.
1442 * Octane/wrappers/jsc-jquery.js: Added.
1446 * Octane/wrappers/jsc-mandreel.js: Added.
1450 * Octane/wrappers/jsc-navier-stokes.js: Added.
1454 * Octane/wrappers/jsc-pdfjs.js: Added.
1455 (jscSetUp.PdfJS_window.console.log):
1459 * Octane/wrappers/jsc-raytrace.js: Added.
1463 * Octane/wrappers/jsc-regexp.js: Added.
1467 * Octane/wrappers/jsc-richards.js: Added.
1471 * Octane/wrappers/jsc-splay.js: Added.
1475 * Octane/wrappers/jsc-typescript.js: Added.
1479 * Octane/wrappers/jsc-zlib.js: Added.
1484 2014-09-28 Sungmann Cho <sungmann.cho@navercorp.com>
1486 Fix some minor typos: psuedo -> pseudo
1487 https://bugs.webkit.org/show_bug.cgi?id=137192
1489 Reviewed by Alexey Proskuryakov.
1491 * Speedometer/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js:
1493 2014-09-11 Geoffrey Garen <ggaren@apple.com>
1495 Some MallocBench refinements
1496 https://bugs.webkit.org/show_bug.cgi?id=136750
1498 Reviewed by Sam Weinig.
1500 * MallocBench/MallocBench/Interpreter.cpp:
1501 (Interpreter::run): Allow for null entries in the object list so that
1502 we can test in modes that exclude large or small allocations.
1504 * MallocBench/MallocBench/churn.cpp:
1506 * MallocBench/MallocBench/flickr.cpp:
1508 * MallocBench/MallocBench/fragment.cpp:
1509 (benchmark_fragment_iterate):
1510 * MallocBench/MallocBench/list.cpp:
1511 (benchmark_list_allocate):
1512 * MallocBench/MallocBench/reddit.cpp:
1513 (benchmark_reddit): Updated test runtimes to weight them more equally,
1514 for the sake of arithmetic mean.
1516 * MallocBench/MallocBench/stress.cpp:
1520 (benchmark_stress): Verify the contents of memory as we go. Also,
1521 force scavenging each time through the loop to test the scavenging path.
1523 * MallocBench/MallocBench/theverge.cpp:
1524 (benchmark_theverge):
1525 * MallocBench/MallocBench/tree.cpp:
1526 (benchmark_tree_churn): Re-weighted, as above.
1528 2014-09-08 Myles C. Maxfield <mmaxfield@apple.com>
1530 PerformanceTests/SVG/SVG-Text.html has unparsable output
1531 https://bugs.webkit.org/show_bug.cgi?id=136648
1533 Reviewed by Gavin Barraclough.
1535 I need to clean up the arbitrary text on the page before telling
1536 the test runner infrastructure that the test is complete.
1538 * SVG/SVG-Text.html:
1540 2014-09-05 Myles C. Maxfield <mmaxfield@apple.com>
1542 Laying out a TextRun using an SVG font is O(n^2)
1543 https://bugs.webkit.org/show_bug.cgi?id=136584
1545 Reviewed by Andreas Kling.
1547 Time how long it takes to lay out and render some text using an SVG font.
1549 * SVG/SVG-Text.html: Added.
1550 * SVG/resources/graffiti.svg: Added.
1552 2014-09-02 Geoffrey Garen <ggaren@apple.com>
1554 MallocBench should have a stress test for correctness
1555 https://bugs.webkit.org/show_bug.cgi?id=136468
1557 Reviewed by Andreas Kling.
1559 Added a stress test that allocates randomized sizes of randomized
1560 lifetimes in randomized order.
1562 This version of the test reproduces the EWS crash seen in bmalloc
1563 (<https://bugs.webkit.org/show_bug.cgi?id=132629>).
1565 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1566 * MallocBench/MallocBench/Benchmark.cpp: Sort!
1567 * MallocBench/MallocBench/stress.cpp: Added.
1569 (SizeStream::SizeStream):
1571 (benchmark_stress): Usually, we random(0). Surprisingly, though, only
1572 random(1) reproduces the bug I was looking for.
1573 * MallocBench/MallocBench/stress.h: Added.
1575 2014-06-02 Ryosuke Niwa <rniwa@webkit.org>
1577 Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
1578 https://bugs.webkit.org/show_bug.cgi?id=133455
1580 Reviewed by Timothy Hatcher.
1582 * Speedometer/: Renamed from DoYouEvenBench.
1583 * Skipped: Updated the path for InteractiveRunner.html
1585 2014-06-02 Ryosuke Niwa <rniwa@webkit.org>
1587 Rename DoYouEvenBench 0.17 to Speedometer 1.0 and add a new look.
1588 https://bugs.webkit.org/show_bug.cgi?id=133455
1590 Reviewed by Timothy Hatcher.
1592 Renamed the benchmark to Speedometer and added the new look designed by Timothy Hatcher.
1594 Also changed the unit of measurements from milliseconds to runs-per-minute averaged over the number
1595 of the benchmark suites (7 for 1.0). You can divide 420000 by the old benchmark score (in milliseconds)
1596 to get the new value for the set of tests that are enabled by default in 1.0. You can continue to see
1597 results in milliseconds on Full.html#ms.
1599 * DoYouEvenBench/Full.html: Added a bunch of sections and the description of the benchmark.
1601 * DoYouEvenBench/resources/benchmark-report.js: Remove the newly added content when ran inside a DRT or
1602 WTR so that run-perf-tests wouldn't error.
1603 * DoYouEvenBench/resources/benchmark-runner.js:
1604 (BenchmarkRunner.prototype._appendFrame): Call a newly added willAddTestFrame callback when it exists.
1606 * DoYouEvenBench/resources/gauge.png: Added.
1607 * DoYouEvenBench/resources/gauge@2x.png: Added.
1608 * DoYouEvenBench/resources/logo.png: Added.
1609 * DoYouEvenBench/resources/logo@2x.png: Added.
1610 * DoYouEvenBench/resources/main.css: Replaced the style.
1612 * DoYouEvenBench/resources/main.js:
1613 (window.benchmarkClient.willAddTestFrame): Place the iframe right where #testContainer is shown.
1614 (window.benchmarkClient.willRunTest): Show the name of the suite (e.g. EmberJS-TodoMVC) to run next.
1615 (window.benchmarkClient.didRunSuites):
1616 (window.benchmarkClient.willStartFirstIteration): Initialize _timeValues and _finishedTestCount now that
1617 we have an UI to run the benchmark multiple times without reloading the page.
1618 (window.benchmarkClient.didFinishLastIteration): Split into smaller pieces.
1619 (window.benchmarkClient._computeResults): Computes the mean and the statistics for the given time values,
1620 and also format them in a human readable form.
1621 (window.benchmarkClient._computeResults.totalTimeInDisplayUnit): Converts ms to runs/min.
1622 (window.benchmarkClient._computeResults.sigFigFromPercentDelta): Given a percentage error (e.g. 1%),
1623 returns the number of significant digits required for the mean.
1624 (window.benchmarkClient._computeResults.toSigFigPrecision): Calls toPrecision with the specified precision
1625 constrained to be at least the number of non-decimal digits and at most 6.
1626 (window.benchmarkClient._addDetailedResultsRow): Renamed from _addResult. It now takes the table to which
1627 to add a row and the iteration number.
1628 (window.benchmarkClient._updateGaugeNeedle): Added. Controls the angle of the speed indicator.
1629 (window.benchmarkClient._populateDetailedResults): Added.
1630 (window.benchmarkClient.prepareUI): Added. It adds an event listener to show a specified section when
1631 the push state of the document changes, and shows a warning sign when the view port size is too small.
1632 We do this inside a callback to avoid running it inside DRT / WTR.
1634 (showSection): Added.
1636 (showResultsSummary): Added.
1637 (showResultDetails): Added.
1640 2014-06-01 Ryosuke Niwa <rniwa@webkit.org>
1642 DYEBench: Move test states into benchmarkClient and remove the closure
1643 https://bugs.webkit.org/show_bug.cgi?id=133438
1645 Reviewed by Benjamin Poulain.
1647 Moved all local variables in the closure wrapping benchmarkClient onto the object itself
1648 and removed the closure to improve the readability of the code.
1650 * DoYouEvenBench/Full.html:
1651 * DoYouEvenBench/resources/main.js:
1652 (window.benchmarkClient.willRunTest):
1653 (window.benchmarkClient.didRunTest):
1654 (window.benchmarkClient.didRunSuites):
1655 (window.benchmarkClient.willStartFirstIteration):
1656 (window.benchmarkClient.didFinishLastIteration):
1657 (window.benchmarkClient._addResult): Moved.
1660 2014-06-01 Ryosuke Niwa <rniwa@webkit.org>
1662 DYEBench: Split stylesheets and scripts in Full.html into separate files
1663 https://bugs.webkit.org/show_bug.cgi?id=133437
1665 Reviewed by Benjamin Poulain.
1667 Extracted main.js and main.css.
1669 Also fixed a bug in startBenchmark that disabled suites were counted towards the total number of tests.
1671 * DoYouEvenBench/Full.html:
1672 * DoYouEvenBench/resources/main.css: Added.
1673 * DoYouEvenBench/resources/main.js: Added.
1675 (window.benchmarkClient):
1676 (startBenchmark): Renamed from startTest.
1678 2014-06-01 Ryosuke Niwa <rniwa@webkit.org>
1680 DYEBench: CSS parser warning at line 106 of base.css
1681 https://bugs.webkit.org/show_bug.cgi?id=133433
1683 Reviewed by Maciej Stachowiak.
1685 Removed the old filter CSS property for Internet Explorer. The latest Internet Explorer supports -ms-linear-gradient
1686 on background CSS property anyways.
1688 It's interesting that some of the tests only have -webkit- prefixes. Perhaps we should update those subtests.
1690 * DoYouEvenBench/Full.html:
1691 * DoYouEvenBench/resources/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css:
1693 * DoYouEvenBench/resources/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css:
1695 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
1697 * DoYouEvenBench/resources/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css:
1699 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css:
1701 * DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css:
1703 * DoYouEvenBench/resources/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css:
1706 2014-05-31 Ryosuke Niwa <rniwa@webkit.org>
1708 DYEBench: Ember.js assertion hit at line 20593
1709 https://bugs.webkit.org/show_bug.cgi?id=133431
1711 Reviewed by Darin Adler.
1713 The assertion was hit because ToDoMVC includes jQuery 2.1 and Ember.js 1.3.1 only recognizes jQuery 2.0.
1714 Port the assertion from Ember.js 1.5.1 to suppress the assertion.
1716 We should update the entire Ember.js at some point but this would do the job for now.
1718 * DoYouEvenBench/Full.html:
1719 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:
1721 2014-05-31 Ryosuke Niwa <rniwa@webkit.org>
1723 DYEBench: Prevent frame flattening on iOS
1724 https://bugs.webkit.org/show_bug.cgi?id=133428
1726 Reviewed by Andreas Kling.
1728 Prevent frame flattening on iOS by setting scrolling=no.
1730 * DoYouEvenBench/Full.html:
1731 * DoYouEvenBench/resources/benchmark-runner.js:
1732 (BenchmarkRunner.prototype._appendFrame):
1734 2014-05-30 Ryosuke Niwa <rniwa@webkit.org>
1736 DYEBench spits out 404 errors for learn.json
1737 https://bugs.webkit.org/show_bug.cgi?id=133416
1739 Reviewed by Oliver Hunt.
1741 Add an empty learn.json file so that it won't cause a 404 error when hosted on a http server.
1743 Bumped the version number to 0.12.
1745 * DoYouEvenBench/Full.html:
1746 * DoYouEvenBench/resources/todomvc/learn.json:
1748 2014-05-23 Geoffrey Garen <ggaren@apple.com>
1750 Performance testing, diamond-square terrain generation + canvas
1751 https://bugs.webkit.org/show_bug.cgi?id=133054
1753 Reviewed by Ryosuke Niwa.
1755 This test was written by Hunter Loftis. It originally appeared on his
1756 blog @ <http://www.playfuljs.com/realistic-terrain-in-130-lines/>.
1758 I did a bit of editing for format and benchmark suitability.
1760 * Canvas/terrain.html: Added.
1762 2014-05-13 Ryosuke Niwa <rniwa@webkit.org>
1764 DYEBench should run 20 iterations in browser
1765 https://bugs.webkit.org/show_bug.cgi?id=132795
1767 Reviewed by Gavin Barraclough.
1769 Right now, run-perf-tests runs BYEBench 4 times with different instances of DRT/WTR to get
1770 a more stable time and account for differences in the runtime environment, particularly,
1771 ASLR (Address Space Layout Randomization).
1773 While we can't account for the latter effect when the benchmark is ran inside a browser,
1774 we can at least run 20 iterations to get a more stable (but perhaps biased by ALSR) number.
1776 While the sample size of 20 is statistically unsound to compute the arithmetic mean from,
1777 it's MUCH better than the current sample size of 5.
1779 * DoYouEvenBench/Full.html:
1780 (benchmarkClient.iterationCount): Set the default iteration count to 20.
1781 (startTest): Use benchmarkClient.iterationCount as the iteration count.
1782 * DoYouEvenBench/resources/benchmark-report.js:
1783 (benchmarkClient.iterationCount): Continue to use the old iteration count of 5 when ran
1784 inside run-perf-tests.
1786 2014-05-09 Ryosuke Niwa <rniwa@webkit.org>
1788 DYEBench should show 95th percentile right next to the mean with ±
1789 https://bugs.webkit.org/show_bug.cgi?id=132729
1791 Reviewed by Darin Adler.
1793 Before this patch, Full.html showed the 95th percentile delta for the arthemtic mean in a separate row
1794 but this was confusing for some people. Show it right next to mean in the same row separated by ±.
1796 * DoYouEvenBench/Full.html:
1798 2014-05-08 Ryosuke Niwa <rniwa@webkit.org>
1800 DYEBench should use TodoMVC to test FlightJS for consistency
1801 https://bugs.webkit.org/show_bug.cgi?id=132727
1803 Reviewed by Andreas Kling.
1805 Add a test suite for the FlightJS version of TodoMVC, and disable FlightJS-MailClient by default.
1807 I initially intended to include a wider variety of demo apps in DYEBench
1808 but that's not happening any time soon so let us use TodoMVC for all frameworks for now.
1810 We can add more demo apps in v2.
1812 * DoYouEvenBench/Full.html: Increment the version to 0.10.
1813 * DoYouEvenBench/InteractiveRunner.html: Don't check disabled suites by default.
1814 * DoYouEvenBench/resources/tests.js:
1815 * DoYouEvenBench/resources/todomvc/dependency-examples: Added.
1816 * DoYouEvenBench/resources/todomvc/dependency-examples/flight: Added.
1817 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/.gitignore: Added.
1818 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/.jshintrc: Added.
1819 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app: Added.
1820 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js: Added.
1821 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/app.js: Added.
1822 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data: Added.
1823 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/stats.js: Added.
1824 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/data/todos.js: Added.
1825 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/main.js: Added.
1826 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/store.js: Added.
1827 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui: Added.
1828 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/main_selector.js: Added.
1829 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/new_item.js: Added.
1830 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/stats.js: Added.
1831 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/todo_list.js: Added.
1832 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/toggle_all.js: Added.
1833 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/ui/with_filters.js: Added.
1834 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/js/utils.js: Added.
1835 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates: Added.
1836 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/stats.html: Added.
1837 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/app/templates/todo.html: Added.
1838 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower.json: Added.
1839 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components: Added.
1840 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot: Added.
1841 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/depot/depot.js: Added.
1842 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim: Added.
1843 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-sham.js: Added.
1844 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/es5-shim/es5-shim.js: Added.
1845 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight: Added.
1846 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib: Added.
1847 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/advice.js: Added.
1848 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/base.js: Added.
1849 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/component.js: Added.
1850 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/compose.js: Added.
1851 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/debug.js: Added.
1852 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/index.js: Added.
1853 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/logger.js: Added.
1854 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/registry.js: Added.
1855 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/flight/lib/utils.js: Added.
1856 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery: Added.
1857 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/jquery/jquery.js: Added.
1858 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs: Added.
1859 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text: Added.
1860 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs-text/text.js: Added.
1861 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/requirejs/require.js: Added.
1862 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common: Added.
1863 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.css: Added.
1864 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/base.js: Added.
1865 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/bower_components/todomvc-common/bg.png: Added.
1866 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/index.html: Added.
1867 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/karma.conf.js: Added.
1868 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/package.json: Added.
1869 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/readme.md: Added.
1870 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test: Added.
1871 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/.jshintrc: Added.
1872 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture: Added.
1873 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/footer.html: Added.
1874 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/new_todo.html: Added.
1875 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/fixture/toggle_all.html: Added.
1876 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock: Added.
1877 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/mock/datastore.js: Added.
1878 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec: Added.
1879 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data: Added.
1880 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/stats_spec.js: Added.
1881 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/data/todos_spec.js: Added.
1882 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui: Added.
1883 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/new_item_spec.js: Added.
1884 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/stats_spec.js: Added.
1885 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/spec/ui/toggle_all_spec.js: Added.
1886 * DoYouEvenBench/resources/todomvc/dependency-examples/flight/test/test-main.js: Added.
1888 2014-05-07 Manuel Rego Casasnovas <rego@igalia.com>
1890 [CSS Grid Layout] Remove runtime feature
1891 https://bugs.webkit.org/show_bug.cgi?id=132382
1893 Reviewed by Benjamin Poulain.
1895 Remove set of WebKitCSSGridLayoutEnabled preference.
1897 * Layout/auto-grid-lots-of-data.html:
1898 * Layout/fixed-grid-lots-of-data.html:
1900 2014-05-06 Radu Stavila <stavila@adobe.com>
1902 [CSSRegions] Enabled regions performance tests by default
1903 https://bugs.webkit.org/show_bug.cgi?id=128244
1905 Reviewed by Andreas Kling.
1907 Enabled regions performance tests.
1911 2014-04-25 Andreas Kling <akling@apple.com>
1913 Bump jQuery to same version that dromaeo.com uses.
1915 Rubber-stamped by Ryosuke Niwa.
1917 * Dromaeo/resources/dromaeo/web/lib/jquery-1.10.2.min.js: Added.
1918 * Dromaeo/resources/dromaeo/web/tests/cssquery-jquery.html:
1919 * Dromaeo/resources/dromaeo/web/tests/jslib-attr-jquery.html:
1920 * Dromaeo/resources/dromaeo/web/tests/jslib-event-jquery.html:
1921 * Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:
1922 * Dromaeo/resources/dromaeo/web/tests/jslib-style-jquery.html:
1923 * Dromaeo/resources/dromaeo/web/tests/jslib-traverse-jquery.html:
1925 2014-04-18 Geoffrey Garen <ggaren@apple.com>
1927 Added some more Membuster recordings to MallocBench
1928 https://bugs.webkit.org/show_bug.cgi?id=131862
1930 Reviewed by Sam Weinig.
1932 * MallocBench/MallocBench/Benchmark.cpp:
1933 (Benchmark::Benchmark):
1935 * MallocBench/MallocBench/Benchmark.h:
1936 * MallocBench/MallocBench/CommandLine.cpp:
1937 * MallocBench/MallocBench/CommandLine.h:
1938 (CommandLine::runs): Added a --runs option, so we can specify zero runs
1939 for memory warning benchmarks. Those benchmarks want zero runs so that
1940 they can perform a single warmup, which does not free all allocated
1941 objects, and then see how far back to 0MB they can get. Running multiple
1942 times would accumulate leaks, which is not representative of the
1945 * MallocBench/MallocBench/Interpreter.cpp:
1946 (Interpreter::Interpreter):
1948 * MallocBench/MallocBench/Interpreter.h: Support not deallocating all
1949 objects allocated during the recording, so we can do low memory warning
1950 memory use measurements, as above.
1952 * MallocBench/MallocBench/flickr.cpp:
1953 (benchmark_flickr_memory_warning):
1954 * MallocBench/MallocBench/main.cpp:
1956 * MallocBench/MallocBench/reddit.cpp:
1957 (benchmark_reddit_memory_warning):
1958 * MallocBench/MallocBench/theverge.cpp:
1959 (benchmark_theverge_memory_warning): Adopt the API above.
1961 * MallocBench/run-malloc-benchmarks: I took a first pass at listing all
1962 available benchmarks here. Then I commented out the benchmarks that
1963 probably aren't reasonable to run by default.
1965 2014-04-18 Geoffrey Garen <ggaren@apple.com>
1967 MallocBench: removed the --measure-heap option
1968 https://bugs.webkit.org/show_bug.cgi?id=131854
1970 Reviewed by Sam Weinig.
1972 As of <https://bugs.webkit.org/show_bug.cgi?id=131661>, measuring the
1973 heap is fast, so there's no reason to disable it.
1975 * MallocBench/MallocBench/Benchmark.cpp:
1976 (Benchmark::Benchmark):
1978 (Benchmark::printReport):
1979 * MallocBench/MallocBench/Benchmark.h:
1980 * MallocBench/MallocBench/CommandLine.cpp:
1981 (CommandLine::printUsage):
1982 * MallocBench/MallocBench/CommandLine.h:
1983 (CommandLine::heapSize):
1984 (CommandLine::measureHeap): Deleted.
1985 * MallocBench/MallocBench/main.cpp:
1988 2014-04-16 Alexandru Chiculita <achicu@adobe.com>
1990 Improve performance of the RenderLayerCompositor::OverlapMap
1991 https://bugs.webkit.org/show_bug.cgi?id=115063
1993 Reviewed by Simon Fraser.
1995 Testing the performance of computing the overlap of 5000 layers.
1997 * Layout/layers_overlap_2d.html: Added. Using non-composited layers, to check
1998 that the performance on the non-composited path is not changing with this patch.
1999 * Layout/layers_overlap_3d.html: Added. Records the time to do the layout of 5000
2000 non-overlapping 3D layers.
2002 2014-04-15 Zoltan Horvath <zoltan@webkit.org>
2004 [CSS Shapes] Linking stylesheet instead of inline style definition has ruined ShapesRegions test
2005 https://bugs.webkit.org/show_bug.cgi?id=131572
2007 Reviewed by Rob Buis.
2009 In r167022 I moved the common CSS selectors into RegionsShapes.css, then I linked it into the perf test
2010 files, but the measurement results dropped down from about 400ms to 10ms. I realized it's caused by the
2011 linked css rule, so I've put the selectors back into every test case, which fixes the test measurements.
2013 * Layout/Shapes/resources/RegionsShapes.css: Removed.
2014 * Layout/Shapes/resources/RegionsShapesContent.html:
2015 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html:
2016 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html:
2017 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html:
2018 * Layout/Shapes/resources/RegionsShapesContentNoShapes.html:
2020 2014-04-14 Geoffrey Garen <ggaren@apple.com>
2022 MallocBench should scavenge explicitly instead of waiting
2023 https://bugs.webkit.org/show_bug.cgi?id=131661
2025 Reviewed by Andreas Kling.
2027 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Don't build mbmalloc
2028 by default because it will overwrite any other mbmalloc you're working
2029 with in the WebKitBuild directory.
2031 * MallocBench/MallocBench/Benchmark.cpp:
2032 (Benchmark::run): Scavenge explicitly instead of waiting. This is faster,
2033 and it's the only way to get FastMalloc to scavenge. (That's a bug in
2034 FastMalloc, but we don't want it to interfere with broader testing.)
2036 * MallocBench/MallocBench/mbmalloc.cpp:
2037 * MallocBench/MallocBench/mbmalloc.h: Added a scavenge implementation
2040 2014-04-14 Geoffrey Garen <ggaren@apple.com>
2042 A few MallocBench record/replay fixes
2043 https://bugs.webkit.org/show_bug.cgi?id=131627
2045 Reviewed by Andreas Kling.
2047 * MallocBench/MallocBench/Interpreter.cpp:
2048 (Interpreter::run): Accept 0-sized allocations without asserting because
2049 WebKit does that sometimes.
2051 * MallocBench/MallocBench/flickr.ops:
2052 * MallocBench/MallocBench/flickr_memory_warning.ops:
2053 * MallocBench/MallocBench/reddit.ops:
2054 * MallocBench/MallocBench/reddit_memory_warning.ops:
2055 * MallocBench/MallocBench/theverge.ops:
2056 * MallocBench/MallocBench/theverge_memory_warning.ops: Updated these
2057 recordings because a bug in the recording mechanism caused one out of
2058 every few thousand slot values to be bogus.
2060 2014-04-13 Geoffrey Garen <ggaren@apple.com>
2062 Added some website recordings to MallocBench -- taken from Membuster
2063 https://bugs.webkit.org/show_bug.cgi?id=131601
2065 Reviewed by Ryosuke Niwa.
2067 Added flickr, reddit, and theverge -- each recorded from Membuster's
2068 cache, with and without sending Safari a low memory warning.
2070 * MallocBench/MallocBench.xcodeproj/project.pbxproj:
2071 * MallocBench/MallocBench/Benchmark.cpp:
2072 * MallocBench/MallocBench/flickr.cpp: Added.
2074 (benchmark_flickr_memory_warning):
2075 * MallocBench/MallocBench/flickr.h: Added.
2076 * MallocBench/MallocBench/flickr.ops: Added.
2077 * MallocBench/MallocBench/flickr_memory_warning.ops: Added.
2078 * MallocBench/MallocBench/reddit.cpp: Added.
2080 (benchmark_reddit_memory_warning):
2081 * MallocBench/MallocBench/reddit.h: Added.
2082 * MallocBench/MallocBench/reddit.ops: Added.
2083 * MallocBench/MallocBench/reddit_memory_warning.ops: Added.
2084 * MallocBench/MallocBench/theverge.cpp: Added.
2085 (benchmark_theverge):
2086 (benchmark_theverge_memory_warning):
2087 * MallocBench/MallocBench/theverge.h: Added.
2088 * MallocBench/MallocBench/theverge.ops: Added.
2089 * MallocBench/MallocBench/theverge_memory_warning.ops: Added.
2091 2014-04-13 Geoffrey Garen <ggaren@apple.com>
2093 MallocBench record/replay should support realloc
2094 https://bugs.webkit.org/show_bug.cgi?id=131598
2096 Reviewed by Ryosuke Niwa.
2098 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Fixed some linkage
2099 issues that caused us not to fully link to system malloc in the default
2100 case. Also marked mbmalloc.dylib as required so the error message will
2101 be clearer if we mess up.
2103 * MallocBench/MallocBench/Interpreter.cpp:
2105 * MallocBench/MallocBench/Interpreter.h: Added the realloc case, and
2106 upgraded one-letter names to full words.
2108 2014-04-11 Dirk Schulze <krit@webkit.org>
2110 Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
2111 https://bugs.webkit.org/show_bug.cgi?id=79659
2113 Reviewed by Andreas Kling.
2115 Add performance tests for real this time.
2117 * Canvas/compositing-drawimage.html: Added.
2118 * Canvas/compositing-fillRect.html: Added.
2121 2014-04-11 Dirk Schulze <krit@webkit.org>
2123 Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
2124 https://bugs.webkit.org/show_bug.cgi?id=79659
2126 Reviewed by Andreas Kling.
2128 Add performance tests for fillRect() and drawImage() on composited contexts.
2130 * Canvas/compositing-drawimage.html: Added.
2131 * Canvas/compositing-fillRect.html: Added.
2133 2014-04-09 Zoltan Horvath <zoltan@webkit.org>
2135 [CSS Shapes] Add no shapes version of RegionsShapes performance test
2136 https://bugs.webkit.org/show_bug.cgi?id=131455
2138 Reviewed by Ryosuke Niwa.
2140 This is a no shapes version of the RegionsShapes performance test. All the content
2141 will wrap around the floating containers. This way we can compare the runtime/memory
2142 usage of the RegionsShapes test with/without shapes. The test is skipped by default.
2144 * Layout/Shapes/RegionsShapesNoShapes.html: Added.
2145 * Layout/Shapes/resources/RegionsShapesContentNoShapes.html: Added.
2147 2014-04-09 Zoltan Horvath <zoltan@webkit.org>
2149 [CSS Shapes] Add no regions version of RegionsShapes performance test
2150 https://bugs.webkit.org/show_bug.cgi?id=131442
2152 Reviewed by Ryosuke Niwa.
2154 We would like have a no regions version for RegionsShapes performance test. The new
2155 test produces similar layout to RegionsShapes.html without using regions. It is helpful
2156 for us to do further comparisons when necessary. This test is skipped by default.
2158 * Layout/Shapes/RegionsShapesNoRegions.html: Added.
2159 * Layout/Shapes/resources/RegionsShapes.css: Added.
2165 (#roundedInsetShape):
2168 (#selfIntersectingStar):
2172 * Layout/Shapes/resources/RegionsShapesContent.html:
2173 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth400.html: Added.
2174 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth600.html: Added.
2175 * Layout/Shapes/resources/RegionsShapesContentNoRegionsWidth800.html: Added.
2177 2014-04-02 Geoffrey Garen <ggaren@apple.com>
2181 Try to ignore some Xcode shmutz in MallocBench.
2183 * MallocBench/MallocBench.xcodeproj: Added property svn:ignore.
2185 2014-04-02 Geoffrey Garen <ggaren@apple.com>
2187 Let's benchmark malloc
2188 https://bugs.webkit.org/show_bug.cgi?id=131118
2190 Reviewed by Mark Hahnenberg.
2192 I want to replace fastMalloc with something faster (fasterMalloc?).
2193 I wrote these benchmarks to test / drive development.
2195 * MallocBench: Added.
2196 * MallocBench/MallocBench: Added.
2197 * MallocBench/MallocBench.xcodeproj: Added.
2198 * MallocBench/MallocBench.xcodeproj/project.pbxproj: Added.
2199 * MallocBench/MallocBench/Benchmark.cpp: Added.
2202 (Benchmark::Benchmark):
2203 (Benchmark::printBenchmarks):
2204 (Benchmark::runOnce):
2206 (Benchmark::printReport):
2207 (Benchmark::currentTimeMS):
2208 (Benchmark::currentMemoryBytes):
2209 * MallocBench/MallocBench/Benchmark.h: Added.
2210 (Benchmark::Memory::Memory):
2211 (Benchmark::Memory::operator-):
2212 (Benchmark::isValid):
2213 * MallocBench/MallocBench/CPUCount.cpp: Added.
2215 * MallocBench/MallocBench/CPUCount.h: Added.
2216 * MallocBench/MallocBench/CommandLine.cpp: Added.
2217 (CommandLine::printUsage):
2218 * MallocBench/MallocBench/CommandLine.h: Added.
2219 (CommandLine::isValid):
2220 (CommandLine::benchmarkName):
2221 (CommandLine::isParallel):
2222 (CommandLine::heapSize):
2223 (CommandLine::measureHeap):
2224 * MallocBench/MallocBench/Interpreter.cpp: Added.
2225 (Interpreter::Interpreter):
2226 (Interpreter::~Interpreter):
2228 * MallocBench/MallocBench/Interpreter.h: Added.
2229 * MallocBench/MallocBench/balloon.cpp: Added.
2230 (benchmark_balloon):
2231 * MallocBench/MallocBench/balloon.h: Added.
2232 * MallocBench/MallocBench/big.cpp: Added.
2234 * MallocBench/MallocBench/big.h: Added.
2235 * MallocBench/MallocBench/churn.cpp: Added.
2236 (HeapDouble::operator new):
2237 (HeapDouble::operator delete):
2238 (HeapDouble::HeapDouble):
2239 (HeapDouble::operator+=):
2241 * MallocBench/MallocBench/churn.h: Added.
2242 * MallocBench/MallocBench/crash.ops: Added.
2243 * MallocBench/MallocBench/facebook.cpp: Added.
2244 (benchmark_facebook):
2245 * MallocBench/MallocBench/facebook.h: Added.
2246 * MallocBench/MallocBench/facebook.ops: Added.
2247 * MallocBench/MallocBench/fragment.cpp: Added.
2249 (benchmark_fragment):
2250 (benchmark_fragment_iterate):
2251 * MallocBench/MallocBench/fragment.h: Added.
2252 * MallocBench/MallocBench/list.cpp: Added.
2253 (benchmark_list_allocate):
2254 (benchmark_list_traverse):
2255 * MallocBench/MallocBench/list.h: Added.
2256 * MallocBench/MallocBench/main.cpp: Added.
2258 * MallocBench/MallocBench/mbmalloc.cpp: Added.
2259 * MallocBench/MallocBench/mbmalloc.h: Added.
2260 * MallocBench/MallocBench/medium.cpp: Added.
2262 * MallocBench/MallocBench/medium.h: Added.
2263 * MallocBench/MallocBench/message.cpp: Added.
2264 (benchmark_message_one):
2265 (benchmark_message_many):
2266 * MallocBench/MallocBench/message.h: Added.
2267 * MallocBench/MallocBench/realloc.cpp: Added.
2268 (benchmark_realloc):
2269 * MallocBench/MallocBench/realloc.h: Added.
2270 * MallocBench/MallocBench/tree.cpp: Added.
2271 (benchmark_tree_allocate):
2272 (benchmark_tree_traverse):
2273 (benchmark_tree_churn):
2274 * MallocBench/MallocBench/tree.h: Added.
2275 * MallocBench/run-malloc-benchmarks: Added.
2277 2014-03-29 Mark Lam <mark.lam@apple.com>
2279 LongSpider 3d-morph result check is inappropriate.
2280 <https://webkit.org/b/130928>
2282 Reviewed by Filip Pizlo.
2284 The LongSpider 3d-morph component expected result check is incorrect.
2285 The existing test checks if the leading digit of a sum starts with "-1".
2286 However, it turned out that the expected sum is in the order of
2287 -1.8735013540549517e-16 (i.e. very close to 0). With small errors in
2288 the terms of the sum adding up, it is very easy for the resultant sum
2289 to fluctuate. There is no guarantee that the resultant sum's most
2290 significant digit will start with -1 either.
2292 The fix is to do a tolerance check on all the terms of the sum as well
2293 as the total sum value instead. The tolerance should be more lenient
2294 for the sum which accumulates error from the individual terms, then for
2297 * LongSpider/3d-morph.js:
2300 2014-03-28 Zoltan Horvath <zoltan@webkit.org>
2302 [CSS Shapes] Add performance tests for Shapes with Regions
2303 https://bugs.webkit.org/show_bug.cgi?id=129624
2305 Reviewed by Ryosuke Niwa.
2307 This tests introduces a real-life like page, which contains different types of shapes within
2308 shape-outsides. The content flows through regions, which use media queries. The performance test
2309 loads the actual Shapes-Regions test case into iframes with different page sizes (thus the layout
2310 triggers the media queries as well), and measures its load time.
2312 * Layout/RegionsShapes.html: Added.
2313 * Layout/Shapes/resources/RegionsShapesContent.html: Added.
2315 2014-03-20 Zoltan Horvath <zoltan@webkit.org>
2317 Add option for hiding Confidence Interval Delta on the performance tests results page
2318 https://bugs.webkit.org/show_bug.cgi?id=130483
2320 Reviewed by Ryosuke Niwa.
2322 I've found it useful to hide the confidence interval delta from the results table
2323 sometimes, for example on copying data, or for a clearer look. This patch introduces
2324 a new button for it on the local results page.
2326 * resources/results-template.html:
2328 2014-03-20 Laszlo Vidacs <lvidacs.u-szeged@partner.samsung.com>
2330 Optimize RenderTable::colToEffCol() for tables without colspans
2331 https://bugs.webkit.org/show_bug.cgi?id=129298
2333 Reviewed by Simon Fraser.
2335 Create an alternative fast path to RenderTable colToEffCol() and effColToCol()
2336 when there is no colspan or colspan does not exceed the width of table.
2337 Blink merge https://codereview.chromium.org/154243002 by rhogan
2339 * Layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html: Added.
2340 * Layout/large-table-with-collapsed-borders-and-colspans.html: Added.
2341 * Layout/large-table-with-collapsed-borders-and-no-colspans.html: Added.
2342 * Layout/resources/large-table-with-collapsed-borders.css: Added.
2343 * Layout/resources/large-table-with-collapsed-borders.js: Added.
2345 2014-03-14 Maciej Stachowiak <mjs@apple.com>
2347 Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
2348 https://bugs.webkit.org/show_bug.cgi?id=130276
2349 <rdar://problem/16266927>
2351 Reviewed by Simon Fraser.
2353 * Dromaeo/resources/dromaeo/web/tests/sunspider-3d-raytrace.html:
2354 * Dromaeo/resources/dromaeo/web/tests/sunspider-bitops-bitwise-and.html:
2355 * Dromaeo/resources/dromaeo/web/tests/sunspider-math-cordic.html:
2356 * Dromaeo/resources/dromaeo/web/tests/sunspider-string-tagcloud.html:
2357 * LongSpider/3d-morph.js:
2358 * LongSpider/3d-raytrace.js:
2359 * LongSpider/math-cordic.js:
2360 * LongSpider/string-tagcloud.js:
2361 * Parser/resources/html5-8266.html:
2362 * Parser/resources/html5.html:
2364 2014-03-10 Zoltan Horvath <zoltan@webkit.org>
2366 [CSS Shapes] Add performance tests for SVG shape with shape-margin
2367 https://bugs.webkit.org/show_bug.cgi?id=129930
2369 Reviewed by Ryosuke Niwa.
2371 The test is skipped by default.
2373 * Layout/Shapes/ShapeOutsideSVGWithMargin.html: Added.
2374 * Layout/Shapes/resources/shape.svg: Added.
2376 2014-02-19 Zoltan Horvath <zoltan@webkit.org>
2378 [CSS Shapes] Add performance test for stacked floats with shape-outsides
2379 https://bugs.webkit.org/show_bug.cgi?id=128821
2381 Reviewed by Brent Fulgham.
2383 This tests generate stacked floats content with shape-outsides.
2384 The test is skipped by default.
2386 * Layout/Shapes/ShapeOutsideStackedPolygons.html: Added.
2388 2014-02-15 Zoltan Horvath <zoltan@webkit.org>
2390 [CSS Shapes] Add performance test for raster shape with shape-margin
2391 https://bugs.webkit.org/show_bug.cgi?id=128770
2393 Reviewed by Ryosuke Niwa.
2395 This patch introduces a new performance test for image valued shapes,
2396 where shape-margin is applied on the shape.
2397 The test is skipped by default.
2399 * Layout/Shapes/ShapeOutsideRasterWithMargin.html: Added.
2401 2014-02-14 Ryosuke Niwa <rniwa@webkit.org>
2403 Improve the appearance of DYEBench
2404 https://bugs.webkit.org/show_bug.cgi?id=128866
2406 Reviewed by Antti Koivisto.
2408 Add a div that shows progress during the test. Also show 95th percentile,
2409 and use a table instead of pre to show results.
2411 * DoYouEvenBench/Full.html:
2412 (.addResult): Added. Shows results in a table.
2413 (benchmarkClient.willRunTest): Added to show the progress bar.
2414 (benchmarkClient.didRunTest):
2415 (benchmarkClient.didRunSuites):
2416 (benchmarkClient.didFinishLastIteration): Compute 95th percentile using Statistics.js
2418 * DoYouEvenBench/resources/benchmark-runner.js:
2419 (BenchmarkRunner.prototype._appendFrame): Fix the bug where marginLeft and marginTop
2420 weren't correctly parsed. We were treating top as left and bottom as top somehow.
2421 (BenchmarkRunner.prototype._runTestAndRecordResults): Fixed a typo.
2423 2014-02-13 Zoltan Horvath <zoltan@webkit.org>
2425 [CSS Shapes] Add performance test for complex polygon with shape-margin
2426 https://bugs.webkit.org/show_bug.cgi?id=128769
2428 Reviewed by Ryosuke Niwa.
2430 This patch modifies the logic of createShapeOutsideTest to accept multiple
2431 CSS properties from the test. The patch adds performance test for complex
2432 polygon shape (self intersecting at multiple places) case, moreover we
2433 apply shape-margin on the polygon also.
2435 * Layout/Shapes/ShapeOutsideContentBox.html:
2436 * Layout/Shapes/ShapeOutsideInset.html:
2437 * Layout/Shapes/ShapeOutsidePolygonWithMargin.html: Added.
2438 * Layout/Shapes/ShapeOutsideRaster.html:
2439 * Layout/Shapes/ShapeOutsideSimplePolygon.html:
2440 * Layout/Shapes/resources/shapes.js:
2442 2014-02-13 Zoltan Horvath <zoltan@webkit.org>
2444 [CSS Shapes] Add performance test for raster shape
2445 https://bugs.webkit.org/show_bug.cgi?id=128746
2447 Reviewed by Ryosuke Niwa.
2449 This patch adds performance testing for image valued shape-outside.
2450 The test is skipped by default for now.
2452 * Layout/Shapes/ShapeOutsideRaster.html: Added.
2453 * Layout/Shapes/resources/shape.gif: Added.
2455 2014-02-10 Zoltan Horvath <zoltan@webkit.org>
2457 [CSS Shapes] Add initial performance tests for polygon shape
2458 https://bugs.webkit.org/show_bug.cgi?id=128554
2460 Reviewed by Ryosuke Niwa.
2462 This patch adds performance testing for simple polygon shape-outside.
2463 The Shapes performance tests directory is skipped by default.
2465 * Layout/Shapes/ShapeOutsideSimplePolygon.html: Added.
2467 2014-02-07 Zoltan Horvath <zoltan@webkit.org>
2469 [CSS Shapes] Add initial performance tests for inset shape
2470 https://bugs.webkit.org/show_bug.cgi?id=128378
2472 Reviewed by Ryosuke Niwa.
2474 * Layout/Shapes/ShapeOutsideContentBox.html: Move js to shapes.js.
2475 * Layout/Shapes/ShapeOutsideInset.html: Added.
2476 * Layout/Shapes/resources/shapes.js: Added.
2479 2014-02-04 Ryosuke Niwa <rniwa@webkit.org>
2481 Undelete the "build" directory erroneously removed in r163427.
2483 * DoYouEvenBench/resources/todomvc/labs/architecture-examples/react/bower_components/director/build:
2485 2014-02-04 Ryosuke Niwa <rniwa@webkit.org>
2487 Revert the change made in r162216 as it broke the benchmark on shipping Safari.
2489 * DoYouEvenBench/resources/benchmark-runner.js:
2491 2014-02-04 Ryosuke Niwa <rniwa@webkit.org>
2493 DoYouEvenBench: Update Ember.js test case
2494 https://bugs.webkit.org/show_bug.cgi?id=128227
2496 Reviewed by Benjamin Poulain.
2498 Updated the Ember.js TodoMVC implementation.
2500 * DoYouEvenBench/resources/tests.js:
2501 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower.json:
2502 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember-data/ember-data.js: Added.
2503 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js:
2504 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js:
2505 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js:
2506 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js:
2507 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css:
2508 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js:
2509 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/index.html:
2510 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/app.js:
2511 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js:
2512 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js:
2513 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/helpers/pluralize.js: Added.
2514 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Removed.
2515 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/models/store.js: Removed.
2516 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/models/todo.js:
2517 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/router.js:
2518 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js:
2519 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/js/views/todos_view.js: Added.
2520 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/readme.md:
2521 * DoYouEvenBench/resources/todomvc/architecture-examples/emberjs/test.html:
2523 2014-02-04 Zoltan Horvath <zoltan@webkit.org>
2525 [CSS Shapes] Add initial performance test for shape-outside: content-box
2526 https://bugs.webkit.org/show_bug.cgi?id=128190
2528 Reviewed by Ryosuke Niwa.
2530 I've introduced Shapes subdirectory in Layout, every CSS Shapes related performance tests should
2531 go there in the future. The initial performance tests uses 'shape-outside: content-box' in order
2532 to tests the code paths of the Shapes implementation. I also introduced shapes.js, which allows us
2533 to easily add new, simple performance tests for shape-outside.
2535 The entire progress is tracked under #128188 meta bug.
2537 * Layout/Shapes/ShapeOutsideContentBox.html: Added.
2538 * Layout/Shapes/resources/shapes.css: Added.
2539 * Layout/Shapes/resources/shapes.js: Added.
2540 * Skipped: We skip running the tests by default for now.
2542 2014-01-17 Manuel Rego Casasnovas <rego@igalia.com>
2544 [CSS Regions] Minor fixes in regions performance tests
2545 https://bugs.webkit.org/show_bug.cgi?id=127041
2547 Reviewed by Ryosuke Niwa.
2549 Fix minor issues in CSS Regions performance tests.
2551 * Layout/RegionsAuto.html: Change type to lower case.
2552 * Layout/RegionsAutoMaxHeight.html: Ditto.
2553 * Layout/RegionsFixed.html: Ditto.
2554 * Layout/RegionsFixedShort.html: Ditto.
2555 * Layout/RegionsSelection.html: Ditto. Move test methods from regions.js.
2556 * Layout/resources/regions.js: Remove moved methods.
2558 2014-01-17 Ryosuke Niwa <rniwa@webkit.org>
2560 Host DoYouEvenBench on webkit.org
2561 https://bugs.webkit.org/show_bug.cgi?id=127185
2563 Reviewed by Benjamin Poulain.
2565 Compute the resources directory relative to the benchmark-runner's location
2566 so that we can load tests even if the runner HTML was located elsewhere.
2568 * DoYouEvenBench/Full.html:
2569 * DoYouEvenBench/resources/benchmark-runner.js:
2570 (BenchmarkState._containingDirectory):
2572 2014-01-17 Ryosuke Niwa <rniwa@webkit.org>
2574 DoYouEvenBench: Move flightjs-example-app and todomvc into resources
2575 https://bugs.webkit.org/show_bug.cgi?id=127183
2577 Rubber-stamped by Anders Carlsson.
2579 * DoYouEvenBench/InteractiveRunner.html: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
2580 * DoYouEvenBench/benchmark.html: Removed.
2581 * DoYouEvenBench/flightjs-example-app: Removed.
2582 * DoYouEvenBench/flightjs-example-app/LICENSE.md: Removed.
2583 * DoYouEvenBench/flightjs-example-app/README.md: Removed.
2584 * DoYouEvenBench/flightjs-example-app/app: Removed.
2585 * DoYouEvenBench/flightjs-example-app/app/boot: Removed.
2586 * DoYouEvenBench/flightjs-example-app/app/boot/page.js: Removed.
2587 * DoYouEvenBench/flightjs-example-app/app/component_data: Removed.
2588 * DoYouEvenBench/flightjs-example-app/app/component_data/compose_box.js: Removed.
2589 * DoYouEvenBench/flightjs-example-app/app/component_data/mail_items.js: Removed.
2590 * DoYouEvenBench/flightjs-example-app/app/component_data/move_to.js: Removed.
2591 * DoYouEvenBench/flightjs-example-app/app/component_ui: Removed.
2592 * DoYouEvenBench/flightjs-example-app/app/component_ui/compose_box.js: Removed.
2593 * DoYouEvenBench/flightjs-example-app/app/component_ui/folders.js: Removed.
2594 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_controls.js: Removed.
2595 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_items.js: Removed.
2596 * DoYouEvenBench/flightjs-example-app/app/component_ui/move_to_selector.js: Removed.
2597 * DoYouEvenBench/flightjs-example-app/app/component_ui/with_select.js: Removed.
2598 * DoYouEvenBench/flightjs-example-app/app/css: Removed.
2599 * DoYouEvenBench/flightjs-example-app/app/css/custom.css: Removed.
2600 * DoYouEvenBench/flightjs-example-app/app/data.js: Removed.
2601 * DoYouEvenBench/flightjs-example-app/app/templates.js: Removed.
2602 * DoYouEvenBench/flightjs-example-app/components: Removed.
2603 * DoYouEvenBench/flightjs-example-app/components/bootstrap: Removed.
2604 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css: Removed.
2605 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Removed.
2606 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Removed.
2607 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.css: Removed.
2608 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Removed.
2609 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img: Removed.
2610 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Removed.
2611 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Removed.
2612 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js: Removed.
2613 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.js: Removed.
2614 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Removed.
2615 * DoYouEvenBench/flightjs-example-app/components/es5-shim: Removed.
2616 * DoYouEvenBench/flightjs-example-app/components/es5-shim/.gitignore: Removed.
2617 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CHANGES: Removed.
2618 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Removed.
2619 * DoYouEvenBench/flightjs-example-app/components/es5-shim/LICENSE: Removed.
2620 * DoYouEvenBench/flightjs-example-app/components/es5-shim/README.md: Removed.
2621 * DoYouEvenBench/flightjs-example-app/components/es5-shim/component.json: Removed.
2622 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.js: Removed.
2623 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.min.js: Removed.
2624 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.js: Removed.
2625 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.min.js: Removed.
2626 * DoYouEvenBench/flightjs-example-app/components/es5-shim/package.json: Removed.
2627 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests: Removed.
2628 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers: Removed.
2629 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Removed.
2630 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Removed.
2631 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Removed.
2632 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/index.html: Removed.
2633 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib: Removed.
2634 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Removed.
2635 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Removed.
2636 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Removed.
2637 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Removed.
2638 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Removed.
2639 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec: Removed.
2640 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Removed.
2641 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Removed.
2642 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Removed.
2643 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Removed.
2644 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Removed.
2645 * DoYouEvenBench/flightjs-example-app/components/flight: Removed.
2646 * DoYouEvenBench/flightjs-example-app/components/flight/.travis.yml: Removed.
2647 * DoYouEvenBench/flightjs-example-app/components/flight/lib: Removed.
2648 * DoYouEvenBench/flightjs-example-app/components/flight/lib/advice.js: Removed.
2649 * DoYouEvenBench/flightjs-example-app/components/flight/lib/component.js: Removed.
2650 * DoYouEvenBench/flightjs-example-app/components/flight/lib/compose.js: Removed.
2651 * DoYouEvenBench/flightjs-example-app/components/flight/lib/index.js: Removed.
2652 * DoYouEvenBench/flightjs-example-app/components/flight/lib/logger.js: Removed.
2653 * DoYouEvenBench/flightjs-example-app/components/flight/lib/registry.js: Removed.
2654 * DoYouEvenBench/flightjs-example-app/components/flight/lib/utils.js: Removed.
2655 * DoYouEvenBench/flightjs-example-app/components/flight/tools: Removed.
2656 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug: Removed.
2657 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug/debug.js: Removed.
2658 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight: Removed.
2659 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/LICENSE.md: Removed.
2660 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/README.md: Removed.
2661 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/bower.json: Removed.
2662 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib: Removed.
2663 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Removed.
2664 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery: Removed.
2665 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib: Removed.
2666 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Removed.
2667 * DoYouEvenBench/flightjs-example-app/components/jquery: Removed.
2668 * DoYouEvenBench/flightjs-example-app/components/jquery/component.json: Removed.
2669 * DoYouEvenBench/flightjs-example-app/components/jquery/composer.json: Removed.
2670 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.js: Removed.
2671 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.min.js: Removed.
2672 * DoYouEvenBench/flightjs-example-app/components/mustache: Removed.
2673 * DoYouEvenBench/flightjs-example-app/components/mustache/mustache.js: Removed.
2674 * DoYouEvenBench/flightjs-example-app/components/requirejs: Removed.
2675 * DoYouEvenBench/flightjs-example-app/components/requirejs/require.js: Removed.
2676 * DoYouEvenBench/flightjs-example-app/index.html: Removed.
2677 * DoYouEvenBench/flightjs-example-app/karma.conf.js: Removed.
2678 * DoYouEvenBench/flightjs-example-app/package.json: Removed.
2679 * DoYouEvenBench/flightjs-example-app/requireMain.js: Removed.
2680 * DoYouEvenBench/resources/benchmark-runner.js:
2681 * DoYouEvenBench/resources/flightjs-example-app: Copied from PerformanceTests/DoYouEvenBench/flightjs-example-app.
2682 * DoYouEvenBench/resources/todomvc: Copied from PerformanceTests/DoYouEvenBench/todomvc.
2683 * DoYouEvenBench/todomvc: Removed.
2684 * DoYouEvenBench/todomvc/architecture-examples: Removed.
2685 * DoYouEvenBench/todomvc/architecture-examples/angularjs: Removed.
2686 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower.json: Removed.
2687 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components: Removed.
2688 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular: Removed.
2689 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks: Removed.
2690 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Removed.
2691 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Removed.
2692 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common: Removed.
2693 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Removed.
2694 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Removed.
2695 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Removed.
2696 * DoYouEvenBench/todomvc/architecture-examples/angularjs/index.html: Removed.
2697 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js: Removed.
2698 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/app.js: Removed.
2699 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers: Removed.
2700 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Removed.
2701 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives: Removed.
2702 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Removed.
2703 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Removed.
2704 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Removed.
2705 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services: Removed.
2706 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Removed.
2707 * DoYouEvenBench/todomvc/architecture-examples/angularjs/readme.md: Removed.
2708 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test: Removed.
2709 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config: Removed.
2710 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Removed.
2711 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/package.json: Removed.
2712 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/readme.md: Removed.
2713 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit: Removed.
2714 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Removed.
2715 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Removed.
2716 * DoYouEvenBench/todomvc/architecture-examples/backbone: Removed.
2717 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower.json: Removed.
2718 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components: Removed.
2719 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone: Removed.
2720 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage: Removed.
2721 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Removed.
2722 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Removed.
2723 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery: Removed.
2724 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Removed.
2725 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common: Removed.
2726 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Removed.
2727 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Removed.
2728 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Removed.
2729 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore: Removed.
2730 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Removed.
2731 * DoYouEvenBench/todomvc/architecture-examples/backbone/index.html: Removed.
2732 * DoYouEvenBench/todomvc/architecture-examples/backbone/js: Removed.
2733 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/app.js: Removed.
2734 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections: Removed.
2735 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections/todos.js: Removed.
2736 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models: Removed.
2737 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models/todo.js: Removed.
2738 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers: Removed.
2739 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers/router.js: Removed.
2740 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views: Removed.
2741 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/app-view.js: Removed.
2742 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/todo-view.js: Removed.
2743 * DoYouEvenBench/todomvc/architecture-examples/backbone/readme.md: Removed.
2744 * DoYouEvenBench/todomvc/architecture-examples/emberjs: Removed.
2745 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower.json: Removed.
2746 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components: Removed.
2747 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember: Removed.
2748 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter: Removed.
2749 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Removed.
2750 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Removed.
2751 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars: Removed.
2752 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Removed.
2753 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery: Removed.
2754 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Removed.
2755 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common: Removed.
2756 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Removed.
2757 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Removed.
2758 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Removed.
2759 * DoYouEvenBench/todomvc/architecture-examples/emberjs/index.html: Removed.
2760 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js: Removed.
2761 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/app.js: Removed.
2762 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers: Removed.
2763 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Removed.
2764 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Removed.
2765 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs: Removed.
2766 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Removed.
2767 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models: Removed.
2768 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/store.js: Removed.
2769 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/todo.js: Removed.
2770 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/router.js: Removed.
2771 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views: Removed.
2772 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Removed.
2773 * DoYouEvenBench/todomvc/architecture-examples/emberjs/readme.md: Removed.
2774 * DoYouEvenBench/todomvc/architecture-examples/emberjs/test.html: Removed.
2775 * DoYouEvenBench/todomvc/architecture-examples/jquery: Removed.
2776 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower.json: Removed.
2777 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components: Removed.
2778 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars: Removed.
2779 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Removed.
2780 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery: Removed.
2781 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Removed.
2782 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common: Removed.
2783 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Removed.
2784 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Removed.
2785 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Removed.
2786 * DoYouEvenBench/todomvc/architecture-examples/jquery/css: Removed.
2787 * DoYouEvenBench/todomvc/architecture-examples/jquery/css/app.css: Removed.
2788 * DoYouEvenBench/todomvc/architecture-examples/jquery/index.html: Removed.
2789 * DoYouEvenBench/todomvc/architecture-examples/jquery/js: Removed.
2790 * DoYouEvenBench/todomvc/architecture-examples/jquery/js/app.js: Removed.
2791 * DoYouEvenBench/todomvc/architecture-examples/jquery/readme.md: Removed.
2792 * DoYouEvenBench/todomvc/labs: Removed.
2793 * DoYouEvenBench/todomvc/labs/architecture-examples: Removed.
2794 * DoYouEvenBench/todomvc/labs/architecture-examples/react: Removed.
2795 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower.json: Removed.
2796 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components: Removed.
2797 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director: Removed.
2798 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Removed.
2799 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Removed.
2800 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build: Removed.
2801 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js: Removed.
2802 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js: Removed.
2803 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js: Removed.
2804 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react: Removed.
2805 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Removed.
2806 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Removed.
2807 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Removed.
2808 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Removed.
2809 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common: Removed.
2810 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Removed.
2811 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Removed.
2812 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Removed.
2813 * DoYouEvenBench/todomvc/labs/architecture-examples/react/index.html: Removed.
2814 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js: Removed.
2815 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/app.jsx: Removed.
2816 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/footer.jsx: Removed.
2817 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Removed.
2818 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/utils.jsx: Removed.
2819 * DoYouEvenBench/todomvc/labs/architecture-examples/react/readme.md: Removed.
2820 * DoYouEvenBench/todomvc/license.md: Removed.
2821 * DoYouEvenBench/todomvc/readme.md: Removed.
2822 * DoYouEvenBench/todomvc/vanilla-examples: Removed.
2823 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs: Removed.
2824 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower.json: Removed.
2825 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components: Removed.
2826 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common: Removed.
2827 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Removed.
2828 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Removed.
2829 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Removed.
2830 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/index.html: Removed.
2831 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js: Removed.
2832 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/app.js: Removed.
2833 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/controller.js: Removed.
2834 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/helpers.js: Removed.
2835 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/model.js: Removed.
2836 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/store.js: Removed.
2837 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/view.js: Removed.
2838 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/readme.md: Removed.
2841 2014-01-17 Ryosuke Niwa <rniwa@webkit.org>
2843 Build fix. Skip HTML files that are not tests.
2847 2014-01-16 Ryosuke Niwa <rniwa@webkit.org>
2849 Automate DoYouEvenBench
2850 https://bugs.webkit.org/show_bug.cgi?id=124497
2852 Reviewed by Geoffrey Garen.
2854 Enable DoYouEvenBench/Full.html on perf bots by default.
2856 Put a space between the time and ms, and fixed a typo in runner.js so that the aggregator name will be reported.
2858 * DoYouEvenBench/Full.html:
2860 * resources/runner.js:
2862 2014-01-15 Manuel Rego Casasnovas <rego@igalia.com>
2864 [CSS Regions] Add performance tests for selection with mixed content
2865 https://bugs.webkit.org/show_bug.cgi?id=126427
2867 Reviewed by Ryosuke Niwa.
2869 Add new performance tests for selection in CSS Regions mixing regular
2870 content with regions. 2 new tests are added, one checking select all
2871 command and another simulating a user selection passing through all the
2872 paragraphs (similar to Layout/RegionsSelection.html).
2874 Test are skipped for now while implementation of selection in CSS
2875 Regions is still evolving.
2877 * Layout/RegionsExtendingSelectionMixedContent.html: Added.
2878 * Layout/RegionsSelectAllMixedContent.html: Added.
2879 * Layout/resources/regions.css:
2881 * Layout/resources/regions.js:
2884 2014-01-14 Ryosuke Niwa <rniwa@webkit.org>
2886 Make DoYouEvenBench runnable by run-perf-tests
2887 https://bugs.webkit.org/show_bug.cgi?id=127030
2889 Reviewed by Andreas Kling.
2891 Added Full.html that runs 5 iterations of DoYouEvenBench. This is the canonical DoYouEvenBench,
2892 which is also runnable by run-perf-tests.
2894 * DoYouEvenBench/Full.html: Added.
2896 * DoYouEvenBench/benchmark.html:
2897 (startTest): Updated the code to account for the fact old measuredValues is pushed down to tests
2898 property and we now have total property so that we don't have to manually compute the total.
2900 * DoYouEvenBench/resources/benchmark-report.js: Added. When we're inside a DRT/WTR, use
2901 PerfTestRunner to output that can be parsed by run-perf-tests. Do the same when the query part
2902 or the fragment part of the current URL is "webkit" for debugging purposes.
2904 * DoYouEvenBench/resources/benchmark-runner.js:
2906 (BenchmarkRunner.prototype._appendFrame): Position the frame at (0, 0) inside DRT and WTR since
2907 we have exactly 800px by 600px inside those two test runners. Also always insert the iframe as
2908 the first child of body to avoid inserting it after the pre inserted by the test runner.
2909 (BenchmarkRunner.prototype.step): Initializes _measuredValues.
2910 (BenchmarkRunner.prototype.runAllSteps): Merged callNextStep in benchmark.html.
2911 (BenchmarkRunner.prototype.runMultipleIterations): Added.
2912 (BenchmarkRunner.prototype._runTestAndRecordResults): Compute the grand total among suites.
2913 Also push down the sync and async time into tests property for consistency.
2914 (BenchmarkRunner.prototype._finalize):
2916 * Dromaeo/resources/dromaeorunner.js:
2917 (DRT.testObject): Renamed dromaeoIterationCount to customIterationCount as this option is also
2918 used by DoYouEvenBench.
2920 * resources/runner.js: Ditto.
2921 (.finish): Spit out the aggregator name.
2923 2014-01-07 Ryosuke Niwa <rniwa@webkit.org>
2925 DoYouEvenBench: Turn BenchmarkRunner into a real class
2926 https://bugs.webkit.org/show_bug.cgi?id=126613
2928 Reviewed by Stephanie Lewis.
2930 Made BenchmarkRunner an instantiatable class. Made tests.js simply create an array of suite objects
2931 instead of calling BenchmarkRunner.Suite now that we can have mulitple instances of BenchmarkRunner.
2933 * DoYouEvenBench/benchmark.html:
2934 (formatTestName): Moved and renamed from BenchmarkRunner._testName.
2935 (createUIForSuites): Extracted from a giant blob of code.
2937 * DoYouEvenBench/resources/benchmark-runner.js:
2938 (BenchmarkRunner): Added.
2939 (BenchmarkRunner.prototype.waitForElement):
2940 (BenchmarkRunner.prototype._removeFrame):
2941 (BenchmarkRunner.prototype._appendFrame):
2942 (BenchmarkRunner.prototype._waitAndWarmUp):
2943 (BenchmarkRunner.prototype._runTest):
2944 (BenchmarkState.prototype.prepareCurrentSuite):
2945 (BenchmarkRunner.prototype.step):
2946 (BenchmarkRunner.prototype._runTestAndRecordResults):
2947 (BenchmarkRunner.prototype._finalize):
2948 * DoYouEvenBench/resources/tests.js:
2950 2014-01-07 Ryosuke Niwa <rniwa@webkit.org>
2952 DoYouEvenBench: Extract tests and runner code from benchmark.js/html
2953 https://bugs.webkit.org/show_bug.cgi?id=126596
2955 Reviewed by Stephanie Lewis.
2957 Extracted benchmark-runner.js and tests.js out of benchmark.js and benchmark.html.
2959 Added a "client" interface to BenchmarkRunner so that benchmark.html could register necessary hooks to
2960 update its UI. Also made BenchmarkRunner store a tree of results so that the serialization of test names
2961 could be isolated from BenchmarkRunner itself in the future.
2963 * DoYouEvenBench/benchmark.html:
2964 Moved the code to instantiate and update UI here from benchmark.js. The test code was moved out of this
2965 file into resources/tests.js.
2967 * DoYouEvenBench/resources/benchmark-runner.js: Renamed from PerformanceTests/DoYouEvenBench/benchmark.js.
2968 (SimplePromise): Moved from benchmark.js
2969 (SimplePromise.prototype.then): Ditto.
2970 (SimplePromise.prototype.resolve): Ditto.
2971 (BenchmarkTestStep): Added. Wraps each test step.
2972 (BenchmarkRunner.suite): Moved from benchmark.js.
2973 (BenchmarkRunner.setClient): Added.
2974 (BenchmarkRunner.waitForElement): Moved.
2975 (BenchmarkRunner._removeFrame): Ditto.
2976 (BenchmarkRunner._appendFrame): Ditto. Set the width and the height of the iframe as they're more than
2977 presentational as they affect performance.
2978 (BenchmarkRunner._waitAndWarmUp): Ditto.
2979 (BenchmarkRunner._runTest): Ditto.
2980 (BenchmarkRunner._testName): Ditto.
2981 (BenchmarkState): Ditto.
2982 (BenchmarkState.prototype.currentSuite): Ditto.
2983 (BenchmarkState.prototype.currentTest): Ditto.
2984 (BenchmarkState.prototype.next): Ditto.
2985 (BenchmarkState.prototype.isFirstTest): Ditto.
2986 (BenchmarkState.prototype.prepareCurrentSuite): Ditto.
2987 (BenchmarkRunner.step): Ditto.
2988 (BenchmarkRunner._runTestAndRecordResults): Ditto. Note the code to update the UI has been move to
2989 benchmark.html. Also moved the code to accumulate the totals here from _finalize.
2990 (BenchmarkRunner._finalize): Moved.
2992 * DoYouEvenBench/resources/tests.js: Copied from PerformanceTests/DoYouEvenBench/benchmark.html.
2993 Uses BenchmarkTestStep instead of an array for each test step.
2995 2014-01-02 Myles C. Maxfield <mmaxfield@apple.com>
2997 Allow ImageBuffer to re-use IOSurfaces
2998 https://bugs.webkit.org/show_bug.cgi?id=125477
3000 Reviewed by Geoff Garen.
3002 This test times creating a variety of different sizes of canvases
3003 once some have already been created. The second creation of the
3004 canvases should re-use the existing IOSurfaces.
3006 * Canvas/reuse.html: Added.
3008 2013-12-23 Commit Queue <commit-queue@webkit.org>
3010 Unreviewed, rolling out r160945.
3011 http://trac.webkit.org/changeset/160945
3012 https://bugs.webkit.org/show_bug.cgi?id=126164
3014 Seems to have broken multiple canvas tests (Requested by ap on
3017 * Canvas/reuse.html: Removed.
3019 2013-12-09 Myles C. Maxfield <mmaxfield@apple.com>
3021 Allow ImageBuffer to re-use IOSurfaces
3022 https://bugs.webkit.org/show_bug.cgi?id=125477
3024 Reviewed by Geoff Garen.
3026 This test times creating a variety of different sizes of canvases
3027 once some have already been created. The second creation of the
3028 canvases should re-use the existing IOSurfaces.
3030 * Canvas/reuse.html: Added.
3032 2013-12-15 Ryosuke Niwa <rniwa@webkit.org>
3034 REGRESSION: 2x regression on Dromaeo DOM query tests
3035 https://bugs.webkit.org/show_bug.cgi?id=125377
3037 Reviewed by Filip Pizlo.
3039 Added a micro-benchmark for updating a named property on document.
3041 * Bindings/update-name-getter.html: Added.
3044 2013-12-03 Manuel Rego Casasnovas <rego@igalia.com>
3046 [CSS Regions] Fix Layout/RegionsSelection.html in Mac platform
3047 https://bugs.webkit.org/show_bug.cgi?id=124963
3049 Reviewed by Ryosuke Niwa.
3051 Layout/RegionsSelection.html introduced in r159488 was not working in
3052 Mac platform because of it was trying to use mouse events out of the
3053 window dimensions. Use collapse() and extend() methods from Selection
3054 object to solve the issue.
3056 * Layout/resources/regions.js: Use collapse() and extend() instead of
3059 2013-11-27 Ryosuke Niwa <rniwa@webkit.org>
3061 Build fix after r159805.
3063 * resources/runner.js:
3065 2013-11-26 Sergio Villar Senin <svillar@igalia.com>
3067 [CSS Grid Layout] Support grid-definition-{rows|columns} repeat() syntax
3068 https://bugs.webkit.org/show_bug.cgi?id=103312
3070 Reviewed by Andreas Kling.
3072 Use the repeat() syntax to build the huge grids used by the
3075 * Layout/auto-grid-lots-of-data.html:
3076 * Layout/fixed-grid-lots-of-data.html:
3078 2013-11-26 Ryosuke Niwa <rniwa@webkit.org>
3080 Record subtest values in Dromaeo tests
3081 https://bugs.webkit.org/show_bug.cgi?id=124498
3083 Reviewed by Andreas Kling.
3085 Made Dromaeo's test runner report values in DRT.progress via newly added PerfTestRunner.reportValues.
3087 * Dromaeo/resources/dromaeorunner.js:
3088 (.): Moved the definition out of DRT.setup.
3090 (DRT.testObject): Extracted from DRT.setup. Set the subtest name and continueTesting.
3091 continueTesting is set true for subtests; i.e. when name is specified.
3092 (DRT.progress): Call PerfTestRunner.reportValues to report subtest results.
3093 (DRT.teardown): Call PerfTestRunner.reportValues instead of measureValueAsync.
3095 * resources/runner.js: Made various changes for newly added PerfTestRunner.reportValues.
3096 (.): Moved the initialization of completedIterations, results, jsHeapResults, and mallocHeapResults into
3097 start since they need to be initialized before running each subtest. Initialize logLines here since we
3098 need to use the same logger for all subtests.
3099 (.start): Initialize the variables mentioned above here. Also respect doNotLogStart used by reportValues.
3100 (ignoreWarmUpAndLog): Added doNotLogProgress. Used by reportValues since it reports all values at once.
3101 (finish): Compute the metric name such as FrameFrame and Runs from unit. Also don't log or notify done
3102 when continueTesting is set on the test object.
3103 (PerfTestRunner.reportValues): Added. Reports all values for the main/sub test.
3105 2013-11-26 Ryosuke Niwa <rniwa@webkit.org>
3107 Remove replay performance tests as it's not actively maintained
3108 https://bugs.webkit.org/show_bug.cgi?id=124764
3110 Reviewed by Andreas Kling.
3112 Removed the replay performance tests. We can add them back when time comes.
3114 * Replay/Chinese/chinaz.com.replay: Removed.
3115 * Replay/Chinese/www.163.com.replay: Removed.
3116 * Replay/Chinese/www.alipay.com.replay: Removed.
3117 * Replay/Chinese/www.baidu.com.replay: Removed.
3118 * Replay/Chinese/www.csdn.net.replay: Removed.
3119 * Replay/Chinese/www.douban.com.replay: Removed.
3120 * Replay/Chinese/www.hao123.com.replay: Removed.
3121 * Replay/Chinese/www.xinhuanet.com.replay: Removed.
3122 * Replay/Chinese/www.xunlei.com.replay: Removed.
3123 * Replay/Chinese/www.youku.com.replay: Removed.
3124 * Replay/English/beatonna.livejournal.com.replay: Removed.
3125 * Replay/English/cakewrecks.blogspot.com.replay: Removed.
3126 * Replay/English/chemistry.about.com.replay: Removed.
3127 * Replay/English/digg.com.replay: Removed.
3128 * Replay/English/en.wikipedia.org-rorschach_test.replay: Removed.
3129 * Replay/English/icanhascheezburger.com.replay: Removed.
3130 * Replay/English/imgur.com-gallery.replay: Removed.
3131 * Replay/English/online.wsj.com.replay: Removed.
3132 * Replay/English/stockoverflow.com-best-comment.replay: Removed.
3133 * Replay/English/www.alibaba.com.replay: Removed.
3134 * Replay/English/www.amazon.com-kindle.replay: Removed.
3135 * Replay/English/www.apple.com.replay: Removed.
3136 * Replay/English/www.cnet.com.replay: Removed.
3137 * Replay/English/www.dailymotion.com.replay: Removed.
3138 * Replay/English/www.ehow.com-prevent-fire.replay: Removed.
3139 * Replay/English/www.filestube.com-amy-adams.replay: Removed.
3140 * Replay/English/www.foxnews.replay: Removed.
3141 * Replay/English/www.huffingtonpost.com.replay: Removed.
3142 * Replay/English/www.imdb.com-twilight.replay: Removed.
3143 * Replay/English/www.mozilla.com-all-order.replay: Removed.
3144 * Replay/English/www.php.net.replay: Removed.
3145 * Replay/English/www.reddit.com.replay: Removed.
3146 * Replay/English/www.telegraph.co.uk.replay: Removed.
3147 * Replay/English/www.w3.org-htmlcss.replay: Removed.
3148 * Replay/English/www.w3schools.com-html.replay: Removed.
3149 * Replay/English/www.youtube.com-music.replay: Removed.
3150 * Replay/French/www.orange.fr.replay: Removed.
3151 * Replay/Italian/www.repubblica.it.replay: Removed.
3152 * Replay/Japanese/2ch.net-newsplus.replay: Removed.
3153 * Replay/Japanese/entameblog.seesaa.net.replay: Removed.
3154 * Replay/Japanese/ja.wikipedia.org.replay: Removed.
3155 * Replay/Japanese/www.hatena.ne.jp.replay: Removed.
3156 * Replay/Japanese/www.livedoor.com.replay: Removed.
3157 * Replay/Japanese/www.nicovideo.jp.replay: Removed.
3158 * Replay/Japanese/www.rakuten.co.jp.replay: Removed.
3159 * Replay/Japanese/www.yahoo.co.jp.replay: Removed.
3160 * Replay/Korean/www.naver.com.replay: Removed.
3161 * Replay/Persian/blogfa.com.replay: Removed.
3162 * Replay/Polish/www.wp.pl.replay: Removed.
3163 * Replay/Portuguese/www.uol.com.br.replay: Removed.
3164 * Replay/Russian/lenta.ru.replay: Removed.
3165 * Replay/Russian/vkontakte.ru-help.replay: Removed.
3166 * Replay/Russian/www.ixbt.com.replay: Removed.
3167 * Replay/Russian/www.kp.ru.replay: Removed.
3168 * Replay/Russian/www.liveinternet.ru.replay: Removed.
3169 * Replay/Russian/www.pravda.ru.replay: Removed.
3170 * Replay/Russian/www.rambler.ru.replay: Removed.
3171 * Replay/Russian/www.ucoz.ru.replay: Removed.
3172 * Replay/Russian/www.yandex.ru.replay: Removed.
3173 * Replay/Spanish/www.taringa.net.replay: Removed.
3174 * Replay/Swedish/www.flashback.se.replay: Removed.
3175 * Replay/Swedish/www.tradera.com.replay: Removed.
3176 * Replay/www.google.com.replay: Removed.
3177 * Replay/www.techcrunch.com.replay: Removed.
3178 * Replay/www.youtube.com.replay: Removed.
3180 2013-11-22 Ryosuke Niwa <rniwa@webkit.org>
3182 Layout Test editing/deleting/password-delete-performance.html is failing
3183 https://bugs.webkit.org/show_bug.cgi?id=124781
3185 Reviewed by Alexey Proskuryakov.
3187 Add a new performance test to replace editing/deleting/password-delete-performance.html.
3188 We skip this test by default since it's a micro benchmark.
3190 * Interactive/DeletingInPasswordField.html: Added.
3193 2013-11-18 Sergio Villar Senin <svillar@igalia.com>
3195 [CSS Grid Layout] Improve content-sized track layout
3196 https://bugs.webkit.org/show_bug.cgi?id=124408
3198 Reviewed by Dean Jackson.
3200 From Blink r156122 by <jchaffraix@chromium.org>
3202 New test to check the performance of layouting grids with content sized tracks.
3204 * Layout/auto-grid-lots-of-data.html: Added.
3206 2013-11-08 Sergio Villar Senin <svillar@igalia.com>
3208 [CSS Grid Layout] Run the content-sized tracks sizing algorithm only when required
3209 https://bugs.webkit.org/show_bug.cgi?id=124039
3211 Reviewed by Dean Jackson.
3213 From Blink r156028 and r156168 by <jchaffraix@chromium.org>.
3215 New performance tests for layouts in grids with fixed size tracks.
3217 * Layout/fixed-grid-lots-of-data.html: Added.
3219 2013-11-19 Manuel Rego Casasnovas <rego@igalia.com>
3221 [CSS Regions] Add performance test for selection
3222 https://bugs.webkit.org/show_bug.cgi?id=119230
3224 Reviewed by Ryosuke Niwa.
3226 Add new performance test for selection in CSS Regions. It checks a
3227 selection from the first region to the last one, passing through all the
3230 Test is skipped for now while implementation of selection in CSS Regions
3233 * Layout/RegionsSelection.html: Added.
3234 * Layout/resources/regions.js:
3238 2013-11-18 Ryosuke Niwa <rniwa@webkit.org>
3240 Simplify and reformat the output of performance tests inside test runners
3241 https://bugs.webkit.org/show_bug.cgi?id=124496
3243 Reviewed by Antti Koivisto.
3245 As a preparation to support subtests for Dromaeo and DoYouEvenBench, simplify the output performance tests generate.
3246 Also modernize the output to better support "metric" concept we introduced a while ago.
3248 New output on Dromaeo/dom-attr looks like this:
3249 -----------------------------------------------
3251 getAttribute -> [1105, 1108, 1134, 1137, 1154]
3252 element.property -> [1634, 1655, 1685, 1696, 1723]
3253 setAttribute -> [646.3536463536464, 651, 651, 656.3436563436563, 658]
3254 element.property = value -> [934, 949, 963, 964, 974]
3255 element.expando = value -> [419, 419.5804195804196, 421.57842157842157, 425.57442557442556, 429]
3256 element.expando -> [501, 517, 519.4805194805194, 521.4785214785214, 525]
3258 1: 117.40644785571585 runs/s
3259 2: 118.84720469666297 runs/s
3260 3: 119.80547640905021 runs/s
3261 4: 120.51886194758805 runs/s
3262 5: 121.51924380569295 runs/s
3264 :Time -> [117.40644785571585, 118.84720469666297, 119.80547640905021, 120.51886194758805, 121.51924380569295] runs/s
3265 mean: 119.619446942942 runs/s
3266 median: 119.80547640905021 runs/s
3267 stdev: 1.5769040458730506 runs/s
3268 min: 117.40644785571585 runs/s
3269 max: 121.51924380569295 runs/s
3270 -----------------------------------------------
3272 * Dromaeo/resources/dromaeorunner.js:
3273 (DRT.progress): Use the new format for subtest reports.
3274 * resources/runner.js:
3275 (.): Declare verboseLogging, which is set to true outside of test runners.
3276 (PerfTestRunner.logInfo): Use verboseLogging instead of directly checking window.testRunner.
3277 (PerfTestRunner.logDetail): Added. Logs informative text with a label such as "mean: 123 s" with 4-space indentation.
3278 (PerfTestRunner.logStatistics): Use logDetail.
3279 (.start): Initialize verboseLogging. Also log "Running 20 times" as an informative log using logDetail.
3280 (.ignoreWarmUpAndLog): Use logDetail for showing the progress. These logs were useless inside test runners anyway
3281 because perftest didn't get to see any output until the test finished running.
3282 (.finish): Call logStatistics with metric name as opposed to a label. Each metric name is now prefixed with ':' to be
3283 distinguishable from subtests, making the new format forward compatible.
3285 2013-11-18 Ryosuke Niwa <rniwa@webkit.org>
3287 [Performance tests] Interactive/SelectAll.html throws an exception
3288 https://bugs.webkit.org/show_bug.cgi?id=124495
3290 Reviewed by Antti Koivisto
3292 Return a boolean indicating whether more values are needed or not in
3293 PerfTestRunner.measureValueAsync so that runTest can terminate gracefully.
3295 * Interactive/SelectAll.html:
3296 (runTest): Don't schedule a timer for runTest if we've got enough values.
3297 * resources/runner.js:
3298 (PerfTestRunner.measureValueAsync): Returns true iff more values are needed.
3300 2013-11-13 Antti Koivisto <antti@apple.com>
3302 This was supposed to test overflow-wrap:break-word instead of word-break:break-all.
3304 Rubber-stamped by Andreas Kling.
3306 * Layout/line-layout-simple.html:
3308 2013-11-12 Andreas Kling <akling@apple.com>
3310 Remove body onload handler from html5-8266.html that was causing
3311 the test to sometimes finish before doing anything interesting.
3313 Unskip Parser/HTML5-8266-FullRender.html now that it's stable.
3315 Rubber-stamped by Antti Koivisto.
3317 * Parser/resources/html5-8266.html:
3320 2013-11-12 Andreas Kling <akling@apple.com>
3322 Neutralize external resource loads in the new HTML5 spec copy.
3324 Skip Parser/HTML5-8266-FullRender.html until I can make it less flaky.
3326 * Parser/resources/html5-8266.html:
3329 2013-11-12 Andreas Kling <akling@apple.com>
3331 Import a fresh version of the full HTML5 spec for perf testing.
3333 Rubber-stamped by Antti Koivisto.
3335 * Parser/HTML5-8266-FullRender.html: Added.
3336 * Parser/HTML5-8266-ParseOnly.html: Added.
3337 * Parser/resources/html5-8266.html: Added.
3339 2013-11-09 Antti Koivisto <antti@apple.com>
3341 Add subtest for word-break:break-all to Layout/line-layout-simple.html
3342 https://bugs.webkit.org/show_bug.cgi?id=124103
3344 Reviewed by Andreas Kling.
3346 * Layout/line-layout-simple.html:
3348 Combination "white-space:pre-wrap; word-break:break-all" is common for pure text.
3350 2013-11-08 Antti Koivisto <antti@apple.com>
3352 Add line layout performance test that exercises more cases
3353 https://bugs.webkit.org/show_bug.cgi?id=124041
3355 Reviewed by Anders Carlsson.
3357 The existing line-layout.html covers the most basic left-aligned case only.
3358 Add a test with more coverage for things that are mostly not yet supported by the simple
3362 - right aligned text
3365 - white-space:pre-wrap
3366 - text with simple inlines
3369 * Layout/line-layout-simple.html: Added.
3371 2013-10-25 Sergio Villar Senin <svillar@igalia.com>
3373 Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
3374 https://bugs.webkit.org/show_bug.cgi?id=118620
3376 Reviewed by Antti Koivisto.
3378 From Blink r152960 by <ojan@chromium.org>
3380 New performance test for layouts in flexboxes.
3382 * Layout/flexbox-lots-of-data.html: Added.
3384 2013-10-24 Commit Queue <commit-queue@webkit.org>
3386 Unreviewed, rolling out r157916.
3387 http://trac.webkit.org/changeset/157916
3388 https://bugs.webkit.org/show_bug.cgi?id=123274
3390 Broke Layout/flexbox-lots-of-data.html on perfbot (Requested
3393 * Layout/flexbox-lots-of-data.html: Removed.
3395 2013-10-14 Sergio Villar Senin <svillar@igalia.com>
3397 Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
3398 https://bugs.webkit.org/show_bug.cgi?id=118620
3400 Reviewed by Antti Koivisto.
3402 From Blink r152960 by <ojan@chromium.org>
3404 New performance test for layouts in flexboxes.
3406 * Layout/flexbox-lots-of-data.html: Added.
3408 2013-10-06 Ryosuke Niwa <rniwa@webkit.org>
3410 DoYouEvenBench: Make it work on Internet Explorer 11 Release Preview
3411 https://bugs.webkit.org/show_bug.cgi?id=122406
3413 Reviewed by Darin Adler.
3415 On Internet Explorer 11, $(elem).closest('li').data('id') fails to find the containig li of elem once
3416 the first item is marked complete or deleted until we get back to the event loop in the jQuery/TodoMVC.
3417 Worked around this limitation by overriding app.getTodo to use each item's id computed in advance.
3419 Also use $.text instead of execCommand('InsertText') in FlightJS/MailClient since Internet Explorer
3420 doesn't support execCommand('InsertText'). Also select the recipient to avoid exceptions.
3422 * DoYouEvenBench/benchmark.html:
3424 2013-10-05 Ryosuke Niwa <rniwa@webkit.org>
3426 DoYouEvenBench: Add Facebook's React TodoMVC test case
3427 https://bugs.webkit.org/show_bug.cgi?id=122379
3429 Reviewed by Andreas Kling.
3431 Add React/TodoMVC as a new test case. Somehow we beat Firefox on this one as well.
3433 * DoYouEvenBench/benchmark.html:
3434 * DoYouEvenBench/todomvc/labs: Added.
3435 * DoYouEvenBench/todomvc/labs/architecture-examples: Added.
3436 * DoYouEvenBench/todomvc/labs/architecture-examples/react: Added.
3437 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower.json: Added.
3438 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components: Added.
3439 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director: Added.
3440 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/LICENSE: Added.
3441 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/README.md: Added.
3442 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build: Added.
3443 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.js: Added.
3444 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/director.min.js: Added.
3445 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/director/build/ender.js: Added.
3446 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react: Added.
3447 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/JSXTransformer.js: Added.
3448 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/bower.json: Added.
3449 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.js: Added.
3450 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/react/react.min.js: Added.
3451 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common: Added.
3452 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.css: Added.
3453 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/base.js: Added.
3454 * DoYouEvenBench/todomvc/labs/architecture-examples/react/bower_components/todomvc-common/bg.png: Added.
3455 * DoYouEvenBench/todomvc/labs/architecture-examples/react/index.html: Added.
3456 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js: Added.
3457 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/app.jsx: Added.
3458 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/footer.jsx: Added.
3459 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/todoItem.jsx: Added.
3460 * DoYouEvenBench/todomvc/labs/architecture-examples/react/js/utils.jsx: Added.
3461 * DoYouEvenBench/todomvc/labs/architecture-examples/react/readme.md: Added.
3463 2013-09-25 Ryosuke Niwa <rniwa@webkit.org>
3465 DoYouEvenBench: Add a test case for FlightJS
3466 https://bugs.webkit.org/show_bug.cgi?id=121926
3468 Reviewed by Antti Koivisto.
3470 Add a FlightJS test case.
3472 * DoYouEvenBench/benchmark.html:
3473 * DoYouEvenBench/benchmark.js:
3474 * DoYouEvenBench/flightjs-example-app: Added.
3475 * DoYouEvenBench/flightjs-example-app/LICENSE.md: Added.
3476 * DoYouEvenBench/flightjs-example-app/README.md: Added.
3477 * DoYouEvenBench/flightjs-example-app/app: Added.
3478 * DoYouEvenBench/flightjs-example-app/app/boot: Added.
3479 * DoYouEvenBench/flightjs-example-app/app/boot/page.js: Added.
3480 * DoYouEvenBench/flightjs-example-app/app/component_data: Added.
3481 * DoYouEvenBench/flightjs-example-app/app/component_data/compose_box.js: Added.
3482 * DoYouEvenBench/flightjs-example-app/app/component_data/mail_items.js: Added.
3483 * DoYouEvenBench/flightjs-example-app/app/component_data/move_to.js: Added.
3484 * DoYouEvenBench/flightjs-example-app/app/component_ui: Added.
3485 * DoYouEvenBench/flightjs-example-app/app/component_ui/compose_box.js: Added.
3486 * DoYouEvenBench/flightjs-example-app/app/component_ui/folders.js: Added.
3487 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_controls.js: Added.
3488 * DoYouEvenBench/flightjs-example-app/app/component_ui/mail_items.js: Added.
3489 * DoYouEvenBench/flightjs-example-app/app/component_ui/move_to_selector.js: Added.
3490 * DoYouEvenBench/flightjs-example-app/app/component_ui/with_select.js: Added.
3491 * DoYouEvenBench/flightjs-example-app/app/css: Added.
3492 * DoYouEvenBench/flightjs-example-app/app/css/custom.css: Added.
3493 * DoYouEvenBench/flightjs-example-app/app/data.js: Added.
3494 * DoYouEvenBench/flightjs-example-app/app/templates.js: Added.
3495 * DoYouEvenBench/flightjs-example-app/components: Added.
3496 * DoYouEvenBench/flightjs-example-app/components/bootstrap: Added.
3497 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css: Added.
3498 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.css: Added.
3499 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap-responsive.min.css: Added.
3500 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.css: Added.
3501 * DoYouEvenBench/flightjs-example-app/components/bootstrap/css/bootstrap.min.css: Added.
3502 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img: Added.
3503 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings-white.png: Added.
3504 * DoYouEvenBench/flightjs-example-app/components/bootstrap/img/glyphicons-halflings.png: Added.
3505 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js: Added.
3506 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.js: Added.
3507 * DoYouEvenBench/flightjs-example-app/components/bootstrap/js/bootstrap.min.js: Added.
3508 * DoYouEvenBench/flightjs-example-app/components/es5-shim: Added.
3509 * DoYouEvenBench/flightjs-example-app/components/es5-shim/.gitignore: Added.
3510 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CHANGES: Added.
3511 * DoYouEvenBench/flightjs-example-app/components/es5-shim/CONTRIBUTORS.md: Added.
3512 * DoYouEvenBench/flightjs-example-app/components/es5-shim/LICENSE: Added.
3513 * DoYouEvenBench/flightjs-example-app/components/es5-shim/README.md: Added.
3514 * DoYouEvenBench/flightjs-example-app/components/es5-shim/component.json: Added.
3515 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.js: Added.
3516 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-sham.min.js: Added.
3517 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.js: Added.
3518 * DoYouEvenBench/flightjs-example-app/components/es5-shim/es5-shim.min.js: Added.
3519 * DoYouEvenBench/flightjs-example-app/components/es5-shim/package.json: Added.
3520 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests: Added.
3521 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers: Added.
3522 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js: Added.
3523 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h-matchers.js: Added.
3524 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/helpers/h.js: Added.
3525 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/index.html: Added.
3526 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib: Added.
3527 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine-html.js: Added.
3528 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.css: Added.
3529 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine.js: Added.
3530 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/jasmine_favicon.png: Added.
3531 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/lib/json2.js: Added.
3532 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec: Added.
3533 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-array.js: Added.
3534 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-date.js: Added.
3535 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-function.js: Added.
3536 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-object.js: Added.
3537 * DoYouEvenBench/flightjs-example-app/components/es5-shim/tests/spec/s-string.js: Added.
3538 * DoYouEvenBench/flightjs-example-app/components/flight: Added.
3539 * DoYouEvenBench/flightjs-example-app/components/flight/.travis.yml: Added.
3540 * DoYouEvenBench/flightjs-example-app/components/flight/lib: Added.
3541 * DoYouEvenBench/flightjs-example-app/components/flight/lib/advice.js: Added.
3542 * DoYouEvenBench/flightjs-example-app/components/flight/lib/component.js: Added.
3543 * DoYouEvenBench/flightjs-example-app/components/flight/lib/compose.js: Added.
3544 * DoYouEvenBench/flightjs-example-app/components/flight/lib/index.js: Added.
3545 * DoYouEvenBench/flightjs-example-app/components/flight/lib/logger.js: Added.
3546 * DoYouEvenBench/flightjs-example-app/components/flight/lib/registry.js: Added.
3547 * DoYouEvenBench/flightjs-example-app/components/flight/lib/utils.js: Added.
3548 * DoYouEvenBench/flightjs-example-app/components/flight/tools: Added.
3549 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug: Added.
3550 * DoYouEvenBench/flightjs-example-app/components/flight/tools/debug/debug.js: Added.
3551 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight: Added.
3552 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/LICENSE.md: Added.
3553 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/README.md: Added.
3554 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/bower.json: Added.
3555 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib: Added.
3556 * DoYouEvenBench/flightjs-example-app/components/jasmine-flight/lib/jasmine-flight.js: Added.
3557 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery: Added.
3558 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib: Added.
3559 * DoYouEvenBench/flightjs-example-app/components/jasmine-jquery/lib/jasmine-jquery.js: Added.
3560 * DoYouEvenBench/flightjs-example-app/components/jquery: Added.
3561 * DoYouEvenBench/flightjs-example-app/components/jquery/component.json: Added.
3562 * DoYouEvenBench/flightjs-example-app/components/jquery/composer.json: Added.
3563 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.js: Added.
3564 * DoYouEvenBench/flightjs-example-app/components/jquery/jquery.min.js: Added.
3565 * DoYouEvenBench/flightjs-example-app/components/mustache: Added.
3566 * DoYouEvenBench/flightjs-example-app/components/mustache/mustache.js: Added.
3567 * DoYouEvenBench/flightjs-example-app/components/requirejs: Added.
3568 * DoYouEvenBench/flightjs-example-app/components/requirejs/require.js: Added.
3569 * DoYouEvenBench/flightjs-example-app/index.html: Added.
3570 * DoYouEvenBench/flightjs-example-app/karma.conf.js: Added.
3571 * DoYouEvenBench/flightjs-example-app/package.json: Added.
3572 * DoYouEvenBench/flightjs-example-app/requireMain.js: Added.
3574 2013-09-19 Ryosuke Niwa <rniwa@webkit.org>
3576 DoYouEvenBench: Indentations in benchmark.js and benchmark.html are all messed up
3577 https://bugs.webkit.org/show_bug.cgi?id=121597
3579 Reviewed by Anders Carlsson.
3583 * DoYouEvenBench/benchmark.html:
3584 * DoYouEvenBench/benchmark.js:
3585 (SimplePromise.prototype.resolve.else):
3586 (SimplePromise.prototype.resolve):
3587 (BenchmarkRunner.waitForElement.resolveIfReady):
3588 (BenchmarkRunner.waitForElement):
3589 (BenchmarkRunner._waitAndWarmUp.Fibonacci):
3590 (BenchmarkRunner._finalize):
3592 2013-09-19 Ryosuke Niwa <rniwa@webkit.org>
3594 Add an AngularJS test to DoYouEvenBench
3595 https://bugs.webkit.org/show_bug.cgi?id=121595
3597 Reviewed by Antti Koivisto.
3599 * DoYouEvenBench/benchmark.html:
3600 * DoYouEvenBench/todomvc/architecture-examples/angularjs: Added.
3601 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower.json: Added.
3602 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components: Added.
3603 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular: Added.
3604 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks: Added.
3605 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular-mocks/angular-mocks.js: Added.
3606 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/angular/angular.js: Added.
3607 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common: Added.
3608 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.css: Added.
3609 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/base.js: Added.
3610 * DoYouEvenBench/todomvc/architecture-examples/angularjs/bower_components/todomvc-common/bg.png: Added.
3611 * DoYouEvenBench/todomvc/architecture-examples/angularjs/index.html: Added.
3612 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js: Added.
3613 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/app.js: Added.
3614 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers: Added.
3615 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/controllers/todoCtrl.js: Added.
3616 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives: Added.
3617 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoBlur.js: Added.
3618 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoEscape.js: Added.
3619 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/directives/todoFocus.js: Added.
3620 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services: Added.
3621 * DoYouEvenBench/todomvc/architecture-examples/angularjs/js/services/todoStorage.js: Added.
3622 * DoYouEvenBench/todomvc/architecture-examples/angularjs/readme.md: Added.
3623 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test: Added.
3624 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config: Added.
3625 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/config/testacular.conf.js: Added.
3626 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/package.json: Added.
3627 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/readme.md: Added.
3628 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit: Added.
3629 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/directivesSpec.js: Added.
3630 * DoYouEvenBench/todomvc/architecture-examples/angularjs/test/unit/todoCtrlSpec.js: Added.
3632 2013-09-17 Ryosuke Niwa <rniwa@webkit.org>
3634 Add a not completely unrealistic DOM Benchmark
3635 https://bugs.webkit.org/show_bug.cgi?id=121361
3637 Reviewed by Filip Pizlo.
3639 Add a DOM benchmark based on TodoMVC for vanilla JS, Ember.js, Backbone.js, and jQuery.
3640 We'll add more frameworks and demo apps as we go.
3642 * DoYouEvenBench: Added.
3643 * DoYouEvenBench/benchmark.html: Added.
3644 * DoYouEvenBench/benchmark.js: Added.
3646 (SimplePromise.prototype.then):
3647 (SimplePromise.prototype.resolve.else):
3648 (SimplePromise.prototype.resolve):
3649 (BenchmarkRunner.suite):
3650 (BenchmarkRunner.waitForElement.resolveIfReady):
3651 (BenchmarkRunner.waitForElement):
3652 (BenchmarkRunner._removeFrame):
3653 (BenchmarkRunner._appendFrame):
3654 (BenchmarkRunner._waitAndWarmUp.Fibonacci):
3655 (BenchmarkRunner._testName):
3656 (BenchmarkRunner._testItemId):
3657 (BenchmarkRunner.listSuites.button.onclick):
3658 (BenchmarkRunner.listSuites.callNextStep):
3659 (BenchmarkRunner.listSuites):
3661 (BenchmarkState.prototype.currentSuite):
3662 (BenchmarkState.prototype.currentTest):
3663 (BenchmarkState.prototype.next):
3664 (BenchmarkState.prototype.isFirstTest):
3665 (BenchmarkState.prototype.prepareCurrentSuite.frame.onload):
3666 (BenchmarkRunner.step):
3667 (BenchmarkRunner._runTestAndRecordResults):
3668 (BenchmarkRunner._finalize):
3669 * DoYouEvenBench/todomvc: Added.
3670 * DoYouEvenBench/todomvc/architecture-examples: Added.
3671 * DoYouEvenBench/todomvc/architecture-examples/backbone: Added.
3672 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower.json: Added.
3673 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components: Added.
3674 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone: Added.
3675 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage: Added.
3676 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone.localStorage/backbone.localStorage.js: Added.
3677 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/backbone/backbone.js: Added.
3678 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery: Added.
3679 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/jquery/jquery.js: Added.
3680 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common: Added.
3681 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.css: Added.
3682 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/base.js: Added.
3683 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/todomvc-common/bg.png: Added.
3684 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore: Added.
3685 * DoYouEvenBench/todomvc/architecture-examples/backbone/bower_components/underscore/underscore.js: Added.
3686 * DoYouEvenBench/todomvc/architecture-examples/backbone/index.html: Added.
3687 * DoYouEvenBench/todomvc/architecture-examples/backbone/js: Added.
3688 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/app.js: Added.
3689 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections: Added.
3690 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/collections/todos.js: Added.
3691 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models: Added.
3692 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/models/todo.js: Added.
3693 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers: Added.
3694 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/routers/router.js: Added.
3695 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views: Added.
3696 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/app-view.js: Added.
3697 * DoYouEvenBench/todomvc/architecture-examples/backbone/js/views/todo-view.js: Added.
3698 * DoYouEvenBench/todomvc/architecture-examples/backbone/readme.md: Added.
3699 * DoYouEvenBench/todomvc/architecture-examples/emberjs: Added.
3700 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower.json: Added.
3701 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components: Added.
3702 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember: Added.
3703 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter: Added.
3704 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember-localstorage-adapter/localstorage_adapter.js: Added.
3705 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/ember/ember.js: Added.
3706 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars: Added.
3707 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/handlebars/handlebars.js: Added.
3708 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery: Added.
3709 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/jquery/jquery.js: Added.
3710 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common: Added.
3711 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.css: Added.
3712 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/base.js: Added.
3713 * DoYouEvenBench/todomvc/architecture-examples/emberjs/bower_components/todomvc-common/bg.png: Added.
3714 * DoYouEvenBench/todomvc/architecture-examples/emberjs/index.html: Added.
3715 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js: Added.
3716 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/app.js: Added.
3717 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers: Added.
3718 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todo_controller.js: Added.
3719 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/controllers/todos_controller.js: Added.
3720 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs: Added.
3721 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/libs/ember-data.js: Added.
3722 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models: Added.
3723 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/store.js: Added.
3724 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/models/todo.js: Added.
3725 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views: Added.
3726 * DoYouEvenBench/todomvc/architecture-examples/emberjs/js/views/edit_todo_view.js: Added.
3727 * DoYouEvenBench/todomvc/architecture-examples/emberjs/readme.md: Added.
3728 * DoYouEvenBench/todomvc/architecture-examples/emberjs/test.html: Added.
3729 * DoYouEvenBench/todomvc/architecture-examples/jquery: Added.
3730 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower.json: Added.
3731 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components: Added.
3732 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars: Added.
3733 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/handlebars/handlebars.js: Added.
3734 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery: Added.
3735 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/jquery/jquery.js: Added.
3736 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common: Added.
3737 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.css: Added.
3738 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/base.js: Added.
3739 * DoYouEvenBench/todomvc/architecture-examples/jquery/bower_components/todomvc-common/bg.png: Added.
3740 * DoYouEvenBench/todomvc/architecture-examples/jquery/css: Added.
3741 * DoYouEvenBench/todomvc/architecture-examples/jquery/css/app.css: Added.
3742 * DoYouEvenBench/todomvc/architecture-examples/jquery/index.html: Added.
3743 * DoYouEvenBench/todomvc/architecture-examples/jquery/js: Added.
3744 * DoYouEvenBench/todomvc/architecture-examples/jquery/js/app.js: Added.
3745 * DoYouEvenBench/todomvc/architecture-examples/jquery/readme.md: Added.
3746 * DoYouEvenBench/todomvc/license.md: Added.
3747 * DoYouEvenBench/todomvc/readme.md: Added.
3748 * DoYouEvenBench/todomvc/vanilla-examples: Added.
3749 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs: Added.
3750 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower.json: Added.
3751 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components: Added.
3752 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common: Added.
3753 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.css: Added.
3754 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/base.js: Added.
3755 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/bower_components/todomvc-common/bg.png: Added.
3756 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/index.html: Added.
3757 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js: Added.
3758 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/app.js: Added.
3759 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/controller.js: Added.
3760 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/helpers.js: Added.
3761 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/model.js: Added.
3762 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/store.js: Added.
3763 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/js/view.js: Added.
3764 * DoYouEvenBench/todomvc/vanilla-examples/vanillajs/readme.md: Added.
3767 2013-09-04 Filip Pizlo <fpizlo@apple.com>
3769 Introduce a version of SunSpider that runs for a really long time (about 1 sec on my machine)
3771 Rubber stamped by Mark Hahnenberg.
3773 This isn't meant for serious VM-to-VM performance comparisons, but it is useful
3774 to see how these benchmarks behave when they're completely warmed up.
3776 * LongSpider: Added.
3777 * LongSpider/3d-cube.js: Added.
3793 * LongSpider/3d-morph.js: Added.
3794 (loops.3500.nx.120.nz.120.morph):
3795 * LongSpider/3d-raytrace.js: Added.