Template Engines Dust JS / Handlebar JS / Mustache JS (v10)

Revision 10 of this benchmark created on


Preparation HTML

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

<script src="//cdnjs.cloudflare.com/ajax/libs/mustache.js/0.7.2/mustache.min.js"></script>

<script src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v2.0.0.js"></script>

<script src="//cdnjs.cloudflare.com/ajax/libs/dustjs-linkedin/2.0.0/dust-core.min.js"></script>


<script>
  window.sharedVariables = {
    header: "Header",
    header2: "Header2",
    header3: "Header3",
    header4: "Header4",
    header5: "Header5",
    header6: "Header6",
    list: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
  };

  window.mustacheTemplate = "<div><h1 class='header'>{{header}}</h1><h2 class='header2'>{{header2}}</h2><h3 class='header3'>{{header3}}</h3><h4 class='header4'>{{header4}}</h4><h5 class='header5'>{{header5}}</h5><h6 class='header6'>{{header6}}</h6><ul class='list'>{{#list}}<li class='item'>{{.}}</li>{{/list}}</ul></div>";

  window.handlebarsTemplate = "<div><h1 class='header'>{{header}}</h1><h2 class='header2'>{{header2}}</h2><h3 class='header3'>{{header3}}</h3><h4 class='header4'>{{header4}}</h4><h5 class='header5'>{{header5}}</h5><h6 class='header6'>{{header6}}</h6><ul class='list'>{{#each list}}<li class='item'>{{.}}</li>{{/each}}</ul></div>";


  window.dustTemplatePrecompiledCached = (function(){dust.register("foobar",body_0);function body_0(chk,ctx){return chk.write("<div><h1 class=\"header\">").reference(ctx.get("header"),ctx,"h").write("</h1><h2 class=\"header2\">").reference(ctx.get("header2"),ctx,"h").write("</h2><h3 class=\"header3\">").reference(ctx.get("header3"),ctx,"h").write("</h3><h4 class=\"header4\">").reference(ctx.get("header4"),ctx,"h").write("</h4><h5 class=\"header5\">").reference(ctx.get("header5"),ctx,"h").write("</h5><h6 class=\"header6\">").reference(ctx.get("header6"),ctx,"h").write("</h6><ul class=\"list\">").section(ctx.get("list"),ctx,{"block":body_1},null).write("</ul></div>");}function body_1(chk,ctx){return chk.write("<li class=\"item\">").reference(ctx.getPath(true,[]),ctx,"h").write("</li>");}return body_0;})();

    dust.loadSource(dustTemplatePrecompiledCached);

</script>

Test runner

Ready to run.

Testing in
TestOps/sec
mustache.js
Mustache.render(mustacheTemplate, sharedVariables);
ready
handlebar.js
Handlebars.compile(handlebarsTemplate)(sharedVariables);
ready
linkedindust.js (precompiled)
dust.render("foobar", sharedVariables, function(){});
ready

Revisions

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