Improved performance benchmarks and usage docs

This commit is contained in:
Lovell Fuller
2013-08-26 16:10:48 +01:00
parent 9ba9b95648
commit b836704451
3 changed files with 82 additions and 46 deletions

View File

@@ -1,42 +1,44 @@
var sharp = require("../index");
var imagemagick = require("imagemagick");
var assert = require("assert");
var Benchmark = require("benchmark");
// http://www.flickr.com/photos/grizdave/2569067123/
var input = __dirname + "/2569067123_aca715a2ee_o.jpg";
var input = __dirname + "/2569067123_aca715a2ee_o.jpg"; // http://www.flickr.com/photos/grizdave/2569067123/
var output = __dirname + "/output.jpg";
var width = 640;
var height = 480;
// imagemagick
var time = process.hrtime();
imagemagick.resize({
srcPath: input,
dstPath: output,
quality: 0.75,
width: width,
height: height
}, function(err) {
if (err) {
throw err;
var suite = new Benchmark.Suite;
suite.add("imagemagick", {
"defer": true,
"fn": function(deferred) {
imagemagick.resize({
srcPath: input,
dstPath: output,
quality: 0.75,
width: width,
height: height
}, function(err) {
if (err) {
throw err;
} else {
deferred.resolve();
}
});
}
var diff = process.hrtime(time);
imagemagickTime = diff[0] * 1e9 + diff[1];
console.log("imagemagick took %d nanoseconds", imagemagickTime);
// sharp
time = process.hrtime();
sharp.crop(input, output, width, height, function(err) {
if (err) {
throw err;
}
diff = process.hrtime(time);
var sharpTime = diff[0] * 1e9 + diff[1];
console.log("sharp took %d nanoseconds", sharpTime);
// diff
assert(sharpTime < imagemagickTime, "sharp was blunt");
console.log("sharp was %d%% faster", (imagemagickTime - sharpTime) / imagemagickTime * 100);
});
});
}).add("sharp", {
"defer": true,
"fn": function(deferred) {
sharp.crop(input, output, width, height, function(err) {
if (err) {
throw err;
} else {
deferred.resolve();
}
});
}
}).on("cycle", function(event) {
console.log(String(event.target));
}).on("complete", function() {
assert(this.filter("fastest").pluck("name") == "sharp");
}).run();