Browse Source

Merge pull request #862 from fintura/remove_stuff

Remove very old benchmark files
greenkeeper-update-all
Ruben Bridgewater 9 years ago
parent
commit
43d1efb9dd
  1. 40
      benches/hiredis_parser.js
  2. 15
      benches/re_sub_test.js
  3. 31
      benches/reconnect_test.js
  4. 8
      benches/stress/codec.js
  5. 38
      benches/stress/pubsub/pub.js
  6. 10
      benches/stress/pubsub/run
  7. 22
      benches/stress/pubsub/server.js
  8. 51
      benches/stress/rpushblpop/pub.js
  9. 6
      benches/stress/rpushblpop/run
  10. 31
      benches/stress/rpushblpop/server.js
  11. 13
      benches/stress/speed/00
  12. 13
      benches/stress/speed/plot
  13. BIN
      benches/stress/speed/size-rate.png
  14. 86
      benches/stress/speed/speed.js
  15. 20
      benches/sub_quit_test.js
  16. 0
      benchmarks/buffer_bench.js
  17. 0
      benchmarks/diff_multi_bench_output.js
  18. 0
      benchmarks/multi_bench.js

40
benches/hiredis_parser.js

@ -1,40 +0,0 @@
'use strict';
var Parser = require('../lib/parser/hiredis').Parser;
var assert = require('assert');
/*
This test makes sure that exceptions thrown inside of "reply" event handlers
are not trapped and mistakenly emitted as parse errors.
*/
(function testExecuteDoesNotCatchReplyCallbackExceptions() {
var parser = new Parser();
var replies = [{}];
parser.reader = {
feed: function() {},
get: function() {
return replies.shift();
}
};
var emittedError = false;
var caughtException = false;
parser
.on('error', function() {
emittedError = true;
})
.on('reply', function() {
throw new Error('bad');
});
try {
parser.execute();
} catch (err) {
caughtException = true;
}
assert.equal(caughtException, true);
assert.equal(emittedError, false);
})();

15
benches/re_sub_test.js

@ -1,15 +0,0 @@
'use strict';
var client = require('../index').createClient();
var client2 = require('../index').createClient();
client.once('subscribe', function (channel, count) {
client.unsubscribe('x');
client.subscribe('x', function () {
client.quit();
client2.quit();
});
client2.publish('x', 'hi');
});
client.subscribe('x');

31
benches/reconnect_test.js

@ -1,31 +0,0 @@
'use strict';
var redis = require("../index").createClient(null, null, {
// max_attempts: 4
});
redis.on("error", function (err) {
console.log("Redis says: " + err);
});
redis.on("ready", function () {
console.log("Redis ready.");
});
redis.on("reconnecting", function (arg) {
console.log("Redis reconnecting: " + JSON.stringify(arg));
});
redis.on("connect", function () {
console.log("Redis connected.");
});
setInterval(function () {
var now = Date.now();
redis.set("now", now, function (err, res) {
if (err) {
console.log(now + " Redis reply error: " + err);
} else {
console.log(now + " Redis reply: " + res);
}
});
}, 100);

8
benches/stress/codec.js

@ -1,8 +0,0 @@
'use strict';
var json = {
encode: JSON.stringify,
decode: JSON.parse
};
module.exports = json;

38
benches/stress/pubsub/pub.js

@ -1,38 +0,0 @@
'use strict';
var freemem = require('os').freemem;
var profiler = require('v8-profiler');
var codec = require('../codec');
var sent = 0;
var exec;
var pub = require('redis').createClient(null, null, {
//command_queue_high_water: 5,
//command_queue_low_water: 1
})
.on('ready', function() {
this.emit('drain');
})
.on('drain', function() {
process.nextTick(exec);
});
var payload = '1'; for (var i = 0; i < 12; ++i) payload += payload;
console.log('Message payload length', payload.length);
function exec() {
pub.publish('timeline', codec.encode({ foo: payload }));
++sent;
if (!pub.should_buffer) {
process.nextTick(exec);
}
}
profiler.takeSnapshot('s_0');
exec();
setInterval(function() {
profiler.takeSnapshot('s_' + sent);
console.error('sent', sent, 'free', freemem(), 'cmdqlen', pub.command_queue.length, 'offqlen', pub.offline_queue.length);
}, 2000);

10
benches/stress/pubsub/run

@ -1,10 +0,0 @@
#!/bin/sh
node server.js &
node server.js &
node server.js &
node server.js &
node server.js &
node server.js &
node server.js &
node server.js &
node --debug pub.js

22
benches/stress/pubsub/server.js

@ -1,22 +0,0 @@
'use strict';
var freemem = require('os').freemem;
var codec = require('../codec');
var id = Math.random();
var recv = 0;
require('redis').createClient()
.on('ready', function() {
this.subscribe('timeline');
})
.on('message', function(channel, message) {
if (message) {
message = codec.decode(message);
++recv;
}
});
setInterval(function() {
console.error('id', id, 'received', recv, 'free', freemem());
}, 2000);

51
benches/stress/rpushblpop/pub.js

