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