array join vs string connect (v38)

Revision 38 of this benchmark created by zxcabs on


Preparation HTML

<script>
 
  var myarray = [],
      len = 400;

  while (len--) {
     myarray.push(Math.random().toString(33));
  }

</script>

Test runner

Ready to run.

Testing in
TestOps/sec
array join
var tmp = [];
for (i = 0; i < myarray.length; i++) {
  tmp.push(myarray[i]);
}

var output = tmp.join('');
ready
string connect
var output = '';
for (i = 0; i < myarray.length; i++) {
  output += myarray[i];
}
ready
string-multi concat
var output = '';
for (i = 0; i < myarray.length; i += 4) {
  output += myarray[i] + myarray[i + 1] + myarray[i + 2] + myarray[i + 3];
}
ready
string-multi concat 2
var output = '';
for (i = 0; i < myarray.length; i += 4) {
  output += myarray[i];
  output += myarray[i + 1];
  output += myarray[i + 2];
  output += myarray[i + 3];
}
ready
string-multi concat 3
var output = '';
var l = myarray.length;
for (i = 0; i < l; i += 10) {
  output += myarray[i];
  output += myarray[i + 1];
  output += myarray[i + 2];
  output += myarray[i + 3];
  output += myarray[i + 4];
  output += myarray[i + 5];
  output += myarray[i + 6];
  output += myarray[i + 7];
  output += myarray[i + 8];
  output += myarray[i + 9];
}
ready
array join nocopy
var output = myarray.join('');
ready
array preallocate
var tmp = new Array(myarray.length);
for (var i = 0, l = myarray.length; i < l; i++) {
  tmp[i] = myarray[i];
}
var output = tmp.join('');
ready
string concat
var output = '';
for (var i = myarray.length, l = 0; l < i; l++) {
  output += myarray[l];
}
ready

Revisions

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