📄 sunspider-compare-results.js
字号:
/* * 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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -