array join vs string connect (v37)

Revision 37 of this benchmark created by floatdrop on


Preparation HTML

<script>
  var alphabet = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
  var alphatmp = [];
  
  for(i=0;i<200;i++)
      alphatmp.push(alphabet);
  
  var str_to_split = alphatmp.join(',');
  var myarray = str_to_split.split(',');
  
</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 (i = 0; i < myarray.length; 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.