From ab64fec1a8036e165c64dbee45c5547fcdadcd47 Mon Sep 17 00:00:00 2001 From: kpdecker Date: Sun, 25 Aug 2013 14:14:47 -0500 Subject: [PATCH] Collect size metrics --- bench/dist-size.js | 15 +++++++++++++++ bench/precompile-size.js | 19 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 bench/dist-size.js create mode 100644 bench/precompile-size.js 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]); +};