var emptyArray = []; var denseArray = [1, 2, 3, 4]; var sparseArray = [1,,2,,3,,4]; var bigArray = new Array(); for (var i = 0; i < 128; i++) {
bigArray.push(i);
} var nonArray = {0:1, 1:2, 2:3, 3:4, length:2}; var indexedGetterArray = new Array();
Object.defineProperty(indexedGetterArray, '2', {get:function () { return 51; }});
var ARRAYS = [emptyArray, denseArray, sparseArray, bigArray, nonArray, indexedGetterArray];
var targetFun = function (a, b, c, d) { if (a === undefined)
a = 0; if (b === undefined)
b = 0; if (c === undefined)
c = 0; if (d === undefined)
d = 0; this.count += arguments.length + a + b + c + d;
}
var callerNo = 0; function generateCaller() { var fn;
// Salt eval-string with callerNo to make sure eval caching doesn't take effect. var s = "function caller" + callerNo + "(fn, thisObj, arrays) {" + " for (var i = 0; i < arrays.length; i++) {" + " fn.apply(thisObj, arrays[i]);" + " }" + "}" + "fn = caller" + callerNo + ";";
eval(s); return fn;
};
function main() { for (var i = 0; i < PERMUTATIONS; i++) { var obj = {count:0}; var arrs = arrayPermutation(i); var fn = generateCaller(arrs.length); // Loop 20 times so baseline compiler has chance to kick in and compile the scripts. for (var j = 0; j < 20; j++)
fn(targetFun, obj, arrs);
assertEq(obj.count, EXPECTED_RESULTS[i]);
}
}
main();
Messung V0.5
¤ Dauer der Verarbeitung: 0.26 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.