Underscore templates - classic vs. precompiled (v10)

Revision 10 of this benchmark created on


Description

Benchmarking difference in performance of rendering simple Underscore template - classic vs. precompiled

Preparation HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/1.0.0-rc.2/lodash.min.js"></script>

<script>
  var lodash = _.noConflict();
</script>

Setup

var _ = window.lodash;
    
    var template = '<div class="item <%= id %>">' +
      '  <h1><%= title %></h1>' +
      '  <p><%= desc %></p>' +
      '  <ul class="attributes">' +
      '    <li><%= attrs.dimensions %></li>' +
      '    <li><%= attrs.weight %></li>' +
      '    <li><%= attrs.price %></li>' +
      '  </ul>' +
      '</div>';
    
    var templateFuncPrecompiled = eval("(" + _.template(template).source + ")");

Test runner

Ready to run.

Testing in
TestOps/sec
classic
var templateFunc = _.template(template); // compile template
var output = templateFunc({ // render template
  id: 5,
  title: 'Hello World!',
  desc: 'Ordianry item',
  attrs: {
    dimensions: '100cm x 100cm x 20cm',
    weight: '15kg',
    price: '10EUR'
  }
});
ready
precompiled
var output = templateFuncPrecompiled({ // render template
  id: 5,
  title: 'Hello World!',
  desc: 'Ordianry item',
  attrs: {
    dimensions: '100cm x 100cm x 20cm',
    weight: '15kg',
    price: '10EUR'
  }
});
ready

Revisions

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