diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:41 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:41 -0800 |
commit | 648161bb0edfc3d43db63caed5cc5213bc6cb78f (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /SunSpider/resources | |
parent | a65af38181ac7d34544586bdb5cd004de93897ad (diff) | |
download | external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.zip external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.gz external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'SunSpider/resources')
-rw-r--r-- | SunSpider/resources/TEMPLATE.html | 50 | ||||
-rw-r--r-- | SunSpider/resources/sunspider-analyze-results.js | 268 | ||||
-rw-r--r-- | SunSpider/resources/sunspider-compare-results.js | 380 | ||||
-rw-r--r-- | SunSpider/resources/sunspider-standalone-compare.js | 26 | ||||
-rw-r--r-- | SunSpider/resources/sunspider-standalone-driver.js | 53 |
5 files changed, 0 insertions, 777 deletions
diff --git a/SunSpider/resources/TEMPLATE.html b/SunSpider/resources/TEMPLATE.html deleted file mode 100644 index 926150d..0000000 --- a/SunSpider/resources/TEMPLATE.html +++ /dev/null @@ -1,50 +0,0 @@ -<!DOCTYPE html> -<head> -<!-- - Copyright (C) 2007 Apple Inc. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---> - -<title>SunSpider @NAME@</title> -<link rel="stylesheet" href="sunspider.css"></link> -</head> - -<body> -<h3>@NAME@</h3> -<div id="console"> -</div> -<script src="sunspider-record-result.js"></script> -<script> - -var _sunSpiderStartDate = new Date(); - -@SCRIPT@ - -var _sunSpiderInterval = new Date() - _sunSpiderStartDate; - -record(_sunSpiderInterval); -</script> - - -</body> -</html> diff --git a/SunSpider/resources/sunspider-analyze-results.js b/SunSpider/resources/sunspider-analyze-results.js deleted file mode 100644 index d849f59..0000000 --- a/SunSpider/resources/sunspider-analyze-results.js +++ /dev/null @@ -1,268 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -var count = output.length; - -var itemTotals = {}; -itemTotals.length = count; - -var total = 0; -var categoryTotals = {}; -var testTotalsByCategory = {}; - -var mean = 0; -var categoryMeans = {}; -var testMeansByCategory = {}; - -var stdDev = 0; -var categoryStdDevs = {}; -var testStdDevsByCategory = {}; - -var stdErr = 0; -var categoryStdErrs = {}; -var testStdErrsByCategory = {}; - -function initialize() -{ - itemTotals = {total: []}; - - for (var i = 0; i < categories.length; i++) { - var category = categories[i]; - itemTotals[category] = []; - categoryTotals[category] = 0; - testTotalsByCategory[category] = {}; - categoryMeans[category] = 0; - testMeansByCategory[category] = {}; - categoryStdDevs[category] = 0; - testStdDevsByCategory[category] = {}; - categoryStdErrs[category] = 0; - testStdErrsByCategory[category] = {}; - } - - for (var i = 0; i < tests.length; i++) { - var test = tests[i]; - itemTotals[test] = []; - var category = test.replace(/-.*/, ""); - testTotalsByCategory[category][test] = 0; - testMeansByCategory[category][test] = 0; - testStdDevsByCategory[category][test] = 0; - testStdErrsByCategory[category][test] = 0; - } - - for (var i = 0; i < count; i++) { - itemTotals["total"][i] = 0; - for (var category in categoryTotals) { - itemTotals[category][i] = 0; - for (var test in testTotalsByCategory[category]) { - itemTotals[test][i] = 0; - } - } - } -} - -function computeItemTotals() -{ - for (var i = 0; i < output.length; i++) { - var result = output[i]; - for (var test in result) { - var time = result[test]; - var category = test.replace(/-.*/, ""); - itemTotals["total"][i] += time; - itemTotals[category][i] += time; - itemTotals[test][i] += time; - } - } -} - -function computeTotals() -{ - for (var i = 0; i < output.length; i++) { - var result = output[i]; - for (var test in result) { - var time = result[test]; - var category = test.replace(/-.*/, ""); - total += time; - categoryTotals[category] += time; - testTotalsByCategory[category][test] += time; - } - } -} - -function computeMeans() -{ - mean = total / count; - for (var category in categoryTotals) { - categoryMeans[category] = categoryTotals[category] / count; - for (var test in testTotalsByCategory[category]) { - testMeansByCategory[category][test] = testTotalsByCategory[category][test] / count; - } - } -} - -function standardDeviation(mean, items) -{ - var deltaSquaredSum = 0; - for (var i = 0; i < items.length; i++) { - var delta = items[i] - mean; - deltaSquaredSum += delta * delta; - } - variance = deltaSquaredSum / (items.length - 1); - return Math.sqrt(variance); -} - -function computeStdDevs() -{ - stdDev = standardDeviation(mean, itemTotals["total"]); - for (var category in categoryStdDevs) { - categoryStdDevs[category] = standardDeviation(categoryMeans[category], itemTotals[category]); - } - for (var category in categoryStdDevs) { - for (var test in testStdDevsByCategory[category]) { - testStdDevsByCategory[category][test] = standardDeviation(testMeansByCategory[category][test], itemTotals[test]); - } - } -} - -function computeStdErrors() -{ - var sqrtCount = Math.sqrt(count); - - stdErr = stdDev / sqrtCount; - for (var category in categoryStdErrs) { - categoryStdErrs[category] = categoryStdDevs[category] / sqrtCount; - } - for (var category in categoryStdDevs) { - for (var test in testStdErrsByCategory[category]) { - testStdErrsByCategory[category][test] = testStdDevsByCategory[category][test] / sqrtCount; - } - } - -} - -var tDistribution = [NaN, NaN, 12.71, 4.30, 3.18, 2.78, 2.57, 2.45, 2.36, 2.31, 2.26, 2.23, 2.20, 2.18, 2.16, 2.14, 2.13, 2.12, 2.11, 2.10, 2.09, 2.09, 2.08, 2.07, 2.07, 2.06, 2.06, 2.06, 2.05, 2.05, 2.05, 2.04, 2.04, 2.04, 2.03, 2.03, 2.03, 2.03, 2.03, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.96]; -var tMax = tDistribution.length; -var tLimit = 1.96; - -function tDist(n) -{ - if (n > tMax) - return tLimit; - return tDistribution[n]; -} - - -function formatResult(meanWidth, mean, stdErr, n) -{ - var meanString = mean.toFixed(1).toString(); - while (meanString.length < meanWidth) { - meanString = " " + meanString; - } - - if (n == 1) - return meanString + "ms"; - - return meanString + "ms +/- " + ((tDist(n) * stdErr / mean) * 100).toFixed(1) + "%"; -} - -function computeLabelWidth() -{ - var width = "Total".length; - for (var category in categoryMeans) { - if (category.length + 2 > width) - width = category.length + 2; - } - for (var i = 0; i < tests.length; i++) { - var shortName = tests[i].replace(/^[^-]*-/, ""); - if (shortName.length + 4 > width) - width = shortName.length + 4; - } - - return width; -} - -function computeMeanWidth() -{ - var width = mean.toFixed(1).toString().length; - for (var category in categoryMeans) { - var candidate = categoryMeans[category].toFixed(2).toString().length; - if (candidate > width) - width = candidate; - for (var test in testMeansByCategory[category]) { - var candidate = testMeansByCategory[category][test].toFixed(2).toString().length; - if (candidate > width) - width = candidate; - } - } - - return width; -} - -function resultLine(labelWidth, indent, label, meanWidth, mean, stdErr) -{ - var result = ""; - for (i = 0; i < indent; i++) { - result += " "; - } - - result += label + ": "; - - for (i = 0; i < (labelWidth - (label.length + indent)); i++) { - result += " "; - } - - return result + formatResult(meanWidth, mean, stdErr, count); -} - -function printOutput() -{ - var labelWidth = computeLabelWidth(); - var meanWidth = computeMeanWidth(); - - print("\n"); - print("============================================"); - if (count == 1) - print("RESULTS"); - else - print("RESULTS (means and 95% confidence intervals)"); - print("--------------------------------------------"); - print(resultLine(labelWidth, 0, "Total", meanWidth, mean, stdErr)); - print("--------------------------------------------"); - for (var category in categoryMeans) { - print(""); - print(resultLine(labelWidth, 2, category, meanWidth, categoryMeans[category], categoryStdErrs[category])); - for (var test in testMeansByCategory[category]) { - var shortName = test.replace(/^[^-]*-/, ""); - print(resultLine(labelWidth, 4, shortName, meanWidth, testMeansByCategory[category][test], testStdErrsByCategory[category][test])); - } - } -} - -initialize(); -computeItemTotals(); -computeTotals(); -computeMeans(); -computeStdDevs(); -computeStdErrors(); -printOutput(); diff --git a/SunSpider/resources/sunspider-compare-results.js b/SunSpider/resources/sunspider-compare-results.js deleted file mode 100644 index 887b8db..0000000 --- a/SunSpider/resources/sunspider-compare-results.js +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -function sunspiderCompareResults(output1, output2) -{ - var count1 = output1.length; - var count2 = output2.length; - - var itemTotals1 = {}; - itemTotals1.length = count1; - - var total1 = 0; - var categoryTotals1 = {}; - var testTotalsByCategory1 = {}; - - var mean1 = 0; - var categoryMeans1 = {}; - var testMeansByCategory1 = {}; - - var stdDev1 = 0; - var categoryStdDevs1 = {}; - var testStdDevsByCategory1 = {}; - - var stdErr1 = 0; - var categoryStdErrs1 = {}; - var testStdErrsByCategory1 = {}; - - var itemTotals2 = {}; - itemTotals2.length = count2; - - var total2 = 0; - var categoryTotals2 = {}; - var testTotalsByCategory2 = {}; - - var mean2 = 0; - var categoryMeans2 = {}; - var testMeansByCategory2 = {}; - - var stdDev2 = 0; - var categoryStdDevs2 = {}; - var testStdDevsByCategory2 = {}; - - var stdErr2 = 0; - var categoryStdErrs2 = {}; - var testStdErrsByCategory2 = {}; - - function initialize() - { - itemTotals1 = {total: []}; - - for (var i = 0; i < categories.length; i++) { - var category = categories[i]; - itemTotals1[category] = []; - categoryTotals1[category] = 0; - testTotalsByCategory1[category] = {}; - categoryMeans1[category] = 0; - testMeansByCategory1[category] = {}; - categoryStdDevs1[category] = 0; - testStdDevsByCategory1[category] = {}; - categoryStdErrs1[category] = 0; - testStdErrsByCategory1[category] = {}; - } - - for (var i = 0; i < tests.length; i++) { - var test = tests[i]; - itemTotals1[test] = []; - var category = test.replace(/-.*/, ""); - testTotalsByCategory1[category][test] = 0; - testMeansByCategory1[category][test] = 0; - testStdDevsByCategory1[category][test] = 0; - testStdErrsByCategory1[category][test] = 0; - } - - for (var i = 0; i < count1; i++) { - itemTotals1["total"][i] = 0; - for (var category in categoryTotals1) { - itemTotals1[category][i] = 0; - for (var test in testTotalsByCategory1[category]) { - itemTotals1[test][i] = 0; - } - } - } - - itemTotals2 = {total: []}; - - for (var i = 0; i < categories.length; i++) { - var category = categories[i]; - itemTotals2[category] = []; - categoryTotals2[category] = 0; - testTotalsByCategory2[category] = {}; - categoryMeans2[category] = 0; - testMeansByCategory2[category] = {}; - categoryStdDevs2[category] = 0; - testStdDevsByCategory2[category] = {}; - categoryStdErrs2[category] = 0; - testStdErrsByCategory2[category] = {}; - } - - for (var i = 0; i < tests.length; i++) { - var test = tests[i]; - itemTotals2[test] = []; - var category = test.replace(/-.*/, ""); - testTotalsByCategory2[category][test] = 0; - testMeansByCategory2[category][test] = 0; - testStdDevsByCategory2[category][test] = 0; - testStdErrsByCategory2[category][test] = 0; - } - - for (var i = 0; i < count2; i++) { - itemTotals2["total"][i] = 0; - for (var category in categoryTotals2) { - itemTotals2[category][i] = 0; - for (var test in testTotalsByCategory2[category]) { - itemTotals2[test][i] = 0; - } - } - } - - } - - function computeItemTotals(output, itemTotals) - { - for (var i = 0; i < output.length; i++) { - var result = output[i]; - for (var test in result) { - var time = result[test]; - var category = test.replace(/-.*/, ""); - itemTotals["total"][i] += time; - itemTotals[category][i] += time; - itemTotals[test][i] += time; - } - } - } - - function computeTotals(output, categoryTotals, testTotalsByCategory) - { - var total = 0; - - for (var i = 0; i < output.length; i++) { - var result = output[i]; - for (var test in result) { - var time = result[test]; - var category = test.replace(/-.*/, ""); - total += time; - categoryTotals[category] += time; - testTotalsByCategory[category][test] += time; - } - } - - return total; - } - - function computeMeans(count, total, categoryTotals, categoryMeans, testTotalsByCategory, testMeansByCategory) - { - var mean = total / count; - for (var category in categoryTotals) { - categoryMeans[category] = categoryTotals[category] / count; - for (var test in testTotalsByCategory[category]) { - testMeansByCategory[category][test] = testTotalsByCategory[category][test] / count; - } - } - return mean; - } - - function standardDeviation(mean, items) - { - var deltaSquaredSum = 0; - for (var i = 0; i < items.length; i++) { - var delta = items[i] - mean; - deltaSquaredSum += delta * delta; - } - variance = deltaSquaredSum / (items.length - 1); - return Math.sqrt(variance); - } - - function computeStdDevs(mean, itemTotals, categoryStdDevs, categoryMeans, testStdDevsByCategory, testMeansByCategory) - { - var stdDev = standardDeviation(mean, itemTotals["total"]); - for (var category in categoryStdDevs) { - categoryStdDevs[category] = standardDeviation(categoryMeans[category], itemTotals[category]); - } - for (var category in categoryStdDevs) { - for (var test in testStdDevsByCategory[category]) { - testStdDevsByCategory[category][test] = standardDeviation(testMeansByCategory[category][test], itemTotals[test]); - } - } - return stdDev; - } - - function computeStdErrors(count, stdDev, categoryStdErrs, categoryStdDevs, testStdErrsByCategory, testStdDevsByCategory) - { - var sqrtCount = Math.sqrt(count); - - var stdErr = stdDev / sqrtCount; - for (var category in categoryStdErrs) { - categoryStdErrs[category] = categoryStdDevs[category] / sqrtCount; - } - for (var category in categoryStdDevs) { - for (var test in testStdErrsByCategory[category]) { - testStdErrsByCategory[category][test] = testStdDevsByCategory[category][test] / sqrtCount; - } - } - - return stdErr; - } - - var tDistribution = [NaN, NaN, 12.71, 4.30, 3.18, 2.78, 2.57, 2.45, 2.36, 2.31, 2.26, 2.23, 2.20, 2.18, 2.16, 2.14, 2.13, 2.12, 2.11, 2.10, 2.09, 2.09, 2.08, 2.07, 2.07, 2.06, 2.06, 2.06, 2.05, 2.05, 2.05, 2.04, 2.04, 2.04, 2.03, 2.03, 2.03, 2.03, 2.03, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.96]; - var tMax = tDistribution.length; - var tLimit = 1.96; - - function tDist(n) - { - if (n > tMax) - return tLimit; - return tDistribution[n]; - } - - - function formatMean(meanWidth, mean, stdErr, count) - { - var meanString = mean.toFixed(1).toString(); - while (meanString.length < meanWidth) { - meanString = " " + meanString; - } - - var error = "+/- " + ((tDist(count) * stdErr / mean) * 100).toFixed(1) + "% "; - - return meanString + "ms " + error; - } - - function computeLabelWidth() - { - var width = "Total".length; - for (var category in categoryMeans1) { - if (category.length + 2 > width) - width = category.length + 2; - } - for (var i = 0; i < tests.length; i++) { - var shortName = tests[i].replace(/^[^-]*-/, ""); - if (shortName.length + 4 > width) - width = shortName.length + 4; - } - - return width; - } - - function computeMeanWidth(mean, categoryMeans, testMeansByCategory) - { - var width = mean.toFixed(1).toString().length; - for (var category in categoryMeans) { - var candidate = categoryMeans[category].toFixed(1).toString().length; - if (candidate > width) - width = candidate; - for (var test in testMeansByCategory[category]) { - var candidate = testMeansByCategory[category][test].toFixed(1).toString().length; - if (candidate > width) - width = candidate; - } - } - - return width; - } - - function pad(str, n) - { - while (str.length < n) { - str += " "; - } - return str; - } - - function resultLine(labelWidth, indent, label, meanWidth1, mean1, stdErr1, meanWidth2, mean2, stdErr2) - { - result = pad("", indent); - result += label + ": "; - result = pad(result, labelWidth + 2); - - var t = (mean1 - mean2) / (Math.sqrt((stdErr1 * stdErr1) + (stdErr1 * stdErr2))); - var df = count1 + count2 - 2; - - var statisticallySignificant = (Math.abs(t) > tDist(df+1)); - var diff = mean2 - mean1; - var percentage = 100 * diff / mean1; - var isFaster = diff < 0; - var probablySame = (percentage < 0.1) && !statisticallySignificant; - var ratio = isFaster ? (mean1 / mean2) : (mean2 / mean1); - var fixedRatio = (ratio < 1.2) ? ratio.toFixed(3).toString() : ((ratio < 10) ? ratio.toFixed(2).toString() : ratio.toFixed(1).toString()); - var formattedRatio = isFaster ? fixedRatio + "x as fast" : "*" + fixedRatio + "x as slow*"; - - var diffSummary; - var diffDetail; - - if (probablySame) { - diffSummary = "-"; - diffDetail = ""; - } else if (!statisticallySignificant) { - diffSummary = "??"; - diffDetail = " not conclusive: might be " + formattedRatio; - } else { - diffSummary = formattedRatio; - diffDetail = " significant"; - } - - return result + pad(diffSummary, 18) + formatMean(meanWidth1, mean1, stdErr1, count1) + " " + formatMean(meanWidth2, mean2, stdErr2, count2) + diffDetail; - } - - function printOutput() - { - var labelWidth = computeLabelWidth(); - var meanWidth1 = computeMeanWidth(mean1, categoryMeans1, testMeansByCategory1); - var meanWidth2 = computeMeanWidth(mean2, categoryMeans2, testMeansByCategory2); - - print("\n"); - var header = "TEST"; - while (header.length < labelWidth) - header += " "; - header += " COMPARISON FROM TO DETAILS"; - print(header); - print(""); - print("============================================================================="); - print(""); - print(resultLine(labelWidth, 0, "** TOTAL **", meanWidth1, mean1, stdErr1, meanWidth2, mean2, stdErr2)); - print(""); - print("============================================================================="); - - for (var category in categoryMeans1) { - print(""); - print(resultLine(labelWidth, 2, category, - meanWidth1, categoryMeans1[category], categoryStdErrs1[category], - meanWidth2, categoryMeans2[category], categoryStdErrs2[category])); - for (var test in testMeansByCategory1[category]) { - var shortName = test.replace(/^[^-]*-/, ""); - print(resultLine(labelWidth, 4, shortName, - meanWidth1, testMeansByCategory1[category][test], testStdErrsByCategory1[category][test], - meanWidth2, testMeansByCategory2[category][test], testStdErrsByCategory2[category][test])); - } - } - } - - initialize(); - - computeItemTotals(output1, itemTotals1); - computeItemTotals(output2, itemTotals2); - - total1 = computeTotals(output1, categoryTotals1, testTotalsByCategory1); - total2 = computeTotals(output2, categoryTotals2, testTotalsByCategory2); - - mean1 = computeMeans(count1, total1, categoryTotals1, categoryMeans1, testTotalsByCategory1, testMeansByCategory1); - mean2 = computeMeans(count2, total2, categoryTotals2, categoryMeans2, testTotalsByCategory2, testMeansByCategory2); - - stdDev1 = computeStdDevs(mean1, itemTotals1, categoryStdDevs1, categoryMeans1, testStdDevsByCategory1, testMeansByCategory1); - stdDev2 = computeStdDevs(mean2, itemTotals2, categoryStdDevs2, categoryMeans2, testStdDevsByCategory2, testMeansByCategory2); - - stdErr1 = computeStdErrors(count1, stdDev1, categoryStdErrs1, categoryStdDevs1, testStdErrsByCategory1, testStdDevsByCategory1); - stdErr2 = computeStdErrors(count2, stdDev2, categoryStdErrs2, categoryStdDevs2, testStdErrsByCategory2, testStdDevsByCategory2); - - printOutput(); -} diff --git a/SunSpider/resources/sunspider-standalone-compare.js b/SunSpider/resources/sunspider-standalone-compare.js deleted file mode 100644 index e82c155..0000000 --- a/SunSpider/resources/sunspider-standalone-compare.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -sunspiderCompareResults(output1, output2); diff --git a/SunSpider/resources/sunspider-standalone-driver.js b/SunSpider/resources/sunspider-standalone-driver.js deleted file mode 100644 index 22aeb61..0000000 --- a/SunSpider/resources/sunspider-standalone-driver.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -var results = new Array(); - -var time = 0; -var times = []; -times.length = tests.length; - -for (var j = 0; j < tests.length; j++) { - var testName = "tests/" + tests[j] + ".js"; - var startTime = new Date; - load(testName); - times[j] = new Date() - startTime; - gc(); -} - -function recordResults(tests, times) -{ - var output = "{\n"; - - for (j = 0; j < tests.length; j++) { - output += ' "' + tests[j] + '": ' + times[j] + ',\n'; - } - output = output.substring(0, output.length - 2) + "\n"; - - output += "}"; - print(output); -} - -recordResults(tests, times); |