String concat vs regex replace vs Array join (v5)

Revision 5 of this benchmark created on


Description

What's the fastest way to build a string?

Setup

var view = {
      name: "test",
      value: 5
    },
    
        listOStrings = [
            "Hello, my name is ",
            view.name,
            " and my value is ",
            view.value,
            " "
        ],
    
        template = "Hello, my name is {name} and my value is {value} ",
        render = function fmt(s, a, r) {
        r = /\{([^}]+)\}/g;
        return s.replace(r, function(_, m) {
          return a[m]
        })
        };
    
    // Make listOfString.length * 4 strings
    listOStrings = listOStrings.concat(listOStrings);
    listOStrings = listOStrings.concat(listOStrings);
    
    
    template += template;
    template += template;

Test runner

Ready to run.

Testing in
TestOps/sec
String join
var rendered = "";

for(var i = 0; i < listOStrings.length; i++) {
    rendered += listOStrings[i];
}

var newRendered = rendered[rendered.length-1];
 
ready
Regex.replace
var rendered = render(template, view);

var newRendered = rendered[rendered.length-1];
 
ready
Array.join
var rendered = listOStrings.join('');

var newRendered = rendered[rendered.length-1];
 
ready
String.concat
var str = "";
var rendered = str.concat.apply(str, listOStrings);

var newRendered = rendered[rendered.length-1];
ready

Revisions

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