From aeb9bed63e3521088aef3b919ac5129a9822e83c Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Wed, 27 Oct 2010 02:52:49 -0700 Subject: [PATCH] Improve idle benchmarks --- benchmark/idle_clients.js | 29 ++++++++++++++++++++--------- benchmark/idle_server.js | 4 ---- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/benchmark/idle_clients.js b/benchmark/idle_clients.js index 9bb7862807..65988ab3ad 100644 --- a/benchmark/idle_clients.js +++ b/benchmark/idle_clients.js @@ -2,30 +2,41 @@ net = require('net'); var errors = 0, connections = 0; +var lastClose = 0; + +function maybeConnect (s) { + var now = new Date(); + if (now - lastClose > 5000) { + // Just connect immediately + connect(); + } else { + // Otherwise wait a little - see if this one is connected still. Just to + // avoid spinning at 100% cpu when the server totally rejects our + // connections. + setTimeout(function () { + if (s.writable && s.readable) connect(); + }, 100); + } +} + function connect () { process.nextTick(function () { var s = net.Stream(); var gotConnected = false; s.connect(9000); + s.on('connect', function () { gotConnected = true; connections++; - connect(); + maybeConnect(s); }); - var haderror = false; - s.on('close', function () { if (gotConnected) connections--; - //if (!haderror) connect(); - }); - - s.on('end', function () { - s.end(); + lastClose = new Date(); }); s.on('error', function () { - haderror = true; errors++; }); }); diff --git a/benchmark/idle_server.js b/benchmark/idle_server.js index 5d08897d19..53afc77901 100644 --- a/benchmark/idle_server.js +++ b/benchmark/idle_server.js @@ -5,10 +5,6 @@ var errors = 0; server = net.Server(function (socket) { - socket.on('end', function () { - socket.end(); - }); - socket.on('error', function () { errors++; });