Ultimate string concatenation tests (v10)

Revision 10 of this benchmark created on


Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js"></script>
<script>
dojo.require("dojox.string.Builder");
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
Push and join
var array = [];
for (var i = 0; i < 100; i++) {
 array.push("foo");
}

var str = array.join("");
ready
Length and join
var array = [];
for (var i = 0; i < 100; i++) {
 array[array.length] = "foo";
}

var str = array.join("");
ready
String +=
var str = "";
for (var i = 0; i < 100; i++) {
 str += "foo";
}
ready
Concat
var str = "";
for (var i = 0; i < 100; i++) {
 str = str.concat("foo");
}
ready
Push and concact
var array = [];
for (var i = 0; i < 100; i++) {
 array.push("foo");
}

var str = String.prototype.concat.apply("", array)
ready
dojox.string.Builder
var sb = new dojox.string.Builder();
for (var i = 0; i < 100; i++) {
 sb.append("foo");
}
sb.toString();
ready
Direct assign & join
var array = [];
for (var i = 0; i < 100; i++) {
 array[i] = "foo";
}

var str = array.join("");
ready
new Array and join
var array = new Array(100);
for (var i = 0; i < 100; i++) {
 array[i] = "foo";
}

var str = array.join("");
ready
new Array and partial concatenation
var array = new Array(20);

for(var i=20; i>0; --i){
    array[i] = 'foo' + 'foo' + 'foo' + 'foo' + 'foo';
}
var str = array.join('');
ready

Revisions

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