123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- 'use strict'
-
- const max = 1000000
- const 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)
|