postal.js/example/node/node_modules/socket.io/benchmarks/decode.bench.js

63 lines
1.8 KiB
JavaScript

/**
* Module dependencies.
*/
var benchmark = require( 'benchmark' )
, colors = require( 'colors' )
, io = require( '../' )
, parser = io.parser
, suite = new benchmark.Suite( 'Decode packet' );
suite.add( 'string', function () {
parser.decodePacket( '4:::"2"' );
} );
suite.add( 'event', function () {
parser.decodePacket( '5:::{"name":"woot"}' );
} );
suite.add( 'event+ack', function () {
parser.decodePacket( '5:1+::{"name":"tobi"}' );
} );
suite.add( 'event+data', function () {
parser.decodePacket( '5:::{"name":"edwald","args":[{"a": "b"},2,"3"]}' );
} );
suite.add( 'heartbeat', function () {
parser.decodePacket( '2:::' );
} );
suite.add( 'error', function () {
parser.decodePacket( '7:::2+0' );
} );
var payload = 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.add( 'payload', function () {
parser.decodePayload( payload );
} );
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;
}