Add idle connection test
authorRyan Dahl <ry@tinyclouds.org>
Fri, 15 Oct 2010 17:05:22 +0000 (12:05 -0500)
committerRyan Dahl <ry@tinyclouds.org>
Fri, 15 Oct 2010 17:11:50 +0000 (12:11 -0500)
Makefile
benchmark/idle_clients.js [new file with mode: 0644]
benchmark/idle_server.js [new file with mode: 0644]

index bed8f36..48b38a9 100644 (file)
--- 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 (file)
index 0000000..edeb641
--- /dev/null
@@ -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 (file)
index 0000000..5d08897
--- /dev/null
@@ -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);
+