raspberryGPIOhtmlserver/node_modules/socket.io-parser/bench/index.js
node_modules/socket.io-parser/bench/index.jsRaw
1var Benchmark = require('benchmark');
2var parser = require('../index');
3
4function test(packet, deferred) {
5 var encoder = new parser.Encoder();
6 var decoder = new parser.Decoder();
7 encoder.encode(packet, function(encodedPackets) {
8 var decoder = new parser.Decoder();
9 decoder.on('decoded', function(packet) {
10 deferred.resolve();
11 });
12
13 decoder.add(encodedPackets[0]);
14 });
15}
16
17var dataObject = {
18 'a': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17],
19 'b': 'xxxyyyzzzalsdfalskdjfalksdjfalksdjfalksdjfjjfjfjfjjfjfjfj',
20 'data': {
21 'is': 'cool',
22 'or': {
23 'is': {
24 'it': true
25 }
26 }
27 }
28};
29var bigArray = [];
30for (var i = 0; i < 250; i++) {
31 bigArray.push(dataObject);
32}
33
34
35
36module.exports = function(callback) {
37 var suite = new Benchmark.Suite();
38
39 suite.add('small json parse', {defer: true, fn: function(deferred) {
40 var packet = {
41 type: parser.EVENT,
42 nsp: '/bench',
43 data: dataObject
44 };
45 test(packet, deferred);
46 }})
47 .add('big json parse', {defer: true, fn: function(deferred) {
48 var packet = {
49 type: parser.EVENT,
50 nsp: '/bench',
51 data: bigArray
52 };
53 test(packet, deferred);
54 }})
55 .add('json with small binary parse', {defer: true, fn: function(deferred) {
56 var packet = {
57 type: parser.EVENT,
58 nsp: '/bench',
59 data: {'a': [1, 2, 3], 'b': 'xxxyyyzzz', 'data': new Buffer(1000)}
60 };
61 test(packet, deferred);
62 }})
63 .add('json with big binary parse', {defer: true, fn: function(deferred) {
64 var bigBinaryData = {
65 bin1: new Buffer(10000),
66 arr: bigArray,
67 bin2: new Buffer(10000),
68 bin3: new Buffer(10000)
69 };
70 var packet = {
71 type: parser.EVENT,
72 nsp: '/bench',
73 data: bigBinaryData
74 };
75 test(packet, deferred);
76 }})
77 .on('complete', function() {
78 callback(this);
79 })
80 .run({'async': true});
81};