From f5079765ff2ffaa33f82281b8eddd908781ae7d7 Mon Sep 17 00:00:00 2001 From: kpdecker Date: Mon, 14 Jan 2013 00:00:11 -0600 Subject: [PATCH] Update benchmark suite for node 0.8 --- Rakefile | 14 -------- bench/benchwarmer.js | 2 +- bench/handlebars.js | 77 +++++++++++++++++++++++++------------------- package.json | 5 ++- 4 files changed, 48 insertions(+), 50 deletions(-) diff --git a/Rakefile b/Rakefile index db141ac5..e1563772 100644 --- a/Rakefile +++ b/Rakefile @@ -92,20 +92,6 @@ directory "vendor" desc "benchmark against dust.js and mustache.js" task :bench => "vendor" do require "open-uri" - #File.open("vendor/mustache.js", "w") do |file| - #file.puts open("https://github.com/janl/mustache.js/raw/master/mustache.js").read - #file.puts "module.exports = Mustache;" - #end - - File.open("vendor/benchmark.js", "w") do |file| - file.puts open("https://raw.github.com/bestiejs/benchmark.js/master/benchmark.js").read - end - - #if File.directory?("vendor/dustjs") - #system "cd vendor/dustjs && git pull" - #else - #system "git clone git://github.com/akdubya/dustjs.git vendor/dustjs" - #end #if File.directory?("vendor/coffee") #system "cd vendor/coffee && git pull" diff --git a/bench/benchwarmer.js b/bench/benchwarmer.js index 203c7bca..25a25061 100644 --- a/bench/benchwarmer.js +++ b/bench/benchwarmer.js @@ -133,7 +133,7 @@ BenchWarmer.prototype = { if(!bench.error) { var count = bench.hz, - moe = count * bench.stats.RME / 100; + moe = count * bench.stats.rme / 100; out = Math.round(count / 1000) + " ±" + Math.round(moe / 1000) + " (" + bench.cycles + ")"; } else { diff --git a/bench/handlebars.js b/bench/handlebars.js index 72dac947..c7f6c105 100644 --- a/bench/handlebars.js +++ b/bench/handlebars.js @@ -1,20 +1,22 @@ -require.paths.push("lib"); -require.paths.push("vendor"); -require.paths.push("vendor/dustjs/lib"); -require.paths.push("vendor/coffee/lib"); -require.paths.push("vendor/eco/lib"); - - var BenchWarmer = require("./benchwarmer"); -Handlebars = require("handlebars"); +Handlebars = require("../lib/handlebars"); -var dust = require("dust"); -var Mustache = require("mustache"); -var ecoExports = require("eco"); +var dust, Mustache, eco; -eco = function(str) { - return ecoExports(str); -} +try { + dust = require("dust"); +} catch (err) { /* NOP */ } + +try { + Mustache = require("mustache"); +} catch (err) { /* NOP */ } + +try { + var ecoExports = require("eco"); + eco = function(str) { + return ecoExports(str); + } +} catch (err) { /* NOP */ } var benchDetails = { string: { @@ -113,39 +115,46 @@ var makeSuite = function(name) { var error = function() { throw new Error("EWOT"); }; - - //bench("dust", function() { - //dust.render(templateName, context, function(err, out) { }); - //}); + if (dust) { + bench("dust", function() { + dust.render(templateName, context, function(err, out) { }); + }); + } bench("handlebars", function() { handlebarsTemplates[templateName](context); }); - //if(ecoTemplates[templateName]) { - //bench("eco", function() { - //ecoTemplates[templateName](context); - //}); - //} else { - //bench("eco", error); - //} + if (eco) { + if(ecoTemplates[templateName]) { + bench("eco", function() { + ecoTemplates[templateName](context); + }); + } else { + bench("eco", error); + } + } - //if(mustacheSource) { - //bench("mustache", function() { - //Mustache.to_html(mustacheSource, context, mustachePartials); - //}); - //} else { - //bench("mustache", error); - //} + if (Mustache && mustacheSource) { + bench("mustache", function() { + Mustache.to_html(mustacheSource, context, mustachePartials); + }); + } else { + bench("mustache", error); + } }); } for(var name in benchDetails) { if(benchDetails.hasOwnProperty(name)) { - dust.loadSource(dust.compile(benchDetails[name].dust, name)); + if (dust) { + dust.loadSource(dust.compile(benchDetails[name].dust, name)); + } handlebarsTemplates[name] = Handlebars.compile(benchDetails[name].handlebars); - if(benchDetails[name].eco) { ecoTemplates[name] = eco(benchDetails[name].eco); } + if (eco && benchDetails[name].eco) { + ecoTemplates[name] = eco(benchDetails[name].eco); + } var partials = benchDetails[name].partials; if(partials) { diff --git a/package.json b/package.json index 4b052792..d3a7be1f 100644 --- a/package.json +++ b/package.json @@ -18,8 +18,11 @@ "uglify-js": "~1.2" }, "devDependencies": { + "benchmark": "~1.0", + "dust": "~0.3", "jison": "~0.3", - "mocha": "*" + "mocha": "*", + "mustache": "~0.7.2" }, "main": "lib/handlebars.js", "bin": {