diff --git a/benchmark/throughput-child.js b/benchmark/throughput-child.js new file mode 100644 index 00000000000..5cd5c4764db --- /dev/null +++ b/benchmark/throughput-child.js @@ -0,0 +1,25 @@ +var net = require('net'); +var received = 0; +var start = new Date(); +var socket = net.connect(8000); + +socket.on('data', function(d) { + received += d.length; +}); + +var interval = setInterval(function() { + // After 1 gigabyte shutdown. + if (received > 10 * 1024 * 1024 * 1024) { + socket.destroy(); + clearInterval(interval); + process.exit(0); + } else { + // Otherwise print some stats. + var now = new Date(); + var gigabytes = received / (1024 * 1024 * 1024); + var gigabits = gigabytes * 8.0; + var millisec = now - start; + var sec = millisec / 1000; + console.log((gigabits / sec) + " gbit/sec") + } +}, 1000); diff --git a/benchmark/throughput.js b/benchmark/throughput.js new file mode 100644 index 00000000000..a1ff1b653e8 --- /dev/null +++ b/benchmark/throughput.js @@ -0,0 +1,21 @@ +var fork = require('child_process').fork; +var net = require('net'); +var buffer = new Buffer(1024 * 1024); + +function write(socket) { + if (!socket.writable) return; + + socket.write(buffer, function() { + write(socket); + }); +} + +var server = net.createServer(function(socket) { + server.close(); + write(socket); +}); + +server.listen(8000, function() { + fork(__dirname + '/throughput-child.js'); +}); +