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.

94 lines
1.9 KiB

var max = 1000000
var series = require('./')()
var seriesNoResults = require('./')({ results: false })
var async = require('async')
var neo = require('neo-async')
var bench = require('fastbench')
var tinyEachAsync = require('tiny-each-async')
function benchFastSeries (done) {
series(null, [somethingP, somethingP, somethingP], 42, done)
}
function benchFastSeriesNoResults (done) {
seriesNoResults(null, [somethingP, somethingP, somethingP], 42, done)
}
function benchFastSeriesEach (done) {
seriesNoResults(null, somethingP, [1, 2, 3], done)
}
function benchFastSeriesEachResults (done) {
series(null, somethingP, [1, 2, 3], done)
}
function benchAsyncSeries (done) {
async.series([somethingA, somethingA, somethingA], done)
}
function benchAsyncEachSeries (done) {
async.eachSeries([1, 2, 3], somethingP, done)
}
function benchAsyncMapSeries (done) {
async.mapSeries([1, 2, 3], somethingP, done)
}
function benchNeoSeries (done) {
neo.series([somethingA, somethingA, somethingA], done)
}
function benchNeoEachSeries (done) {
neo.eachSeries([1, 2, 3], somethingP, done)
}
function benchNeoMapSeries (done) {
neo.mapSeries([1, 2, 3], somethingP, done)
}
function benchTinyEachAsync (done) {
tinyEachAsync([1, 2, 3], 1, somethingP, done)
}
var nextDone
var nextCount
function benchSetImmediate (done) {
nextCount = 3
nextDone = done
setImmediate(somethingImmediate)
}
function somethingImmediate () {
nextCount--
if (nextCount === 0) {
nextDone()
} else {
setImmediate(somethingImmediate)
}
}
function somethingP (arg, cb) {
setImmediate(cb)
}
function somethingA (cb) {
setImmediate(cb)
}
var run = bench([
benchSetImmediate,
benchAsyncSeries,
benchAsyncEachSeries,
benchAsyncMapSeries,
benchNeoSeries,
benchNeoEachSeries,
benchNeoMapSeries,
benchTinyEachAsync,
benchFastSeries,
benchFastSeriesNoResults,
benchFastSeriesEach,
benchFastSeriesEachResults
], max)
run(run)