StyleBench: Generate more mutation steps
authorantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 30 Jan 2018 22:08:11 +0000 (22:08 +0000)
committerantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 30 Jan 2018 22:08:11 +0000 (22:08 +0000)
https://bugs.webkit.org/show_bug.cgi?id=182291

Reviewed by Ryosuke Niwa.

The test should be doing multiple rounds of mutations in a single document to test what is supposed to test (like it did before r227756).
This also makes test results more stable and less dependent on possible first-time costs.

* StyleBench/resources/benchmark-runner.js:

Adjust correctionFactor to match the new steps count. With 1.5 Firefox is ~72rpm.

* StyleBench/resources/tests.js:
(makeSteps):

Generate 10 rounds of class/element mutation steps.
Give each generated step unique name so reporting works.
Make individual steps do fewer mutations.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@227850 268f45cc-cd09-0410-ab3c-d52691b4dbfc

PerformanceTests/ChangeLog
PerformanceTests/StyleBench/resources/benchmark-runner.js
PerformanceTests/StyleBench/resources/tests.js

index 7d070c5..3170c27 100644 (file)
@@ -1,3 +1,24 @@
+2018-01-30  Antti Koivisto  <antti@apple.com>
+
+        StyleBench: Generate more mutation steps
+        https://bugs.webkit.org/show_bug.cgi?id=182291
+
+        Reviewed by Ryosuke Niwa.
+
+        The test should be doing multiple rounds of mutations in a single document to test what is supposed to test (like it did before r227756).
+        This also makes test results more stable and less dependent on possible first-time costs.
+
+        * StyleBench/resources/benchmark-runner.js:
+
+        Adjust correctionFactor to match the new steps count. With 1.5 Firefox is ~72rpm.
+
+        * StyleBench/resources/tests.js:
+        (makeSteps):
+
+        Generate 10 rounds of class/element mutation steps.
+        Give each generated step unique name so reporting works.
+        Make individual steps do fewer mutations.
+
 2018-01-29  Antti Koivisto  <antti@apple.com>
 
         StyleBench: Remove : from a test name
index e578590..a248182 100644 (file)
@@ -286,7 +286,7 @@ BenchmarkRunner.prototype._finalize = function () {
         var total = values.reduce(function (a, b) { return a + b });
         var geomean = Math.pow(product, 1 / values.length);
 
-        var correctionFactor = 8; // This factor makes the test score look reasonably fit within 0 to 140.
+        var correctionFactor = 1.5; // This factor makes the test score look reasonably fit within 0 to 140.
         this._measuredValues.total = total;
         this._measuredValues.mean = total / values.length;
         this._measuredValues.geomean = geomean;
index 817e305..45e8c53 100644 (file)
@@ -1,18 +1,20 @@
 function makeSteps(count)
 {
     const steps = [];
-    steps.push(new BenchmarkTestStep('Adding classes', (bench, contentWindow, contentDocument) => {
-        bench.addClasses(100);
-    }));
-    steps.push(new BenchmarkTestStep('Removing classes', (bench, contentWindow, contentDocument) => {
-        bench.removeClasses(100);
-    }));
-    steps.push(new BenchmarkTestStep('Adding leaf elements', (bench, contentWindow, contentDocument) => {
-        bench.addLeafElements(100);
-    }));
-    steps.push(new BenchmarkTestStep('Removing leaf elements', (bench, contentWindow, contentDocument) => {
-        bench.removeLeafElements(100);
-    }));
+    for (i = 1; i <= count; ++i) {
+        steps.push(new BenchmarkTestStep(`Adding classes - ${i}`, (bench, contentWindow, contentDocument) => {
+            bench.addClasses(25);
+        }));
+        steps.push(new BenchmarkTestStep(`Removing classes - ${i}`, (bench, contentWindow, contentDocument) => {
+            bench.removeClasses(25);
+        }));
+        steps.push(new BenchmarkTestStep(`Adding leaf elements - ${i}`, (bench, contentWindow, contentDocument) => {
+            bench.addLeafElements(25);
+        }));
+        steps.push(new BenchmarkTestStep(`Removing leaf elements - ${i}`, (bench, contentWindow, contentDocument) => {
+            bench.removeLeafElements(25);
+        }));
+    }
     return steps;
 }
 
@@ -26,7 +28,7 @@ function makeSuite(configuration)
                 return contentWindow.createBenchmark(configuration);
             });
         },
-        tests: makeSteps(),
+        tests: makeSteps(10),
     };
 }