diff --git a/bench/dist-size.js b/bench/dist-size.js new file mode 100644 index 00000000..b063beec --- /dev/null +++ b/bench/dist-size.js @@ -0,0 +1,15 @@ +var _ = require('underscore'), + fs = require('fs'); + +module.exports = function(grunt, callback) { + var distFiles = fs.readdirSync('dist'), + distSizes = {}; + + _.each(distFiles, function(file) { + var stat = fs.statSync('dist/' + file); + distSizes[file.replace(/\.js/, '').replace(/\./g, '_')] = stat.size; + }); + + grunt.log.writeln('Distribution sizes: ' + JSON.stringify(distSizes, undefined, 2)); + callback([distSizes]); +}; diff --git a/bench/precompile-size.js b/bench/precompile-size.js new file mode 100644 index 00000000..12fb0dc0 --- /dev/null +++ b/bench/precompile-size.js @@ -0,0 +1,19 @@ +var _ = require('underscore'), + templates = require('./templates'); + +module.exports = function(grunt, callback) { + // Deferring to here in case we have a build for parser, etc as part of this grunt exec + var Handlebars = require('../lib/handlebars'); + + var templateSizes = {}; + _.each(templates, function(info, template) { + var src = info.handlebars, + compiled = Handlebars.precompile(src, {}), + knownHelpers = Handlebars.precompile(src, {knownHelpersOnly: true, knownHelpers: info.helpers}); + + templateSizes[template] = compiled.length; + templateSizes['knownOnly_' + template] = knownHelpers.length; + }); + grunt.log.writeln('Precompiled sizes: ' + JSON.stringify(templateSizes, undefined, 2)); + callback([templateSizes]); +};