bench.js
 1  /* eslint no-console: "off" */
 2  
 3  var asynckit = require('./')
 4    , async    = require('async')
 5    , assert   = require('assert')
 6    , expected = 0
 7    ;
 8  
 9  var Benchmark = require('benchmark');
10  var suite = new Benchmark.Suite;
11  
12  var source = [];
13  for (var z = 1; z < 100; z++)
14  {
15    source.push(z);
16    expected += z;
17  }
18  
19  suite
20  // add tests
21  
22  .add('async.map', function(deferred)
23  {
24    var total = 0;
25  
26    async.map(source,
27    function(i, cb)
28    {
29      setImmediate(function()
30      {
31        total += i;
32        cb(null, total);
33      });
34    },
35    function(err, result)
36    {
37      assert.ifError(err);
38      assert.equal(result[result.length - 1], expected);
39      deferred.resolve();
40    });
41  }, {'defer': true})
42  
43  
44  .add('asynckit.parallel', function(deferred)
45  {
46    var total = 0;
47  
48    asynckit.parallel(source,
49    function(i, cb)
50    {
51      setImmediate(function()
52      {
53        total += i;
54        cb(null, total);
55      });
56    },
57    function(err, result)
58    {
59      assert.ifError(err);
60      assert.equal(result[result.length - 1], expected);
61      deferred.resolve();
62    });
63  }, {'defer': true})
64  
65  
66  // add listeners
67  .on('cycle', function(ev)
68  {
69    console.log(String(ev.target));
70  })
71  .on('complete', function()
72  {
73    console.log('Fastest is ' + this.filter('fastest').map('name'));
74  })
75  // run async
76  .run({ 'async': true });