'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); }