Skip to content

Commit

Permalink
benchmark: add stream.compose benchmark
Browse files Browse the repository at this point in the history
PR-URL: #54308
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: James M Snell <[email protected]>
  • Loading branch information
jakecastelli authored and targos committed Aug 14, 2024
1 parent 100225f commit 51b8576
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions benchmark/streams/compose.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
'use strict';
const common = require('../common.js');

const {
PassThrough,
Readable,
Writable,
compose,
} = require('node:stream');

const bench = common.createBenchmark(main, {
n: [1e3],
});

function main({ n }) {
const cachedPassThroughs = [];
const cachedReadables = [];
const cachedWritables = [];

for (let i = 0; i < n; i++) {
const numberOfPassThroughs = 100;
const passThroughs = [];

for (let i = 0; i < numberOfPassThroughs; i++) {
passThroughs.push(new PassThrough());
}

const readable = Readable.from(['hello', 'world']);
const writable = new Writable({ objectMode: true, write: (chunk, encoding, cb) => cb() });

cachedPassThroughs.push(passThroughs);
cachedReadables.push(readable);
cachedWritables.push(writable);
}

bench.start();
for (let i = 0; i < n; i++) {
const composed = compose(cachedReadables[i], ...cachedPassThroughs[i], cachedWritables[i]);
composed.end();
}
bench.end(n);
}

0 comments on commit 51b8576

Please sign in to comment.