InternAtom request benchmarks

This commit is contained in:
sidorares 2011-07-18 14:41:30 +10:00
parent 4164611a06
commit 4c1a2b8209
3 changed files with 97 additions and 1 deletions

View file

@ -254,7 +254,6 @@ module.exports.createClient = function()
// open stream
var stream;
var defaultTransportName = platformDefaultTransport[process.platform];
console.error('Cunnecting using ' + defaultTransportName + ' socket');
// use tcp if stated explicitly or if not defined at all
if (!defaultTransportName || defaultTransportName == 'tcp')
stream = net.createConnection(6000);

View file

@ -0,0 +1,45 @@
// WinServ2008R2, Intel(R) Core(TM) i7 CPU 870 @ 2.93GHz
// 0.4.3: 12000 +/-1000 InternAtom/sec
// 0.5.1: 12000 +/-1000
var x11 = require('../lib/x11');
var xclient = x11.createClient();
var counter = 0;
var t = +new Date();
var t0 = t;
var num = 10000;
xclient.on('connect', function(display) {
var X = this;
for (var i=0; i < num; ++i)
{
var hello = 'Hello, node.js ' + i;
X.InternAtom(false, hello, function(atomId) {
if (counter == 0)
{
var t1 = +new Date();
console.log('first reply after sending %d atoms in %d ms', num, t1-t);
t = t1;
}
//console.log('atom %d saved on server', atomId);
/*
if ((counter % 1000) == 0)
{
var t1 = +new Date();
console.log('received 1000 (up to %d) atom ids in %d ms', counter, t1 - t);
t = t1;
}
*/
counter++;
if (counter == num)
{
var t1 = +new Date();
var delta = t1 - t0;
console.log(delta);
console.log('reqs/msec: ' + num/delta);
console.log('msec per req: ' + delta/num);
process.exit(0); // TODO: X.end() ?
}
});
}
});

View file

@ -0,0 +1,52 @@
// test results:
// WinServ2008R2, Intel(R) Core(TM) i7 CPU 870 @ 2.93GHz
// 0.4.3: 8500 +/- 2000 InternAtom/sec
// 0.5.1: N/A
var x11 = require('../lib/x11');
var xclient = x11.createClient();
var reqcounter = 0;
var rescounter = 0;
var t = +new Date();
var t0 = t;
var num = 400000;
var X;
var t0 = +new Date();
function benchmarkAtoms()
{
if (reqcounter > num)
return;
X.InternAtom(false, 'test ' + reqcounter, function(atomId) {
rescounter++;
//console.log('%d received', rescounter);
//if ( (rescounter % 1000) == 0)
// console.log(reqcounter - rescounter);
if (rescounter == num)
{
var t1 = +new Date();
var delta = t1 - t0;
console.log(delta);
console.log('reqs/msec: ' + num/delta);
console.log('msec per req: ' + delta/num);
process.exit(0);
}
});
reqcounter++;
//console.log('%d sent', reqcounter);
process.nextTick(benchmarkAtoms);
}
xclient.on('connect', function(display) {
X = this;
benchmarkAtoms();
});