Open peeter-tomberg opened 9 years ago
(Requires "when" module)
var lwip = require('lwip'); var when = require('when'); var getMemory = function () { var memory = process.memoryUsage(); return "mem_rss=" + (memory.rss / 1048576).toFixed(1) + "MB" + " mem_heap_total=" + (memory.heapTotal / 1048576).toFixed(1) + "MB" + " mem_heap_used=" + (memory.heapUsed / 1048576).toFixed(1) + "MB"; }; function Resizer(image) { this.image = image; } Resizer.prototype = { resize: function () { var ratio = 0.25; var deferred = when.defer(); deferred.promise.finally(function () { console.log("after processing image", getMemory()); }); console.log('cloning'); this.image.clone(function (err, clonedImage) { console.log('clone done, scaling'); clonedImage.scale(ratio, function (err, image) { console.log('scaling done'); if (err) { deferred.reject(err); } else { deferred.resolve(image); } }); }); return deferred.promise; } }; lwip.open('./fixtures/3000x3000.gif', function (err, image) { var sequence = require('when/sequence'); global.gc(); console.log("before starting", getMemory()); sequence([ function () { return new Resizer(image).resize(); }, function () { return new Resizer(image).resize(); }, function () { return new Resizer(image).resize(); }, function () { return new Resizer(image).resize(); }, function () { return new Resizer(image).resize(); } ]).then(function (){ console.log('done resizing all'); }).catch(function (err) { console.error('error occoured', err); }); });
C:\workspace\projects\node-api>node --expose-gc test before starting mem_rss=89.0MB mem_heap_total=10.1MB mem_heap_used=3.4MB cloning clone done, scaling scaling done after processing image mem_rss=125.8MB mem_heap_total=10.1MB mem_heap_used=3.5MB cloning clone done, scaling scaling done after processing image mem_rss=162.5MB mem_heap_total=10.1MB mem_heap_used=3.6MB cloning clone done, scaling scaling done after processing image mem_rss=199.1MB mem_heap_total=10.1MB mem_heap_used=3.6MB cloning clone done, scaling scaling done after processing image mem_rss=235.8MB mem_heap_total=10.1MB mem_heap_used=3.6MB cloning clone done, scaling scaling done after processing image mem_rss=272.3MB mem_heap_total=10.1MB mem_heap_used=3.6MB cloning
Im on a 64bit windows 7 running node 12. The image is from: http://placehold.it/3000x3000 Any thoughts?
The exit code is 3221226356 ( 0xC0000374 ), which seems to be an error code for heap corruption?
Any thoughts on this?
Interesting. Does it exhibit the same behaviour with node 10?
(Requires "when" module)
Im on a 64bit windows 7 running node 12. The image is from: http://placehold.it/3000x3000 Any thoughts?