diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/immediate/bench.js | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
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); |
