summaryrefslogtreecommitdiff
path: root/benchmark/timers
diff options
context:
space:
mode:
authorJoshua Colvin <joshua@joshuacolvin.net>2017-01-25 19:47:59 -0500
committerJames M Snell <jasnell@gmail.com>2017-01-30 08:44:09 -0800
commit1f342afab7e7ce59eaa7f9cb8ed477215de3b4b1 (patch)
treec81f96ab52d70c680936a7e03119e0f155d014af /benchmark/timers
parent251df16aa4cc027994319840fc1294f88656ce63 (diff)
downloadandroid-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.js28
-rw-r--r--benchmark/timers/set-immediate-breadth.js21
-rw-r--r--benchmark/timers/set-immediate-depth-args.js47
-rw-r--r--benchmark/timers/set-immediate-depth.js22
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);
+ }
+}