bench: misc/startup.js
authorisaacs <i@izs.me>
Mon, 11 Feb 2013 21:24:27 +0000 (13:24 -0800)
committerisaacs <i@izs.me>
Tue, 19 Feb 2013 22:14:31 +0000 (14:14 -0800)
benchmark/misc/startup.js [new file with mode: 0644]
benchmark/startup.js [deleted file]

diff --git a/benchmark/misc/startup.js b/benchmark/misc/startup.js
new file mode 100644 (file)
index 0000000..25b3f56
--- /dev/null
@@ -0,0 +1,40 @@
+var common = require('../common.js');
+var spawn = require('child_process').spawn;
+var path = require('path');
+var emptyJsFile = path.resolve(__dirname, '../../test/fixtures/semicolon.js');
+var starts = 100;
+var i = 0;
+var start;
+
+var bench = common.createBenchmark(startNode, {
+  dur: [1, 3]
+});
+
+function startNode(conf) {
+  var dur = +conf.dur;
+  var go = true;
+  var starts = 0;
+  var open = 0;
+
+  setTimeout(function() {
+    go = false;
+  }, dur * 1000);
+
+  bench.start();
+  start();
+
+  function start() {
+    var node = spawn(process.execPath || process.argv[0], [emptyJsFile]);
+    node.on('exit', function(exitCode) {
+      if (exitCode !== 0) {
+        throw new Error('Error during node startup');
+      }
+      starts++;
+
+      if (go)
+        start();
+      else
+        bench.end(starts);
+    });
+  }
+}
diff --git a/benchmark/startup.js b/benchmark/startup.js
deleted file mode 100644 (file)
index 97bb8d5..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-var spawn = require('child_process').spawn,
-    path = require('path'),
-    emptyJsFile = path.join(__dirname, '../test/fixtures/semicolon.js'),
-    starts = 100,
-    i = 0,
-    start;
-
-function startNode() {
-  var node = spawn(process.execPath || process.argv[0], [emptyJsFile]);
-  node.on('exit', function(exitCode) {
-    if (exitCode !== 0) {
-      throw new Error('Error during node startup');
-    }
-
-    i++;
-    if (i < starts) {
-      startNode();
-    } else{
-      var duration = +new Date - start;
-      console.log('Started node %d times in %s ms. %d ms / start.', starts, duration, duration / starts);
-    }
-  });
-}
-
-start = +new Date;
-startNode();