Speedometer 2.0: Make it possible to change the iteration count via query string
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 Aug 2017 21:00:49 +0000 (21:00 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 Aug 2017 21:00:49 +0000 (21:00 +0000)
https://bugs.webkit.org/show_bug.cgi?id=175811

Reviewed by Saam Barati.

Added the support for specifying the iteration count by "iterationCount" query parameter, and replaced "ms"
query parameter by "unit=ms".

Finally, reduced the number of iterations from 20 to 10 to reduce the time needed to run the benchmark
since Speedometer 2.0 contains more than twice the number of libraries and frameworks than Speedometer 1.0.

* Speedometer/resources/main.js:
(window.benchmarkClient.didFinishLastIteration):
(startBenchmark):

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

PerformanceTests/ChangeLog
PerformanceTests/Speedometer/resources/main.js

index c39fa2e..a44e6c7 100644 (file)
@@ -1,3 +1,20 @@
+2017-08-22  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Speedometer 2.0: Make it possible to change the iteration count via query string
+        https://bugs.webkit.org/show_bug.cgi?id=175811
+
+        Reviewed by Saam Barati.
+
+        Added the support for specifying the iteration count by "iterationCount" query parameter, and replaced "ms"
+        query parameter by "unit=ms".
+
+        Finally, reduced the number of iterations from 20 to 10 to reduce the time needed to run the benchmark
+        since Speedometer 2.0 contains more than twice the number of libraries and frameworks than Speedometer 1.0.
+
+        * Speedometer/resources/main.js:
+        (window.benchmarkClient.didFinishLastIteration):
+        (startBenchmark):
+
 2017-08-22  Mathias Bynens  <mathias@qiwi.be>
 
         Speedometer: Add missing stylesheet to Angular example
index c107f27..e38e397 100644 (file)
@@ -1,5 +1,6 @@
 window.benchmarkClient = {
-    iterationCount: 20,
+    displayUnit: 'runs/min',
+    iterationCount: 10,
     testsCount: null,
     suitesCount: null,
     _timeValues: [],
@@ -30,8 +31,7 @@ window.benchmarkClient = {
     didFinishLastIteration: function () {
         document.getElementById('logo-link').onclick = null;
 
-        var displayUnit = location.search == '?ms' || location.hash == '#ms' ? 'ms' : 'runs/min';
-        var results = this._computeResults(this._timeValues, displayUnit);
+        var results = this._computeResults(this._timeValues, this.displayUnit);
 
         this._updateGaugeNeedle(results.mean);
         document.getElementById('result-number').textContent = results.formattedMean;
@@ -41,7 +41,7 @@ window.benchmarkClient = {
         this._populateDetailedResults(results.formattedValues);
         document.getElementById('results-with-statistics').textContent = results.formattedMeanAndDelta;
 
-        if (displayUnit == 'ms') {
+        if (this.displayUnit == 'ms') {
             document.getElementById('show-summary').style.display = 'none';
             showResultDetails();
         } else
@@ -150,6 +150,30 @@ window.benchmarkClient = {
 }
 
 function startBenchmark() {
+    if (location.search.length > 1) {
+        var parts = location.search.substring(1).split('&');
+        for (var i = 0; i < parts.length; i++) {
+            var keyValue = parts[i].split('=');
+            var key = keyValue[0];
+            var value = keyValue[1];
+            switch (key) {
+            case 'unit':
+                if (value == 'ms')
+                    benchmarkClient.displayUnit = 'ms';
+                else
+                    console.error('Invalid unit: ' + value);
+                break;
+            case 'iterationCount':
+                var parsedValue = parseInt(value);
+                if (!isNaN(value))
+                    benchmarkClient.iterationCount = parsedValue;
+                else
+                    console.error('Invalid iteration count: ' + value);
+                break;
+            }
+        }
+    }
+
     var enabledSuites = Suites.filter(function (suite) { return !suite.disabled });
     var totalSubtestCount = enabledSuites.reduce(function (testsCount, suite) { return testsCount + suite.tests.length; }, 0);
     benchmarkClient.testsCount = benchmarkClient.iterationCount * totalSubtestCount;