From 4c1a2b82092b9a32acd43e5d0350acca3ca2e806 Mon Sep 17 00:00:00 2001 From: sidorares Date: Mon, 18 Jul 2011 14:41:30 +1000 Subject: [PATCH] InternAtom request benchmarks --- lib/x11/xcore.js | 1 - test/atom_benchmark_buffered.js | 45 ++++++++++++++++++++++++++++ test/atom_benchmark_parallel.js | 52 +++++++++++++++++++++++++++++++++ 3 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 test/atom_benchmark_buffered.js create mode 100644 test/atom_benchmark_parallel.js diff --git a/lib/x11/xcore.js b/lib/x11/xcore.js index 22d44bd..4edead6 100644 --- a/lib/x11/xcore.js +++ b/lib/x11/xcore.js @@ -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); diff --git a/test/atom_benchmark_buffered.js b/test/atom_benchmark_buffered.js new file mode 100644 index 0000000..443d6d3 --- /dev/null +++ b/test/atom_benchmark_buffered.js @@ -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() ? + } + }); + } +}); diff --git a/test/atom_benchmark_parallel.js b/test/atom_benchmark_parallel.js new file mode 100644 index 0000000..40cd11d --- /dev/null +++ b/test/atom_benchmark_parallel.js @@ -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(); +});