Skip to content

Instantly share code, notes, and snippets.

@amasad
Last active August 29, 2015 14:26
Show Gist options
  • Save amasad/785d9af35d3a6c296b37 to your computer and use it in GitHub Desktop.
Save amasad/785d9af35d3a6c296b37 to your computer and use it in GitHub Desktop.
Not reclaiming unused heap
console.log('pid', process.pid);
var babel = require('babel-core');
var bigFile = require('fs').readFileSync(
require.resolve('babel-core/browser'),
'utf8'
);
babel.transform(bigFile);
console.log('before gc');
printMem();
// force gc
gc();
console.log('after gc');
printMem();
setInterval(function() {
printMem();
}, 2000);
function printMem() {
var mem = process.memoryUsage();
for (var p in mem) {
// convert to MB
mem[p] = mem[p] / 1000000;
}
console.log(mem);
}
/* Sample Run on node v0.12 with --expose-gc (numbers in mb)
before gc
{ rss: 488.583168, heapTotal: 458.540544, heapUsed: 430.695296 }
after gc
{ rss: 266.866688, heapTotal: 240.173568, heapUsed: 19.823912 }
{ rss: 266.870784, heapTotal: 240.173568, heapUsed: 19.901648 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 19.92368 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 19.933088 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 19.941016 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 19.948944 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 19.956872 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 19.9648 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 19.97272 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 19.98064 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 19.98856 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 19.99648 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.0044 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.01232 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.02024 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.02816 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.037808 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.045736 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.053664 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.061592 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.06952 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.079016 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.088944 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.096872 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.1048 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.11272 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.12064 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.12856 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.13648 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.1444 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.154328 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.162256 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.17432 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.18224 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.19016 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.19808 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.209808 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.217736 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.225664 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.233592 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.24152 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.24944 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.25736 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.27536 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.283568 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.293456 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.30128 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.310848 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.318672 }
{ rss: 266.883072, heapTotal: 240.173568, heapUsed: 20.326496 }
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment