List 1000 elements, Underscore vs DoT vs Handlebar vs Mustache vs jQuery.tmpl

Benchmark created by Luc on


Preparation HTML

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://documentcloud.github.com/underscore/underscore.js"></script>
<script src="http://github.com/janl/mustache.js/raw/master/mustache.js"></script>
<script src="https://github.com/downloads/paul/handlebars.js/handlebars.js"></script>
<script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>
<script src="https://github.com/olado/doT/raw/master/doT.js"></script>

<div id="lorem"></div>

<!-- DoT -->
<script type="text/template" id="dotTemplate">
{{~it.data :val:index}}
<span>{{=val}} </span>
{{~}}
</script>

Setup

var lorem = ["Lorem","ipsum","dolor","sit","amet,","consectetur","adipiscing","elit","Phasellus","volutpat,","odio","ut","pulvinar","feugiat,","augue","odio","luctus","ipsum,","in","ultrices","nibh","sem","nec","tellus","Donec","erat","libero,","sodales","accumsan","malesuada","ut,","ornare","quis","nunc","Sed","posuere","libero","pellentesque","justo","interdum","a","venenatis","odio","fringilla","Donec","nisl","massa,","interdum","id","dignissim","et,","pulvinar","in","arcu","Fusce","in","lobortis","magna","Etiam","in","quam","in","nunc","rutrum","suscipit","Vestibulum","risus","ante,","elementum","quis","mattis","vel,","sodales","et","sem","Proin","nisi","nulla,","fermentum","nec","feugiat","non,","adipiscing","ut","lorem","Praesent","eu","velit","magna,","eget","aliquam","nisi","Vivamus","vestibulum","consectetur","orci","eget","ultrices","Nam","turpis","orci,","dictum","vitae","pellentesque","ut,","posuere","ut","ligula","Nam","faucibus,","libero","in","mattis","elementum,","urna","nisl","hendrerit","erat,","id","posuere","nibh","metus","et","elit","Donec","sem","mi,","scelerisque","eu","interdum","ut,","lobortis","in","nisl","Curabitur","tempus","massa","eu","lectus","pretium","at","varius","nibh","feugiat","Nunc","libero","dolor,","venenatis","a","convallis","at,","placerat","et","purus Pellentesque","feugiat","facilisis","orci","a","bibendum","Quisque","id","quam","in","nulla","faucibus","condimentum","non","nec","mi","Nunc","volutpat","sem","eu","urna","mattis","gravida","Vestibulum","tempus","erat","eget","arcu","consequat","tristique","Aliquam","erat","volutpat","Aliquam","lectus","nibh,","semper","sit","amet","hendrerit","bibendum,","viverra","ac","quam","Ut","consequat","lectus","rhoncus","mauris","malesuada","aliquet","Sed","fermentum","euismod","lacus","a","sollicitudin Pellentesque","gravida","scelerisque","sem,","at","laoreet","nibh","scelerisque","quis","Vestibulum","nec","ante","lectus","Aliquam","egestas","lectus","eleifend","metus","cursus","scelerisque","Morbi","eros","justo,","porta","eu","auctor","sed,","elementum","vitae","metus","Nunc","sagittis,","enim","a","sagittis","pretium,","neque","enim","malesuada","turpis,","in","cursus","urna","lectus","id","tellus","Suspendisse","a","est","euismod","libero","facilisis","posuere","Sed","a","est","orci,","eget","scelerisque","quam","Vivamus","blandit","dui","in","turpis","iaculis","a","auctor","ipsum","sagittis","Vestibulum","nec","orci","eros","Etiam","elementum","suscipit","dui","lobortis","bibendum","Nunc","blandit","neque","purus","Nullam","eu","nisl","a","neque","convallis","auctor Ut","mattis","risus","ut","felis","tempor","laoreet","Curabitur","scelerisque","sollicitudin","enim","eget","luctus","Suspendisse","vestibulum","fermentum","pretium","Cras","nec","ante","dui","Aenean","vehicula","interdum","urna","id","pellentesque","Sed","id","viverra","dolor","Class","aptent","taciti","sociosqu","ad","litora","torquent","per","conubia","nostra,","per","inceptos","himenaeos","Aenean","ac","nulla","sed","mi","elementum","mollis","porttitor","a","dui","Morbi","ac","dolor","sapien,","vel","semper","tortor","Mauris","vestibulum","sapien","nec","leo","varius","at","pulvinar","risus","semper","Nullam","tempor","vehicula","elementum","Praesent","in","augue","arcu","In","dapibus","viverra","faucibus Pellentesque","euismod","magna","ac","justo","luctus","bibendum","Nunc","nec","mi","libero","Aenean","at","odio","at","diam","malesuada","hendrerit","ut","ut","ipsum","Sed","justo","enim,","varius","accumsan","posuere","eget,","faucibus","sed","odio","Aliquam","condimentum","ante","et","dui","tristique","at","venenatis","orci","ullamcorper","Vivamus","pellentesque","massa","vestibulum","nunc","ornare","nec","venenatis","tellus","tincidunt","Curabitur","neque","sapien,","lobortis","ac","fringilla","eu,","fringilla","ut","justo","Vivamus","et","velit","in","dolor","pretium","lobortis","sed","sed","tortor","Aliquam","erat","volutpat Donec","at","velit","libero,","nec","commodo","elit","Aliquam","erat","volutpat","Vestibulum","at","magna","magna,","ac","interdum","justo","Praesent","aliquet","convallis","lectus","id","luctus","Donec","ut","purus","vitae","risus","convallis","aliquet","placerat","nec","sem","Morbi","ac","eros","non","leo","euismod","egestas","Donec","varius","sem","vel","purus","pellentesque","lobortis","egestas","dui","ullamcorper","Proin","lectus","elit,","suscipit","nec","tincidunt","nec,","posuere","quis","dolor","Etiam","accumsan","enim","consequat","sem","euismod","nec","scelerisque","arcu","iaculis","Donec","sapien","velit,","blandit","sed","volutpat","sed,","convallis","ac","sem","Donec","vehicula","molestie","odio","ut","laoreet","Suspendisse","sed","ipsum","et","risus","rhoncus","mattis","Aenean","sagittis","suscipit","elit,","quis","dapibus","enim","lobortis","id","Curabitur","pharetra","lacinia","libero,","ac","ultrices","urna","adipiscing","non","Aliquam","ut","lacus","id","turpis","varius","tempus Quisque","ornare,","felis","a","fringilla","pellentesque,","ante","dolor","laoreet","tortor,","vitae","fringilla","purus","turpis","ac","leo","Aliquam","congue","scelerisque","urna","a","tempus","Maecenas","massa","felis,","vulputate","a","pretium","eu,","tincidunt","at","enim","Etiam","vel","ante","sit","amet","nulla","elementum","sollicitudin","Aenean","convallis","nunc","vitae","felis","aliquet","pellentesque","Suspendisse","accumsan","eros","et","neque","imperdiet","sollicitudin","Integer","ante","turpis,","feugiat","consectetur","pulvinar","at,","molestie","eu","leo","Vivamus","pretium","ante","at","orci","tempor","quis","lacinia","leo","porta","Ut","ornare","viverra","quam,","nec","bibendum","metus","gravida","eu","Mauris","vulputate,","nibh","et","dictum","elementum,","diam","ligula","consectetur","felis,","non","facilisis","eros","felis","laoreet","nibh Suspendisse","vitae","justo","nulla,","interdum","faucibus","orci","Donec","tempus","turpis","id","sem","tincidunt","eu","tristique","magna","sodales","Ut","faucibus","ante","quis","neque","cursus","ut","egestas","nibh","porta","Etiam","eleifend","suscipit","risus,","vel","adipiscing","felis","congue","vitae","Vestibulum","ante","ipsum","primis","in","faucibus","orci","luctus","et","ultrices","posuere","cubilia","Curae;","Aliquam","porttitor","felis","et","purus","pharetra","egestas","Morbi","nisi","ante,","consequat","nec","convallis","luctus,","tincidunt","ut","tellus","Ut","non","lacus","velit,","porttitor","ornare","purus","Duis","quam","neque,","sollicitudin","nec","luctus","quis,","posuere","a","orci","Aenean","molestie","iaculis","turpis","vel","gravida","Curabitur","lacinia","porta","nunc,","ut","fringilla","massa","dapibus","consequat","Nulla","facilisi","Nullam","non","nisl","quam,","at","iaculis","sem Pellentesque","porttitor","felis","non","tellus","placerat","sit","amet","aliquam","dolor","tristique","Suspendisse","a","tincidunt","risus","Suspendisse","condimentum,","ipsum","nec","vehicula","dignissim,","nisl","odio","rhoncus","tellus,","fermentum","venenatis","dui","lectus","in","erat","Quisque","faucibus","aliquam","nisi","eu","volutpat","Vivamus","at","augue","vitae","sapien","feugiat","viverra","vitae","in","turpis","Aenean","consequat","tempor","nunc,","nec","eleifend","nibh","faucibus","venenatis","Sed","placerat","arcu","eu","leo","vehicula","volutpat","Nullam","non","velit","ligula","Mauris","vel","nisl","ac","nunc","fermentum","mattis","Phasellus","suscipit","ornare","quam","sed","consectetur","Duis","ac","viverra","mauris Integer","et","quam","quis","leo","tempor","mattis","egestas","at","metus","Maecenas","Maecenas","et","felis","ante","et","felis","ante","et","felis","ante","et","felis","ante,","a","aliquam","augue","Integer","consequat","neque","urna,","eu","tincidunt","tortor","Donec","risus","sem,","rhoncus","et","vehicula","non,","tincidunt","aliquet","eros","Cum","sociis","natoque","penatibus","et","magnis","dis","parturient","montes,","nascetur","ridiculus","mus","Fusce","sed","diam","nibh,","quis","ultricies","turpis","Vivamus","facilisis","ante","vel","purus","cursus","sit","amet","vulputate","ligula","feugiat Sed","nibh","turpis,","fringilla","vitae","vestibulum","in,","luctus","non","risus","Sed","malesuada","ligula","a","ligula","ornare","nec","facilisis","massa","aliquet","Sed","diam","enim,","pharetra","vel","varius","a,","rutrum","ac","sem","Quisque","non","sapien","neque,","vitae","feugiat","nunc","Ut","sed","mauris","enim,","et","placerat","neque","Nulla","vel","dui","id","nisl","ullamcorper","suscipit","at","et","eros","Maecenas","egestas","rhoncus","ante,","eu","convallis","sem","aliquet","ac","Donec","nisi","lectus,","aliquam","molestie","mollis"];
    
    var dotTemplatePrecompiled = doT.template($("#dotTemplate").html());

Test runner

Ready to run.

Testing in
TestOps/sec
DoT.js
dotTemplatePrecompiled({data: lorem});
ready
Underscore
dotTemplatePrecompiled({data: lorem});
ready

Revisions

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

  • Revision 1: published by Luc on