array join vs string connect

JavaScript performance comparison

Revision 36 of this test case created

Preparation code

<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

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

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

var output = tmp.join('');
pending…
string connect
var output = '';
for (i=0;i<myarray.length;i++){
output += myarray[i];
}
 
pending…
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];
}
pending…
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] ;
}
pending…
string-multi concat 3
var output = '';
for (i=0;i<myarray.length;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] ;
}
pending…
array join nocopy
var output = myarray.join('');
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

1 comment

floatdrop commented :

You should add preallocate test:

var tmp = new Array(myarray.length); for (i = 0; i < myarray.length; i++) { tmp[i] = myarray[i]; } var output = tmp.join('');

Add a comment