Skip to content

Instantly share code, notes, and snippets.

@doron2402
Created May 4, 2017 19:12
Show Gist options
  • Save doron2402/2bdb0765a6e0169b867ca7cbc0d81482 to your computer and use it in GitHub Desktop.
Save doron2402/2bdb0765a6e0169b867ca7cbc0d81482 to your computer and use it in GitHub Desktop.
Using memwatch-next in order to detect memory leak node 6.10.x
'use strict';
const Memwatch = require('memwatch-next');
const Util = require('util');
if (Config.env === 'production') {
/**
* Check for memory leaks
*/
let hd = null;
Memwatch.on('leak', (info) => {
console.log('memwatch::leak');
console.error(info);
if (!hd) {
hd = new Memwatch.HeapDiff();
}
else {
const diff = hd.end();
console.error(Util.inspect(diff, true, null));
trace.report('memwatch::leak', {
HeapDiff: hd
});
hd = null;
}
});
Memwatch.on('stats', (stats) => {
console.log('memwatch::stats');
console.error(Util.inspect(stats, true, null));
trace.report('memwatch::stats', {
Stats: stats
});
});
}
@manisuec
Copy link

@ishmam999: trace is mainly for reporting. You can remove its dependency from the code. memwatch stats is json object; you can have your own reporting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment