diff --git a/lib/index.js b/lib/index.js index ccb464d..c6535fc 100644 --- a/lib/index.js +++ b/lib/index.js @@ -38,11 +38,9 @@ cssFiles.forEach(function(cssFile) { }); // gets the best and the fastest results - var minSize = maxSize, - minTime = maxTime; + var minSize = maxSize; listOfMinimizers.forEach(function(minimizer) { minSize = Math.min(minSize, res[minimizer].size); - minTime = Math.min(minTime, res[minimizer].time); }); // logs the results of the test @@ -50,7 +48,7 @@ cssFiles.forEach(function(cssFile) { console.log( ' > was minimized by ' + minimizer + utils.addSpaces(minimizer, 20) + '--> ' + (minSize === res[minimizer].size ? (res[minimizer].size + '').bold.green : res[minimizer].size) + ' b | ' + - (minTime === res[minimizer].time ? (res[minimizer].time + '').bold.green : res[minimizer].time) + ' ms' + res[minimizer].time ); }); diff --git a/lib/utils.js b/lib/utils.js index f68e681..bb40e17 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,4 +1,6 @@ -var fs = require('fs'); +var fs = require('fs'), + Benchmark = require('benchmark'), + suite = new Benchmark.Suite; /** * Makes directories @@ -32,12 +34,16 @@ function addSpaces(name, interval) { function minimize(minimizer, minMethod) { return function(inputFile, outputFile) { var css = fs.readFileSync(inputFile, 'utf-8'), + min = ''; res = {}; - start = Date.now(); - min = minimizer[minMethod](css); - end = Date.now(); - res.time = end - start; + suite.add(minMethod, function() { + min = minimizer[minMethod](css); + }) + .on('cycle', function(event) { + res.time = String(event.target); + }) + .run({ 'async': false }); fs.writeFileSync(outputFile, min); res.size = fs.statSync(outputFile).size; diff --git a/package.json b/package.json index d81e686..643a737 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,8 @@ "cssshrink": "0.0.5" }, "devDependencies": { - "colors": "0.6.2" + "colors": "0.6.2", + "benchmark": "1.0.0" }, "engines": { "node": ">=0.8.0",