/** * 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; }