1'use strict'; 2const common = require('../common.js'); 3const { 4 ReadableStream, 5 WritableStream, 6} = require('node:stream/web'); 7 8const bench = common.createBenchmark(main, { 9 n: [5e6], 10 highWaterMarkR: [512, 1024, 2048, 4096], 11 highWaterMarkW: [512, 1024, 2048, 4096], 12}); 13 14 15async function main({ n, highWaterMarkR, highWaterMarkW }) { 16 const b = Buffer.alloc(1024); 17 let i = 0; 18 const rs = new ReadableStream({ 19 highWaterMark: highWaterMarkR, 20 pull: function(controller) { 21 if (i++ === n) { 22 controller.enqueue(b); 23 } else { 24 controller.close(); 25 } 26 }, 27 }); 28 const ws = new WritableStream({ 29 highWaterMark: highWaterMarkW, 30 write(chunk, controller) {}, 31 close() { bench.end(n); }, 32 }); 33 34 bench.start(); 35 rs.pipeTo(ws); 36} 37