Append string vs join array (v13)

Revision 13 of this benchmark created on


Setup

var i = 0,
        str = '',
        arr = [],
        w1 = 'brown',
        w2 = 'jumped',
        w3 = 'lazy';

Test runner

Ready to run.

Testing in
TestOps/sec
String append #1
str = '';
for (j = 0; j < 1000; j++) {
  str += 'Quick ' + w1 + ' fox ' + w2 + ' over the ' + w3 + ' dog. ';
}
ready
String append #2
str = '';
for (j = 0; j < 1000; j++) {
  str += 'Quick ';
  str += w1;
  str += ' fox ';
  str += w2;
  str += ' over the ';
  str += w3;
  str += ' dog. ';
}
ready
Array join #1
arr = new Array(1000);
arr2 = ['Quick ', w1, ' fox ', w2, ' over the ', w3, ' dog. '];
for (j = 0; j < 1000; j++) {
  arr.push.apply(arr, arr2);
}
arr.join('');
ready
Array join #2
arr = new Array(7000);
for (i = 0; i < 7000; i++) {
  arr[i++] = 'Quick ';
  arr[i++] = w1;
  arr[i++] = ' fox ';
  arr[i++] = w2;
  arr[i++] = ' over the ';
  arr[i++] = w3;
  arr[i++] = ' dog. ';
}
arr.join('');
ready
String append #3
str = '';
for (j = 0; j < 1000; j++) {
  str.concat('Quick ', w1, ' fox ', w2, ' over the ', w3, ' dog. ');
}
ready
String append #4
str = '';
for (j = 0; j < 1000; j++) {
  str.concat('Quick ');
  str.concat(w1);
  str.concat(' fox ');
  str.concat(w2);
  str.concat(' over the ');
  str.concat(w3);
  str.concat(' dog. ');
}
ready

Revisions

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