Skip to content

Instantly share code, notes, and snippets.

@paolochiodi
Created December 24, 2013 06:51
Show Gist options
  • Save paolochiodi/8109659 to your computer and use it in GitHub Desktop.
Save paolochiodi/8109659 to your computer and use it in GitHub Desktop.
Test resizer for memory leaks
var fs = require('fs');
var resizers = require('../index');
var execute = function(next) {
var Cover = resizers.cover;
var Contain = resizers.contain;
var Crop = resizers.crop;
var inputImage = fs.createReadStream(__dirname + '/test.jpg');
var coverImage = fs.createWriteStream(__dirname + '/cover.jpg');
var cover = Cover({height: 100, width: 200});
cover.on('exit', next);
inputImage.pipe(cover).pipe(coverImage);
};
var TESTS = 500,
completed = 0;
function test() {
completed++;
global.gc && gc();
if (completed <= TESTS) {
setImmediate(function() { execute(test); });
}
else {
setTimeout(terminate, 2000);
}
}
function terminate() {
global.gc && gc();
var mem = process.memoryUsage();
var elapsedRss = Math.round(((mem.rss - startMem.rss) / 1024 / 1024) * 100) / 100;
var elapsedHeapTotal = Math.round(((mem.heapTotal - startMem.heapTotal) / 1024 / 1024) * 100) / 100;
var elapsedHeapUsed = Math.round(((mem.heapUsed - startMem.heapUsed) / 1024 / 1024) * 100) / 100;
console.log(elapsedRss, elapsedHeapTotal, elapsedHeapUsed);
}
var startMem = process.memoryUsage();
test();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment