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.
58 lines
931 B
58 lines
931 B
'use strict' |
|
|
|
var max = 1000000 |
|
var fastqueue = require('./')(worker, 1) |
|
var async = require('async') |
|
var neo = require('neo-async') |
|
var asyncqueue = async.queue(worker, 1) |
|
var neoqueue = neo.queue(worker, 1) |
|
|
|
function bench (func, done) { |
|
var key = max + '*' + func.name |
|
var 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 runBench (done) { |
|
async.eachSeries([ |
|
benchSetImmediate, |
|
benchFastQ, |
|
benchNeoQueue, |
|
benchAsyncQueue |
|
], bench, done) |
|
} |
|
|
|
runBench(runBench)
|
|
|