summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkpdecker <kpdecker@gmail.com>2013-08-25 14:14:47 -0500
committerkpdecker <kpdecker@gmail.com>2013-08-25 14:14:47 -0500
commitab64fec1a8036e165c64dbee45c5547fcdadcd47 (patch)
tree5e80e37a82469af9719c058cfa340d474dac20c0
parent672aeda17f9309ad7e4d31ef1c3b9a302fbb5baf (diff)
downloadhandlebars.js-ab64fec1a8036e165c64dbee45c5547fcdadcd47.zip
handlebars.js-ab64fec1a8036e165c64dbee45c5547fcdadcd47.tar.gz
handlebars.js-ab64fec1a8036e165c64dbee45c5547fcdadcd47.tar.bz2
Collect size metrics
-rw-r--r--bench/dist-size.js15
-rw-r--r--bench/precompile-size.js19
2 files changed, 34 insertions, 0 deletions
diff --git a/bench/dist-size.js b/bench/dist-size.js
new file mode 100644
index 0000000..b063bee
--- /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 0000000..12fb0dc
--- /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]);
+};