| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | 'use strict'const max = 1000000const fastqueue = require('./')(worker, 1)const { promisify } = require('util')const immediate = promisify(setImmediate)const qPromise = require('./').promise(immediate, 1)const async = require('async')const neo = require('neo-async')const asyncqueue = async.queue(worker, 1)const neoqueue = neo.queue(worker, 1)function bench (func, done) {  const key = max + '*' + func.name  let count = -1  console.time(key)  end()  function end () {    if (++count < max) {      func(end)    } else {      console.timeEnd(key)      if (done) {        done()      }    }  }}function benchFastQ (done) {  fastqueue.push(42, done)}function benchAsyncQueue (done) {  asyncqueue.push(42, done)}function benchNeoQueue (done) {  neoqueue.push(42, done)}function worker (arg, cb) {  setImmediate(cb)}function benchSetImmediate (cb) {  worker(42, cb)}function benchFastQPromise (done) {  qPromise.push(42).then(function () { done() }, done)}function runBench (done) {  async.eachSeries([    benchSetImmediate,    benchFastQ,    benchNeoQueue,    benchAsyncQueue,    benchFastQPromise  ], bench, done)}runBench(runBench)
 |