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
| var Benchmark = require('benchmark');
| var parser = require('../index');
|
| function test(packet, deferred) {
| var encoder = new parser.Encoder();
| var decoder = new parser.Decoder();
| encoder.encode(packet, function(encodedPackets) {
| var decoder = new parser.Decoder();
| decoder.on('decoded', function(packet) {
| deferred.resolve();
| });
|
| decoder.add(encodedPackets[0]);
| });
| }
|
| var dataObject = {
| 'a': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17],
| 'b': 'xxxyyyzzzalsdfalskdjfalksdjfalksdjfalksdjfjjfjfjfjjfjfjfj',
| 'data': {
| 'is': 'cool',
| 'or': {
| 'is': {
| 'it': true
| }
| }
| }
| };
| var bigArray = [];
| for (var i = 0; i < 250; i++) {
| bigArray.push(dataObject);
| }
|
|
|
| module.exports = function(callback) {
| var suite = new Benchmark.Suite();
|
| suite.add('small json parse', {defer: true, fn: function(deferred) {
| var packet = {
| type: parser.EVENT,
| nsp: '/bench',
| data: dataObject
| };
| test(packet, deferred);
| }})
| .add('big json parse', {defer: true, fn: function(deferred) {
| var packet = {
| type: parser.EVENT,
| nsp: '/bench',
| data: bigArray
| };
| test(packet, deferred);
| }})
| .add('json with small binary parse', {defer: true, fn: function(deferred) {
| var packet = {
| type: parser.EVENT,
| nsp: '/bench',
| data: {'a': [1, 2, 3], 'b': 'xxxyyyzzz', 'data': new Buffer(1000)}
| };
| test(packet, deferred);
| }})
| .add('json with big binary parse', {defer: true, fn: function(deferred) {
| var bigBinaryData = {
| bin1: new Buffer(10000),
| arr: bigArray,
| bin2: new Buffer(10000),
| bin3: new Buffer(10000)
| };
| var packet = {
| type: parser.EVENT,
| nsp: '/bench',
| data: bigBinaryData
| };
| test(packet, deferred);
| }})
| .on('complete', function() {
| callback(this);
| })
| .run({'async': true});
| };
|
|