blob: 931539dff0293a1a18105ce948df06e65df8fc2b [file] [log] [blame]
Mathias Bynens79e2cf02020-05-29 14:46:171'use strict'
2
3var max = 1000000
4var fastqueue = require('./')(worker, 1)
5var async = require('async')
6var neo = require('neo-async')
7var asyncqueue = async.queue(worker, 1)
8var neoqueue = neo.queue(worker, 1)
9
10function bench (func, done) {
11 var key = max + '*' + func.name
12 var count = -1
13
14 console.time(key)
15 end()
16
17 function end () {
18 if (++count < max) {
19 func(end)
20 } else {
21 console.timeEnd(key)
22 if (done) {
23 done()
24 }
25 }
26 }
27}
28
29function benchFastQ (done) {
30 fastqueue.push(42, done)
31}
32
33function benchAsyncQueue (done) {
34 asyncqueue.push(42, done)
35}
36
37function benchNeoQueue (done) {
38 neoqueue.push(42, done)
39}
40
41function worker (arg, cb) {
42 setImmediate(cb)
43}
44
45function benchSetImmediate (cb) {
46 worker(42, cb)
47}
48
49function runBench (done) {
50 async.eachSeries([
51 benchSetImmediate,
52 benchFastQ,
53 benchNeoQueue,
54 benchAsyncQueue
55 ], bench, done)
56}
57
58runBench(runBench)