diff options
Diffstat (limited to 'node_modules/immediate/bench.js')
| -rw-r--r-- | node_modules/immediate/bench.js | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/node_modules/immediate/bench.js b/node_modules/immediate/bench.js new file mode 100644 index 00000000..590ed350 --- /dev/null +++ b/node_modules/immediate/bench.js @@ -0,0 +1,89 @@ +var immediate = require('./lib/index'); + +function bench (num, done) { + var i = 1e3; + var time = process.hrtime(); + function next(i) { + var total = 50000; + var todo = total; + function nextInt1() { + if (--todo !== 0) { + return; + } + immediate(next, i -1); + } + function nextInt2() { + if (--todo !== 0) { + return; + } + immediate(next, i -1); + } + function nextInt3() { + if (--todo !== 0) { + return; + } + immediate(next, i -1); + } + function nextInt4() { + if (--todo !== 0) { + return; + } + immediate(next, i -1); + } + function nextInt5() { + if (--todo !== 0) { + return; + } + immediate(next, i -1); + } + if (i > 0) { + var j = 0; + while (j++ < total) { + switch (j % 5) { + case 0: + immediate(nextInt1); + break; + case 1: + immediate(nextInt2, 'arg'); + break; + case 2: + immediate(nextInt3, 'arg', 'another arg'); + break; + case 3: + immediate(nextInt4, 'arg', 'another arg', 'third arg'); + break; + case 4: + immediate(nextInt5, 'arg', 'another arg', 'third arg', '4th arg'); + break; + } + } + } else { + after(); + } + } + + immediate(next, i); + function after() { + var diff = process.hrtime(time); + var units = 'nanoseconds'; + var diftime = diff[0] * 1e9 + diff[1]; + if (diftime > 1e6) { + diftime /= 1e6; + units = 'milliseconds'; + } + if (diftime > 1000) { + diftime /= 1000; + units = 'seconds'; + } + console.log(`Benchmark ${num < 10 ? ('0' + num): num} took ${diftime.toFixed(4)} ${units}`); + done(num); + } +} +var runs = 20; +function afterRun(num) { + if (num === runs) { + return; + } + bench(num + 1, afterRun); +} +afterRun(0); |
