12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 'use strict'
-
- var max = 1000000
- var fastqueue = require('./')(worker, 1)
- var async = require('async')
- var neo = require('neo-async')
- var asyncqueue = async.queue(worker, 1)
- var neoqueue = neo.queue(worker, 1)
-
- function bench (func, done) {
- var key = max + '*' + func.name
- var count = -1
-
- console.time(key)
- end()
-
- function end () {
- if (++count < max) {
- func(end)
- } else {
- console.timeEnd(key)
- if (done) {
- done()
- }
- }
- }
- }
-
- function benchFastQ (done) {
- fastqueue.push(42, done)
- }
-
- function benchAsyncQueue (done) {
- asyncqueue.push(42, done)
- }
-
- function benchNeoQueue (done) {
- neoqueue.push(42, done)
- }
-
- function worker (arg, cb) {
- setImmediate(cb)
- }
-
- function benchSetImmediate (cb) {
- worker(42, cb)
- }
-
- function runBench (done) {
- async.eachSeries([
- benchSetImmediate,
- benchFastQ,
- benchNeoQueue,
- benchAsyncQueue
- ], bench, done)
- }
-
- runBench(runBench)
|