@ -1,51 +0,0 @@
'use strict';
var freemem = require('os').freemem;
//var profiler = require('v8-profiler');
var codec = require('../codec');
var sent = 0;
var exec;
var pub = require('redis').createClient(null, null, {
//command_queue_high_water: 5,
//command_queue_low_water: 1
})
.on('ready', function() {
this.del('timeline');
this.emit('drain');
})
.on('drain', function() {
process.nextTick(exec);
});
var payload = '1'; for (var i = 0; i < 12; ++i) payload += payload;
console.log('Message payload length', payload.length);
function exec() {
pub.rpush('timeline', codec.encode({ foo: payload }));
++sent;
if (!pub.should_buffer) {
process.nextTick(exec);
}
}
//profiler.takeSnapshot('s_0');
exec();
setInterval(function() {
//var ss = profiler.takeSnapshot('s_' + sent);
//console.error(ss.stringify());
pub.llen('timeline', function(err, result) {
console.error('sent', sent, 'free', freemem(),
'cmdqlen', pub.command_queue.length, 'offqlen', pub.offline_queue.length,
'llen', result
);
});
}, 2000);
/*setTimeout(function() {
process.exit();
}, 30000);*/

6
benches/stress/rpushblpop/run

@ -1,6 +0,0 @@
#!/bin/sh
node server.js &
#node server.js &
#node server.js &
#node server.js &
node --debug pub.js

31
benches/stress/rpushblpop/server.js

@ -1,31 +0,0 @@
'use strict';
var freemem = require('os').freemem;
var codec = require('../codec');
var id = Math.random();
var recv = 0;
var cmd = require('redis').createClient();
require('redis').createClient()
.on('ready', function() {
this.emit('timeline');
})
.on('timeline', function() {
var self = this;
this.blpop('timeline', 0, function(err, result) {
var message = result[1];
if (message) {
message = codec.decode(message);
++recv;
}
self.emit('timeline');
});
});
setInterval(function() {
cmd.llen('timeline', function(err, result) {
console.error('id', id, 'received', recv, 'free', freemem(), 'llen', result);
});
}, 2000);

13
benches/stress/speed/00

@ -1,13 +0,0 @@
# size JSON msgpack bison
26602 2151.0170848180414
25542 ? 2842.589272665782
24835 ? ? 7280.4538397469805
6104 6985.234528557929
5045 ? 7217.461392841478
4341 ? ? 14261.406335354604
4180 15864.633685636572
4143 ? 12954.806235781925
4141 ? ? 44650.70733912719
75 114227.07313350472
40 ? 30162.440062810834
39 ? ? 119815.66013519121

13
benches/stress/speed/plot

@ -1,13 +0,0 @@
#!/bin/sh
gnuplot >size-rate.jpg << _EOF_
set terminal png nocrop enhanced font verdana 12 size 640,480
set logscale x
set logscale y
set grid
set xlabel 'Serialized object size, octets'
set ylabel 'decode(encode(obj)) rate, 1/sec'
plot '00' using 1:2 title 'json' smooth bezier, '00' using 1:3 title 'msgpack' smooth bezier, '00' using 1:4 title 'bison' smooth bezier
_EOF_

BIN
benches/stress/speed/size-rate.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

86
benches/stress/speed/speed.js

@ -1,86 +0,0 @@
'use strict';
var msgpack = require('node-msgpack');
var bison = require('bison');
var codec = {
JSON: {
encode: JSON.stringify,
decode: JSON.parse
},
msgpack: {
encode: msgpack.pack,
decode: msgpack.unpack
},
bison: bison
};
var obj, l;
function run(obj, codec) {
var t1 = Date.now();
var n = 10000;
for (var i = 0; i < n; ++i) {
codec.decode(l = codec.encode(obj));
}
var t2 = Date.now();
//console.log('DONE', n*1000/(t2-t1), 'codecs/sec, length=', l.length);
return [n*1000/(t2-t1), l.length];
}
function series(obj, cname, n) {
var rate = 0;
var len = 0;
for (var i = 0; i < n; ++i) {
var r = run(obj, codec[cname]);
rate += r[0];
len += r[1];
}
rate /= n;
len /= n;
console.log(cname + ' ' + rate + ' ' + len);
return [rate, len];
}
function forObj(obj) {
var r = {
JSON: series(obj, 'JSON', 20),
msgpack: series(obj, 'msgpack', 20),
bison: series(obj, 'bison', 20)
};
return r;
}
var s = '0';
for (var i = 0; i < 12; ++i) s += s;
obj = {
foo: s,
arrrrrr: [{a:1,b:false,c:null,d:1.0}, 1111, 2222, 33333333],
rand: [],
a: s,
ccc: s,
b: s + s + s
};
for (i = 0; i < 100; ++i) obj.rand.push(Math.random());
forObj(obj);
obj = {
foo: s,
arrrrrr: [{a:1,b:false,c:null,d:1.0}, 1111, 2222, 33333333],
rand: []
};
for (i = 0; i < 100; ++i) obj.rand.push(Math.random());
forObj(obj);
obj = {
foo: s,
arrrrrr: [{a:1,b:false,c:null,d:1.0}, 1111, 2222, 33333333],
rand: []
};
forObj(obj);
obj = {
arrrrrr: [{a:1,b:false,c:null,d:1.0}, 1111, 2222, 33333333],
rand: []
};
forObj(obj);

20
benches/sub_quit_test.js

@ -1,20 +0,0 @@
'use strict';
var client = require("redis").createClient(),
client2 = require("redis").createClient();
client.subscribe("something");
client.on("subscribe", function (channel, count) {
console.log("Got sub: " + channel);
client.unsubscribe("something");
});
client.on("unsubscribe", function (channel, count) {
console.log("Got unsub: " + channel + ", quitting");
client.quit();
});
// exercise unsub before sub
client2.unsubscribe("something");
client2.subscribe("another thing");
client2.quit();

0
benches/buffer_bench.js → benchmarks/buffer_bench.js

0
diff_multi_bench_output.js → benchmarks/diff_multi_bench_output.js

0
multi_bench.js → benchmarks/multi_bench.js

Loading…
Cancel
Save