Browse Source

Add idle connection test

v0.7.4-release
Ryan Dahl 14 years ago
parent
commit
3cf4827ae0
  1. 6
      Makefile
  2. 50
      benchmark/idle_clients.js
  3. 33
      benchmark/idle_server.js

6
Makefile

@ -85,4 +85,10 @@ dist: doc/node.1 doc/api.html
bench:
benchmark/http_simple_bench.sh
bench-idle:
./node benchmark/idle_server.js &
sleep 1
./node benchmark/idle_clients.js &
.PHONY: bench clean docclean dist distclean check uninstall install all test test-all website-upload

50
benchmark/idle_clients.js

@ -0,0 +1,50 @@
net = require('net');
var errors = 0, connections = 0;
function connect () {
process.nextTick(function () {
var s = net.Stream();
var gotConnected = false;
s.connect(9000);
s.on('connect', function () {
gotConnected = true;
connections++;
connect();
});
var haderror = false;
s.on('close', function () {
if (gotConnected) connections--;
if (!haderror) connect();
});
s.on('end', function () {
s.end();
});
s.on('error', function () {
haderror = true;
errors++;
});
});
}
connect();
var oldConnections, oldErrors;
setInterval(function () {
if (oldConnections != connections) {
oldConnections = connections;
console.log("CLIENT %d connections: %d", process.pid, connections);
}
if (oldErrors != errors) {
oldErrors = errors;
console.log("CLIENT %d errors: %d", process.pid, errors);
}
}, 1000);

33
benchmark/idle_server.js

@ -0,0 +1,33 @@
net = require('net');
connections = 0;
var errors = 0;
server = net.Server(function (socket) {
socket.on('end', function () {
socket.end();
});
socket.on('error', function () {
errors++;
});
});
server.listen(9000);
var oldConnections, oldErrors;
setInterval(function () {
if (oldConnections != server.connections) {
oldConnections = server.connections;
console.log("SERVER %d connections: %d", process.pid, server.connections);
}
if (oldErrors != errors) {
oldErrors = errors;
console.log("SERVER %d errors: %d", process.pid, errors);
}
}, 1000);
Loading…
Cancel
Save