Started on node.js+socket.io+mongoDB on the backend for more responsivnes

This commit is contained in:
KasperRT
2015-04-09 00:18:13 +02:00
parent 076f8e821f
commit a8a705bd77
1889 changed files with 322175 additions and 68 deletions

View File

@@ -0,0 +1,10 @@
var bencher = require('./index');
bencher(function(benchmark) {
function logMean(test) {
console.log(test.name + ' mean run time: ' + test.stats.mean);
}
for (var i = 0; i < benchmark.length; i++) {
logMean(benchmark[i]);
}
});

View File

@@ -0,0 +1,81 @@
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});
};