diff --git a/Makefile b/Makefile index bed8f36a54..48b38a9749 100644 --- a/Makefile +++ b/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 diff --git a/benchmark/idle_clients.js b/benchmark/idle_clients.js new file mode 100644 index 0000000000..edeb641ac1 --- /dev/null +++ b/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); + diff --git a/benchmark/idle_server.js b/benchmark/idle_server.js new file mode 100644 index 0000000000..5d08897d19 --- /dev/null +++ b/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); +