aboutsummaryrefslogtreecommitdiffstats
path: root/signaling-server/node_modules/socket.io/benchmarks/encode.bench.js
blob: 5037702d31d6e786cccae442d2ab9476316ca083 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/**
 * Module dependencies.
 */

var benchmark = require('benchmark')
  , colors = require('colors')
  , io = require('../')
  , parser = io.parser
  , suite = new benchmark.Suite('Encode packet');

suite.add('string', function () {
  parser.encodePacket({
      type: 'json'
    , endpoint: ''
    , data: '2'
  });
});

suite.add('event', function () {
  parser.encodePacket({
      type: 'event'
    , name: 'woot'
    , endpoint: ''
    , args: []
  });
});

suite.add('event+ack', function () {
  parser.encodePacket({
      type: 'json'
    , id: 1
    , ack: 'data'
    , endpoint: ''
    , data: { a: 'b' }
  });
});

suite.add('event+data', function () {
  parser.encodePacket({
      type: 'event'
    , name: 'edwald'
    , endpoint: ''
    , args: [{a: 'b'}, 2, '3']
  });
});

suite.add('heartbeat', function () {
  parser.encodePacket({
      type: 'heartbeat'
    , endpoint: ''
  })
});

suite.add('error', function () {
  parser.encodePacket({
      type: 'error'
    , reason: 'unauthorized'
    , advice: 'reconnect'
    , endpoint: ''
  })
})

suite.add('payload', function () {
  parser.encodePayload([
      parser.encodePacket({ type: 'message', data: '5', endpoint: '' })
    , parser.encodePacket({ type: 'message', data: '53d', endpoint: '' })
    , parser.encodePacket({ type: 'message', data: 'foobar', endpoint: '' })
    , parser.encodePacket({ type: 'message', data: 'foobarbaz', endpoint: '' })
    , parser.encodePacket({ type: 'message', data: 'foobarbazfoobarbaz', endpoint: '' })
    , parser.encodePacket({ type: 'message', data: 'foobarbaz', endpoint: '' })
    , parser.encodePacket({ type: 'message', data: 'foobar', endpoint: '' })
  ]);
});

suite.on('cycle', function (bench, details) {
  console.log('\n' + suite.name.grey, details.name.white.bold);
  console.log([
      details.hz.toFixed(2).cyan + ' ops/sec'.grey
    , details.count.toString().white + ' times executed'.grey
    , 'benchmark took '.grey + details.times.elapsed.toString().white + ' sec.'.grey
    , 
  ].join(', '.grey));
});

if (!module.parent) {
  suite.run();
} else {
  module.exports = suite;
}