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.
121 lines
2.4 KiB
121 lines
2.4 KiB
5 years ago
|
var max = 1000000
|
||
|
var parallel = require('./')()
|
||
|
var parallelNoResults = require('./')({ results: false })
|
||
|
var bench = require('fastbench')
|
||
|
var async = require('async')
|
||
|
var neo = require('neo-async')
|
||
|
var insync = require('insync')
|
||
|
var items = require('items')
|
||
|
var parallelize = require('parallelize')
|
||
|
|
||
|
function benchFastParallel (done) {
|
||
|
parallel(null, [somethingP, somethingP, somethingP], 42, done)
|
||
|
}
|
||
|
|
||
|
function benchFastParallelNoResults (done) {
|
||
|
parallelNoResults(null, [somethingP, somethingP, somethingP], 42, done)
|
||
|
}
|
||
|
|
||
|
function benchFastParallelEach (done) {
|
||
|
parallelNoResults(null, somethingP, [1, 2, 3], done)
|
||
|
}
|
||
|
|
||
|
function benchFastParallelEachResults (done) {
|
||
|
parallel(null, somethingP, [1, 2, 3], done)
|
||
|
}
|
||
|
|
||
|
function benchAsyncParallel (done) {
|
||
|
async.parallel([somethingA, somethingA, somethingA], done)
|
||
|
}
|
||
|
|
||
|
function benchInsyncParallel (done) {
|
||
|
insync.parallel([somethingA, somethingA, somethingA], done)
|
||
|
}
|
||
|
|
||
|
function benchNeoParallel (done) {
|
||
|
neo.parallel([somethingA, somethingA, somethingA], done)
|
||
|
}
|
||
|
|
||
|
function benchItemsParallel (done) {
|
||
|
items.parallel.execute([somethingA, somethingA, somethingA], done)
|
||
|
}
|
||
|
|
||
|
function benchParallelize (done) {
|
||
|
var next = parallelize(done)
|
||
|
|
||
|
somethingA(next())
|
||
|
somethingA(next())
|
||
|
somethingA(next())
|
||
|
}
|
||
|
|
||
|
function benchAsyncEach (done) {
|
||
|
async.each([1, 2, 3], somethingP, done)
|
||
|
}
|
||
|
|
||
|
function benchNeoEach (done) {
|
||
|
neo.each([1, 2, 3], somethingP, done)
|
||
|
}
|
||
|
|
||
|
function benchAsyncMap (done) {
|
||
|
async.map([1, 2, 3], somethingP, done)
|
||
|
}
|
||
|
|
||
|
function benchNeoMap (done) {
|
||
|
neo.map([1, 2, 3], somethingP, done)
|
||
|
}
|
||
|
|
||
|
function benchInsyncEach (done) {
|
||
|
insync.each([1, 2, 3], somethingP, done)
|
||
|
}
|
||
|
|
||
|
function benchInsyncMap (done) {
|
||
|
insync.map([1, 2, 3], somethingP, done)
|
||
|
}
|
||
|
|
||
|
var nextDone
|
||
|
var nextCount
|
||
|
|
||
|
function benchSetImmediate (done) {
|
||
|
nextCount = 3
|
||
|
nextDone = done
|
||
|
setImmediate(somethingImmediate)
|
||
|
setImmediate(somethingImmediate)
|
||
|
setImmediate(somethingImmediate)
|
||
|
}
|
||
|
|
||
|
function somethingImmediate () {
|
||
|
nextCount--
|
||
|
if (nextCount === 0) {
|
||
|
nextDone()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function somethingP (arg, cb) {
|
||
|
setImmediate(cb)
|
||
|
}
|
||
|
|
||
|
function somethingA (cb) {
|
||
|
setImmediate(cb)
|
||
|
}
|
||
|
|
||
|
var run = bench([
|
||
|
benchSetImmediate,
|
||
|
benchAsyncParallel,
|
||
|
benchAsyncEach,
|
||
|
benchAsyncMap,
|
||
|
benchNeoParallel,
|
||
|
benchNeoEach,
|
||
|
benchNeoMap,
|
||
|
benchInsyncParallel,
|
||
|
benchInsyncEach,
|
||
|
benchInsyncMap,
|
||
|
benchItemsParallel,
|
||
|
benchParallelize,
|
||
|
benchFastParallel,
|
||
|
benchFastParallelNoResults,
|
||
|
benchFastParallelEachResults,
|
||
|
benchFastParallelEach
|
||
|
], max)
|
||
|
|
||
|
run(run)
|