bench: run GC and dump stats if --expose-gc is set
authorBen Noordhuis <info@bnoordhuis.nl>
Fri, 27 Apr 2012 18:29:35 +0000 (20:29 +0200)
committerBen Noordhuis <info@bnoordhuis.nl>
Fri, 27 Apr 2012 18:38:58 +0000 (20:38 +0200)
benchmark/http_simple_auto.js

index 4e136a6..3192635 100644 (file)
@@ -105,5 +105,24 @@ server.listen(port, function () {
   cp.stderr.pipe(process.stderr);
   cp.on('exit', function() {
     server.close();
+    process.nextTick(dump_mm_stats);
   });
 });
+
+function dump_mm_stats() {
+  if (typeof gc != 'function') return;
+
+  var before = process.memoryUsage();
+  for (var i = 0; i < 10; ++i) gc();
+  var after = process.memoryUsage();
+  setTimeout(print_stats, 250); // give GC time to settle
+
+  function print_stats() {
+    console.log('\nBEFORE / AFTER GC');
+    ['rss', 'heapTotal', 'heapUsed'].forEach(function(key) {
+      var a = before[key] / (1024 * 1024);
+      var b = after[key] / (1024 * 1024);
+      console.log('%sM / %sM %s', a.toFixed(2), b.toFixed(2), key);
+    });
+  }
+}