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.
		
		
		
		
		
			
		
			
				
					
					
						
							82 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							82 lines
						
					
					
						
							1.4 KiB
						
					
					
				| 'use strict'
 | |
| 
 | |
| var max = 100000
 | |
| var async = require('async')
 | |
| var insync = require('insync')
 | |
| var neoAsync = require('neo-async')
 | |
| var fall = require('./')()
 | |
| var runWaterfall = require('run-waterfall')
 | |
| var waterfallize = require('waterfallize')
 | |
| var bench = require('fastbench')
 | |
| 
 | |
| var nextDone
 | |
| var nextCount
 | |
| 
 | |
| function benchSetImmediate (done) {
 | |
|   nextCount = 3
 | |
|   nextDone = done
 | |
|   setImmediate(somethingImmediate)
 | |
| }
 | |
| 
 | |
| function somethingImmediate () {
 | |
|   nextCount--
 | |
|   if (nextCount === 0) {
 | |
|     nextDone()
 | |
|   } else {
 | |
|     setImmediate(somethingImmediate)
 | |
|   }
 | |
| }
 | |
| 
 | |
| function somethingB (cb) {
 | |
|   setImmediate(cb)
 | |
| }
 | |
| 
 | |
| function somethingA (cb) {
 | |
|   setImmediate(cb)
 | |
| }
 | |
| 
 | |
| var toCall = [somethingA, somethingB, somethingB]
 | |
| function benchAsyncWaterfall (done) {
 | |
|   async.waterfall(toCall, done)
 | |
| }
 | |
| 
 | |
| function benchFastFall (done) {
 | |
|   fall(toCall, done)
 | |
| }
 | |
| 
 | |
| function benchWaterfallize (done) {
 | |
|   var next = waterfallize()
 | |
| 
 | |
|   next(toCall[0])
 | |
|   next(toCall[1])
 | |
|   next(toCall[2])
 | |
|   next(done)
 | |
| }
 | |
| 
 | |
| function benchRunWaterFall (done) {
 | |
|   runWaterfall(toCall, done)
 | |
| }
 | |
| 
 | |
| function benchInsync (done) {
 | |
|   insync.waterfall(toCall, done)
 | |
| }
 | |
| 
 | |
| function benchNeoAsync (done) {
 | |
|   neoAsync.waterfall(toCall, done)
 | |
| }
 | |
| 
 | |
| var compiled = require('./')(toCall)
 | |
| 
 | |
| var run = bench([
 | |
|   benchAsyncWaterfall,
 | |
|   benchInsync,
 | |
|   benchNeoAsync,
 | |
|   benchRunWaterFall,
 | |
|   benchSetImmediate,
 | |
|   benchWaterfallize,
 | |
|   benchFastFall,
 | |
|   compiled
 | |
| ], max)
 | |
| 
 | |
| run(run)
 |