Initialize array (v27)

Revision 27 of this benchmark created on


Description

Fastest way to initialize an array when you know the length and values.

Setup

var len = 10000;

Test runner

Ready to run.

Testing in
TestOps/sec
Loop
var arr = [];

for (i = 0; i < len; i += 1) {
  arr.push(0);
}
ready
Join + split
var arr = new Array(len + 1).join('0').split('').map(parseFloat);
ready
Loop no push
var arr = [];

for (i = 0; i < len; i += 1) {
  arr[i] = 0;
}
ready
Predefined length
var arr = new Array(len);

for (i = 0; i < len; i += 1) {
  arr[i] = 0;
}
ready
While
var arr = new Array(len);

while (--arr >= 0) {
  arr[len] = 0;
}
ready
Recursive Merge
function mkarr(len, acc) {
  if (acc == null) acc = [0];
  if (len <= 1) return acc;
  var b = mkarr(len >> 1, [0]);
  b = b.concat(b);
  if (len & 1) b = b.concat([0]);
  return b;
}
var arr = mkarr(len);
ready
Apply
arr = Array.apply(null, new Array(len)).map(Number.prototype.valueOf,0);
ready
Predefined Array & Multiple Concat
function createArray(size) {
    size = size >> 0;
    var a = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
    while (a.length < size)
        a = a.concat(a, a, a, a);

    a.length = size;
    return a; 
}

var arr = createArray(len);
ready
Predefined len 2
var arr = [];
arr.length = len;

for (i = 0; i < len; ++i) {
  arr[i] = 0;
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.