You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
'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)
|