Benchmark - Fill Array With Zeros
by basickarl
HTML
<script src="https://cdn.jsdelivr.net/firebuglite/1.4.0/firebug-lite-debug.js"></script>
<script src="https://cdn.jsdelivr.net/g/lodash@4.13.1,platform.js@1.3.1,benchmarkjs@2.1.1"></script>
JavaScript
'use strict';
(function() {
// add your functions here
function fill(size, content) {
for (; size--; this.push(content));
return this;
}
function makeRec(len, acc) {
if (acc == null) acc = [];
if (len <= 1) return acc;
var b = makeRec(len >> 1, [0]);
b = b.concat(b);
if (len & 1) b = b.concat([0]);
return b;
}
function filledArray(len, value) {
if (len <= 0) return [];
var result = [value];
while (result.length < len / 2) {
result = result.concat(result);
}
return result.concat(result.slice(0, len - result.length));
}
function newFilledArray(len, val) {
var a = [];
while (len--) {
a.push(val);
}
return a;
}
function emptyArr(n, v) {
var arr = [];
for (var i = 0; i < n; i += 1) {
arr[i] = v;
}
return arr;
}
// add the actual tests here, suite index, name, function
function yourTests() {
console.log('new Array(10000).fill(0);', (new Array(10000).fill(0)).length);
addTest(0, 'new Array(10000).fill(0);', function() {
new Array(10000).fill(0);
});
console.log('fill.call([], 10000, 0);', fill.call([], 10000, 0).length);
addTest(0, 'fill.call([], 10000, 0);', function() {
fill.call([], 10000, 0);
});
console.log('Array.apply(null, Array(10000)).map(Number.prototype.valueOf,0);', Array.apply(null, Array(10000)).map(Number.prototype.valueOf, 0).length);
addTest(0, 'Array.apply(null, Array(10000)).map(Number.prototype.valueOf,0);', function() {
Array.apply(null, Array(10000)).map(Number.prototype.valueOf, 0);
});
console.log('new Array(10000+1).join(\'0\').split(\'\').map(parseFloat);', new Array(10000 + 1).join('0').split('').map(parseFloat).length);
addTest(0, 'new Array(10000+1).join(\'0\').split(\'\').map(parseFloat);', function() {
new Array(10000 + 1).join('0').split('').map(parseFloat);
});
console.log('[].slice.apply(new Uint8Array(10000));',...