From 10ce7c6693f72f00fe1d8bac7c9748b577f6b8e7 Mon Sep 17 00:00:00 2001 From: Lovell Fuller Date: Sun, 26 Jan 2014 20:16:42 +0000 Subject: [PATCH] Add parallel performance test to demonstrate effect of waiting for a worker thread --- tests/parallel.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 tests/parallel.js diff --git a/tests/parallel.js b/tests/parallel.js new file mode 100755 index 00000000..5b3d4acd --- /dev/null +++ b/tests/parallel.js @@ -0,0 +1,29 @@ +var sharp = require("../index"); +var fs = require("fs"); +var assert = require("assert"); +var async = require("async"); + +var inputJpg = __dirname + "/2569067123_aca715a2ee_o.jpg"; // http://www.flickr.com/photos/grizdave/2569067123/ +var width = 720; +var height = 480; + +async.mapSeries([1, 1, 2, 4, 8, 16, 32, 64, 128], function(parallelism, next) { + var start = new Date().getTime(); + async.times(parallelism, + function(id, callback) { + sharp.resize(inputJpg, sharp.buffer.jpeg, width, height, function(err, buffer) { + buffer = null; + callback(err, new Date().getTime() - start); + }); + }, + function(err, ids) { + assert(!err); + assert(ids.length === parallelism); + var mean = ids.reduce(function(a, b) { + return a + b; + }) / ids.length; + console.log(parallelism + " parallel calls: fastest=" + ids[0] + "ms slowest=" + ids[ids.length - 1] + "ms mean=" + mean + "ms"); + next(); + } + ); +}, function() {});