diff options
author | Joshua Colvin <joshua@joshuacolvin.net> | 2017-01-25 19:47:59 -0500 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2017-01-30 08:44:09 -0800 |
commit | 1f342afab7e7ce59eaa7f9cb8ed477215de3b4b1 (patch) | |
tree | c81f96ab52d70c680936a7e03119e0f155d014af /benchmark/timers | |
parent | 251df16aa4cc027994319840fc1294f88656ce63 (diff) | |
download | android-node-v8-1f342afab7e7ce59eaa7f9cb8ed477215de3b4b1.tar.gz android-node-v8-1f342afab7e7ce59eaa7f9cb8ed477215de3b4b1.tar.bz2 android-node-v8-1f342afab7e7ce59eaa7f9cb8ed477215de3b4b1.zip |
benchmark: move setImmediate benchmarks to timers
PR-URL: https://github.com/nodejs/node/pull/11010
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'benchmark/timers')
-rw-r--r-- | benchmark/timers/set-immediate-breadth-args.js | 28 | ||||
-rw-r--r-- | benchmark/timers/set-immediate-breadth.js | 21 | ||||
-rw-r--r-- | benchmark/timers/set-immediate-depth-args.js | 47 | ||||
-rw-r--r-- | benchmark/timers/set-immediate-depth.js | 22 |
4 files changed, 118 insertions, 0 deletions
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); + } +} |