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
						
					
					
				| 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)
 |