|
|
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}); };
|