String concat vs regex replace vs Array join (v15)

Revision 15 of this benchmark created on


Description

What's the fastest way to build a string?

Setup

var view = {
      name: "test",
      value: 5
    },
      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]
        })
      };
    
    eval('window.renderer = function(name, value) { return "Hello, my name is " + name + " and my value is " + value }')

Test runner

Ready to run.

Testing in
TestOps/sec
String join
var rendered = "Hello, my name is " + view.name + " and my value is " + view.value;
ready
Array.concat
var array = ["Hello, my name is ", view.name, " and my value is ", view.value]
var rendered = ""
for (x in array) {
  rendered += x
}
ready
String join eval
var rendered = eval('"Hello, my name is " + view.name + " and my value is " + view.value')
ready
String.concat
var rendered = window.renderer(view.name, view.value)
ready

Revisions

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