From be9777c5f6c1f1dc3542083d6b7dd6223812d47d Mon Sep 17 00:00:00 2001 From: Mathias Buus Date: Tue, 6 Feb 2018 22:48:54 +0100 Subject: [PATCH] benchmark: add stream.pipe benchmarks PR-URL: https://github.com/nodejs/node/pull/18617 Reviewed-By: Anna Henningsen Reviewed-By: Benjamin Gruenbaum Reviewed-By: Ruben Bridgewater Reviewed-By: Anatoli Papirovski Reviewed-By: Benedikt Meurer Reviewed-By: Matteo Collina Reviewed-By: Luigi Pinca Reviewed-By: Tiancheng "Timothy" Gu --- benchmark/streams/pipe-object-mode.js | 24 ++++++++++++++++++++++++ benchmark/streams/pipe.js | 24 ++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 benchmark/streams/pipe-object-mode.js create mode 100644 benchmark/streams/pipe.js diff --git a/benchmark/streams/pipe-object-mode.js b/benchmark/streams/pipe-object-mode.js new file mode 100644 index 00000000000000..d52b2238780ccb --- /dev/null +++ b/benchmark/streams/pipe-object-mode.js @@ -0,0 +1,24 @@ +'use strict'; + +const common = require('../common'); +const { Readable, Writable } = require('stream'); + +const bench = common.createBenchmark(main, { + n: [5e6] +}); + +function main({ n }) { + const b = {}; + const r = new Readable({ objectMode: true }); + const w = new Writable({ objectMode: true }); + + var i = 0; + + r._read = () => r.push(i++ === n ? null : b); + w._write = (data, enc, cb) => cb(); + + bench.start(); + + r.pipe(w); + w.on('finish', () => bench.end(n)); +} diff --git a/benchmark/streams/pipe.js b/benchmark/streams/pipe.js new file mode 100644 index 00000000000000..a7d67b7d6908c8 --- /dev/null +++ b/benchmark/streams/pipe.js @@ -0,0 +1,24 @@ +'use strict'; + +const common = require('../common'); +const { Readable, Writable } = require('stream'); + +const bench = common.createBenchmark(main, { + n: [5e6] +}); + +function main({ n }) { + const b = new Buffer(1024); + const r = new Readable(); + const w = new Writable(); + + var i = 0; + + r._read = () => r.push(i++ === n ? null : b); + w._write = (data, enc, cb) => cb(); + + bench.start(); + + r.pipe(w); + w.on('finish', () => bench.end(n)); +}