diff --git a/benchmark/misc/startup.js b/benchmark/misc/startup.js new file mode 100644 index 0000000000..25b3f56fef --- /dev/null +++ b/benchmark/misc/startup.js @@ -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 index 97bb8d5189..0000000000 --- a/benchmark/startup.js +++ /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();