From 1f342afab7e7ce59eaa7f9cb8ed477215de3b4b1 Mon Sep 17 00:00:00 2001 From: Joshua Colvin Date: Wed, 25 Jan 2017 19:47:59 -0500 Subject: benchmark: move setImmediate benchmarks to timers PR-URL: https://github.com/nodejs/node/pull/11010 Reviewed-By: Jeremiah Senkpiel Reviewed-By: Colin Ihrig Reviewed-By: Evan Lucas Reviewed-By: Luigi Pinca Reviewed-By: James M Snell --- benchmark/timers/set-immediate-breadth-args.js | 28 +++++++++++++++ benchmark/timers/set-immediate-breadth.js | 21 ++++++++++++ benchmark/timers/set-immediate-depth-args.js | 47 ++++++++++++++++++++++++++ benchmark/timers/set-immediate-depth.js | 22 ++++++++++++ 4 files changed, 118 insertions(+) create mode 100644 benchmark/timers/set-immediate-breadth-args.js create mode 100644 benchmark/timers/set-immediate-breadth.js create mode 100644 benchmark/timers/set-immediate-depth-args.js create mode 100644 benchmark/timers/set-immediate-depth.js (limited to 'benchmark/timers') diff --git a/benchmark/timers/set-immediate-breadth-args.js b/benchmark/timers/set-immediate-breadth-args.js new file mode 100644 index 0000000000..6a904e2675 --- /dev/null +++ b/benchmark/timers/set-immediate-breadth-args.js @@ -0,0 +1,28 @@ +'use strict'; + +const common = require('../common.js'); +const bench = common.createBenchmark(main, { + millions: [5] +}); + +function main(conf) { + const N = +conf.millions * 1e6; + + process.on('exit', function() { + bench.end(N / 1e6); + }); + + function cb1(arg1) {} + function cb2(arg1, arg2) {} + function cb3(arg1, arg2, arg3) {} + + bench.start(); + for (let i = 0; i < N; i++) { + if (i % 3 === 0) + setImmediate(cb3, 512, true, null); + else if (i % 2 === 0) + setImmediate(cb2, false, 5.1); + else + setImmediate(cb1, 0); + } +} diff --git a/benchmark/timers/set-immediate-breadth.js b/benchmark/timers/set-immediate-breadth.js new file mode 100644 index 0000000000..3d8b038342 --- /dev/null +++ b/benchmark/timers/set-immediate-breadth.js @@ -0,0 +1,21 @@ +'use strict'; + +const common = require('../common.js'); +const bench = common.createBenchmark(main, { + millions: [10] +}); + +function main(conf) { + const N = +conf.millions * 1e6; + + process.on('exit', function() { + bench.end(N / 1e6); + }); + + function cb() {} + + bench.start(); + for (let i = 0; i < N; i++) { + setImmediate(cb); + } +} diff --git a/benchmark/timers/set-immediate-depth-args.js b/benchmark/timers/set-immediate-depth-args.js new file mode 100644 index 0000000000..1f12ae6ec7 --- /dev/null +++ b/benchmark/timers/set-immediate-depth-args.js @@ -0,0 +1,47 @@ +'use strict'; + +const common = require('../common.js'); +const bench = common.createBenchmark(main, { + millions: [10] +}); + +function main(conf) { + const N = +conf.millions * 1e6; + + process.on('exit', function() { + bench.end(N / 1e6); + }); + + function cb3(n, arg2, arg3) { + if (--n) { + if (n % 3 === 0) + setImmediate(cb3, n, true, null); + else if (n % 2 === 0) + setImmediate(cb2, n, 5.1); + else + setImmediate(cb1, n); + } + } + function cb2(n, arg2) { + if (--n) { + if (n % 3 === 0) + setImmediate(cb3, n, true, null); + else if (n % 2 === 0) + setImmediate(cb2, n, 5.1); + else + setImmediate(cb1, n); + } + } + function cb1(n) { + if (--n) { + if (n % 3 === 0) + setImmediate(cb3, n, true, null); + else if (n % 2 === 0) + setImmediate(cb2, n, 5.1); + else + setImmediate(cb1, n); + } + } + bench.start(); + setImmediate(cb1, N); +} diff --git a/benchmark/timers/set-immediate-depth.js b/benchmark/timers/set-immediate-depth.js new file mode 100644 index 0000000000..12b9cdc7e6 --- /dev/null +++ b/benchmark/timers/set-immediate-depth.js @@ -0,0 +1,22 @@ +'use strict'; + +const common = require('../common.js'); +const bench = common.createBenchmark(main, { + millions: [10] +}); + +function main(conf) { + const N = +conf.millions * 1e6; + let n = N; + + process.on('exit', function() { + bench.end(N / 1e6); + }); + + bench.start(); + setImmediate(onNextTick); + function onNextTick() { + if (--n) + setImmediate(onNextTick); + } +} -- cgit v1.2.3