91 lines
2.1 KiB
JavaScript
91 lines
2.1 KiB
JavaScript
|
|
||
|
/**
|
||
|
* 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;
|
||
|
}
|