summaryrefslogtreecommitdiff
path: root/deps/node/benchmark/net/net-c2s.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/benchmark/net/net-c2s.js')
-rw-r--r--deps/node/benchmark/net/net-c2s.js100
1 files changed, 0 insertions, 100 deletions
diff --git a/deps/node/benchmark/net/net-c2s.js b/deps/node/benchmark/net/net-c2s.js
deleted file mode 100644
index 732bda13..00000000
--- a/deps/node/benchmark/net/net-c2s.js
+++ /dev/null
@@ -1,100 +0,0 @@
-// Test the speed of .pipe() with sockets
-'use strict';
-
-const common = require('../common.js');
-const net = require('net');
-const PORT = common.PORT;
-
-const bench = common.createBenchmark(main, {
- len: [64, 102400, 1024 * 1024 * 16],
- type: ['utf', 'asc', 'buf'],
- dur: [5],
-});
-
-var chunk;
-var encoding;
-
-function main({ dur, len, type }) {
- switch (type) {
- case 'buf':
- chunk = Buffer.alloc(len, 'x');
- break;
- case 'utf':
- encoding = 'utf8';
- chunk = 'ΓΌ'.repeat(len / 2);
- break;
- case 'asc':
- encoding = 'ascii';
- chunk = 'x'.repeat(len);
- break;
- default:
- throw new Error(`invalid type: ${type}`);
- }
-
- const reader = new Reader();
- const writer = new Writer();
-
- // the actual benchmark.
- const server = net.createServer((socket) => {
- socket.pipe(writer);
- });
-
- server.listen(PORT, () => {
- const socket = net.connect(PORT);
- socket.on('connect', () => {
- bench.start();
-
- reader.pipe(socket);
-
- setTimeout(() => {
- const bytes = writer.received;
- const gbits = (bytes * 8) / (1024 * 1024 * 1024);
- bench.end(gbits);
- process.exit(0);
- }, dur * 1000);
- });
- });
-}
-
-function Writer() {
- this.received = 0;
- this.writable = true;
-}
-
-Writer.prototype.write = function(chunk, encoding, cb) {
- this.received += chunk.length;
-
- if (typeof encoding === 'function')
- encoding();
- else if (typeof cb === 'function')
- cb();
-
- return true;
-};
-
-// Doesn't matter, never emits anything.
-Writer.prototype.on = function() {};
-Writer.prototype.once = function() {};
-Writer.prototype.emit = function() {};
-Writer.prototype.prependListener = function() {};
-
-
-function flow() {
- const dest = this.dest;
- const res = dest.write(chunk, encoding);
- if (!res)
- dest.once('drain', this.flow);
- else
- process.nextTick(this.flow);
-}
-
-function Reader() {
- this.flow = flow.bind(this);
- this.readable = true;
-}
-
-Reader.prototype.pipe = function(dest) {
- this.dest = dest;
- this.flow();
- return dest;
-};