e0a7057fb44ca6c7926f68385046cbb2134adb9e
[WebKit-https.git] / PerformanceTests / DoYouEvenBench / Full.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>DoYouEvenBench v0.13</title>
5 <style type="text/css">
6 caption { margin: 0; padding: 0; font-family: sans-serif; font-size: 1em; font-weight: bold; white-space: nowrap; }
7 #progressContainer { padding: 605px 0 10px 0; width: 800px; }
8 #progressContainer div { background-color: #ccc; width: 0; height: 5px; overflow: hidden; }
9 table { font-family: sans-serif; }
10 table, td, th { border: solid 1px #ccc; border-collapse: collapse; padding: 5px; }
11 th { text-align: right; }
12 td { text-align: left; }
13 </style>
14 <script>
15
16 (function () {
17     var values = [];
18     var resultContainer = null;
19     var title;
20     var progressContainer;
21     var progress;
22     var iterationNumber = 0;
23     var finishedTestCount = 0;
24
25     function addResult(title, value) {
26         if (!resultContainer) {
27             resultContainer = document.createElement('table');
28             var caption = document.createElement('caption');
29             caption.textContent = document.title;
30             resultContainer.appendChild(caption);
31             document.body.appendChild(resultContainer);
32         }
33         if (!title)
34             return;
35         var row = document.createElement('tr');
36         var th = document.createElement('th');
37         th.textContent = title;
38         var td = document.createElement('td');
39         td.textContent = value;
40         row.appendChild(th);
41         row.appendChild(td);
42         resultContainer.appendChild(row);
43     }
44
45     window.benchmarkClient = {
46         iterationCount: 20,
47         willRunTest: function () {
48             if (!progress) {
49                 // We don't use the real progress element as some implementations animate it.
50                 progressContainer = document.createElement('div');
51                 progressContainer.appendChild(document.createElement('div'));
52                 progressContainer.id = 'progressContainer';
53                 document.body.appendChild(progressContainer);
54                 progress = progressContainer.firstChild;
55             }
56             addResult();
57         },
58         didRunTest: function () {
59             finishedTestCount++;
60             progress.style.width = (finishedTestCount * 100 / this.testsCount) + '%';
61         },
62         didRunSuites: function (measuredValues) {
63             values.push(measuredValues.total);
64             iterationNumber++;
65             addResult('Iteration ' + iterationNumber, measuredValues.total.toFixed(2) + ' ms');
66         },
67         didFinishLastIteration: function () {
68             var sum = values.reduce(function (a, b) { return a + b; }, 0);
69             var arithmeticMean = sum / values.length;
70             var meanLabel = arithmeticMean.toFixed(2) + ' ms';
71             if (window.Statistics) {
72                 var delta = Statistics.confidenceIntervalDelta(0.95, values.length, sum, Statistics.squareSum(values));
73                 var precentDelta = delta * 100 / arithmeticMean;
74                 meanLabel += ' \xb1 ' + delta.toFixed(2) + ' ms (' + precentDelta.toFixed(2) + '%)';
75             }
76             addResult('Arithmetic Mean', meanLabel);
77             progressContainer.parentNode.removeChild(progressContainer);
78         }
79     }
80 })();
81
82 function startTest() {
83     var totalSubtestCount = Suites.reduce(function (testsCount, suite) { return testsCount + suite.tests.length; }, 0);
84     benchmarkClient.testsCount = benchmarkClient.iterationCount * totalSubtestCount;
85     var runner = new BenchmarkRunner(Suites, benchmarkClient);
86     runner.runMultipleIterations(benchmarkClient.iterationCount);
87 }
88
89 </script>
90 <script src="resources/benchmark-runner.js"></script>
91 <script src="resources/benchmark-report.js"></script>
92 <script src="../resources/statistics.js"></script>
93 <script src="resources/tests.js"></script>
94 </head>
95 <body onload="startTest()">
96 </body>
97 </html>