rc-web@69
|
1
|
rc-web@69
|
2 /**
|
rc-web@69
|
3 * Module dependencies.
|
rc-web@69
|
4 */
|
rc-web@69
|
5
|
rc-web@69
|
6 var benchmark = require('benchmark')
|
rc-web@69
|
7 , colors = require('colors')
|
rc-web@69
|
8 , io = require('../')
|
rc-web@69
|
9 , parser = io.parser
|
rc-web@69
|
10 , suite = new benchmark.Suite('Decode packet');
|
rc-web@69
|
11
|
rc-web@69
|
12 suite.add('string', function () {
|
rc-web@69
|
13 parser.decodePacket('4:::"2"');
|
rc-web@69
|
14 });
|
rc-web@69
|
15
|
rc-web@69
|
16 suite.add('event', function () {
|
rc-web@69
|
17 parser.decodePacket('5:::{"name":"woot"}');
|
rc-web@69
|
18 });
|
rc-web@69
|
19
|
rc-web@69
|
20 suite.add('event+ack', function () {
|
rc-web@69
|
21 parser.decodePacket('5:1+::{"name":"tobi"}');
|
rc-web@69
|
22 });
|
rc-web@69
|
23
|
rc-web@69
|
24 suite.add('event+data', function () {
|
rc-web@69
|
25 parser.decodePacket('5:::{"name":"edwald","args":[{"a": "b"},2,"3"]}');
|
rc-web@69
|
26 });
|
rc-web@69
|
27
|
rc-web@69
|
28 suite.add('heartbeat', function () {
|
rc-web@69
|
29 parser.decodePacket('2:::');
|
rc-web@69
|
30 });
|
rc-web@69
|
31
|
rc-web@69
|
32 suite.add('error', function () {
|
rc-web@69
|
33 parser.decodePacket('7:::2+0');
|
rc-web@69
|
34 });
|
rc-web@69
|
35
|
rc-web@69
|
36 var payload = parser.encodePayload([
|
rc-web@69
|
37 parser.encodePacket({ type: 'message', data: '5', endpoint: '' })
|
rc-web@69
|
38 , parser.encodePacket({ type: 'message', data: '53d', endpoint: '' })
|
rc-web@69
|
39 , parser.encodePacket({ type: 'message', data: 'foobar', endpoint: '' })
|
rc-web@69
|
40 , parser.encodePacket({ type: 'message', data: 'foobarbaz', endpoint: '' })
|
rc-web@69
|
41 , parser.encodePacket({ type: 'message', data: 'foobarbazfoobarbaz', endpoint: '' })
|
rc-web@69
|
42 , parser.encodePacket({ type: 'message', data: 'foobarbaz', endpoint: '' })
|
rc-web@69
|
43 , parser.encodePacket({ type: 'message', data: 'foobar', endpoint: '' })
|
rc-web@69
|
44 ]);
|
rc-web@69
|
45
|
rc-web@69
|
46 suite.add('payload', function () {
|
rc-web@69
|
47 parser.decodePayload(payload);
|
rc-web@69
|
48 });
|
rc-web@69
|
49
|
rc-web@69
|
50 suite.on('cycle', function (bench, details) {
|
rc-web@69
|
51 console.log('\n' + suite.name.grey, details.name.white.bold);
|
rc-web@69
|
52 console.log([
|
rc-web@69
|
53 details.hz.toFixed(2).cyan + ' ops/sec'.grey
|
rc-web@69
|
54 , details.count.toString().white + ' times executed'.grey
|
rc-web@69
|
55 , 'benchmark took '.grey + details.times.elapsed.toString().white + ' sec.'.grey
|
rc-web@69
|
56 ,
|
rc-web@69
|
57 ].join(', '.grey));
|
rc-web@69
|
58 });
|
rc-web@69
|
59
|
rc-web@69
|
60 if (!module.parent) {
|
rc-web@69
|
61 suite.run();
|
rc-web@69
|
62 } else {
|
rc-web@69
|
63 module.exports = suite;
|
rc-web@69
|
64 }
|