coffeecup-vs-coffee-templates

Benchmark created by Mike Smullin on


Description

benching my minimalist alternative to the official lib

Preparation HTML

<script src="https://raw.github.com/gradus/coffeecup/master/lib/coffeecup.js"></script>
<script src="https://raw.github.com/mikesmullin/coffee-templates/production/js/coffee-templates.js"></script>

Setup

var data, ct, template;
    
    ct = new CoffeeTemplates({
      format: true
    });
    
    template = function() {
      doctype(5);
      return html(function() {
        head(function() {
          return title(this.title);
        });
        return body(function() {
          div({
            id: 'content'
          }, function() {
            var post, _i, _len, _ref, _results;
            _ref = this.posts;
            _results = [];
            for (_i = 0, _len = _ref.length; _i < _len; _i++) {
              post = _ref[_i];
              _results.push(div({
                "class": 'post'
              }, function() {
                p(post.name);
                return div(post.comment);
              }));
            }
            return _results;
          });
          return form({
            method: 'post'
          }, function() {
            return ul(function() {
              li(function() {
                return input({
                  name: 'name'
                });
              });
              li(function() {
                return textarea({
                  name: 'comment'
                });
              });
              return li(function() {
                return input({
                  type: 'submit'
                });
              });
            });
          });
        });
      });
    };
    
    data = {
      title: 'my first website!',
      posts: [{ name: 'bob', comment: 'hi'},{ name: 'jim', comment: 'bye'}]
    };

Test runner

Ready to run.

Testing in
TestOps/sec
CoffeeCup
coffeecup.compile(template)(data)

 
ready
Coffee-Templates
ct.render(template, data)
ready

Revisions

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