summaryrefslogtreecommitdiff
path: root/deps/node/benchmark/net/tcp-raw-pipe.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/benchmark/net/tcp-raw-pipe.js')
-rw-r--r--deps/node/benchmark/net/tcp-raw-pipe.js145
1 files changed, 0 insertions, 145 deletions
diff --git a/deps/node/benchmark/net/tcp-raw-pipe.js b/deps/node/benchmark/net/tcp-raw-pipe.js
deleted file mode 100644
index 89db42dc..00000000
--- a/deps/node/benchmark/net/tcp-raw-pipe.js
+++ /dev/null
@@ -1,145 +0,0 @@
-// In this benchmark, we connect a client to the server, and write
-// as many bytes as we can in the specified time (default = 10s)
-'use strict';
-
-const common = require('../common.js');
-const util = require('util');
-
-// If there are --dur=N and --len=N args, then
-// run the function with those settings.
-// if not, then queue up a bunch of child processes.
-const bench = common.createBenchmark(main, {
- len: [102400, 1024 * 1024 * 16],
- type: ['utf', 'asc', 'buf'],
- dur: [5]
-}, {
- flags: [ '--expose-internals', '--no-warnings' ]
-});
-
-function main({ dur, len, type }) {
- const {
- TCP,
- TCPConnectWrap,
- constants: TCPConstants
- } = common.binding('tcp_wrap');
- const { WriteWrap } = common.binding('stream_wrap');
- const PORT = common.PORT;
-
- function fail(err, syscall) {
- throw util._errnoException(err, syscall);
- }
-
- // Server
- const serverHandle = new TCP(TCPConstants.SERVER);
- var err = serverHandle.bind('127.0.0.1', PORT);
- if (err)
- fail(err, 'bind');
-
- err = serverHandle.listen(511);
- if (err)
- fail(err, 'listen');
-
- serverHandle.onconnection = function(err, clientHandle) {
- if (err)
- fail(err, 'connect');
-
- clientHandle.onread = function(buffer) {
- // We're not expecting to ever get an EOF from the client.
- // Just lots of data forever.
- if (!buffer)
- fail('read');
-
- const writeReq = new WriteWrap();
- writeReq.async = false;
- err = clientHandle.writeBuffer(writeReq, Buffer.from(buffer));
-
- if (err)
- fail(err, 'write');
-
- writeReq.oncomplete = function(status, handle, err) {
- if (err)
- fail(err, 'write');
- };
- };
-
- clientHandle.readStart();
- };
-
- // Client
- var chunk;
- switch (type) {
- case 'buf':
- chunk = Buffer.alloc(len, 'x');
- break;
- case 'utf':
- chunk = 'ΓΌ'.repeat(len / 2);
- break;
- case 'asc':
- chunk = 'x'.repeat(len);
- break;
- default:
- throw new Error(`invalid type: ${type}`);
- }
-
- const clientHandle = new TCP(TCPConstants.SOCKET);
- const connectReq = new TCPConnectWrap();
- var bytes = 0;
-
- err = clientHandle.connect(connectReq, '127.0.0.1', PORT);
- if (err)
- fail(err, 'connect');
-
- clientHandle.onread = function(buffer) {
- if (!buffer)
- fail('read');
-
- bytes += buffer.byteLength;
- };
-
- connectReq.oncomplete = function(err) {
- if (err)
- fail(err, 'connect');
-
- bench.start();
-
- clientHandle.readStart();
-
- setTimeout(() => {
- // Multiply by 2 since we're sending it first one way
- // then then back again.
- bench.end(2 * (bytes * 8) / (1024 * 1024 * 1024));
- process.exit(0);
- }, dur * 1000);
-
- while (clientHandle.writeQueueSize === 0)
- write();
- };
-
- function write() {
- const writeReq = new WriteWrap();
- writeReq.oncomplete = afterWrite;
- var err;
- switch (type) {
- case 'buf':
- err = clientHandle.writeBuffer(writeReq, chunk);
- break;
- case 'utf':
- err = clientHandle.writeUtf8String(writeReq, chunk);
- break;
- case 'asc':
- err = clientHandle.writeAsciiString(writeReq, chunk);
- break;
- }
-
- if (err)
- fail(err, 'write');
- }
-
- function afterWrite(err, handle) {
- if (err)
- fail(err, 'write');
-
- while (clientHandle.writeQueueSize === 0)
- write();
- }
-}