| 'use strict'; |
| const common = require('../common.js'); |
| const { |
| ReadableStream, |
| TransformStream, |
| WritableStream, |
| } = require('node:stream/web'); |
| const assert = require('assert'); |
| |
| const bench = common.createBenchmark(main, { |
| n: [50e3], |
| kind: ['ReadableStream', 'TransformStream', 'WritableStream'], |
| }); |
| |
| let rs, ws, ts; |
| |
| function main({ n, kind }) { |
| switch (kind) { |
| case 'ReadableStream': |
| bench.start(); |
| for (let i = 0; i < n; ++i) |
| rs = new ReadableStream(); |
| bench.end(n); |
| |
| // Avoid V8 deadcode (elimination) |
| assert.ok(rs); |
| break; |
| case 'WritableStream': |
| bench.start(); |
| for (let i = 0; i < n; ++i) |
| ws = new WritableStream(); |
| bench.end(n); |
| |
| // Avoid V8 deadcode (elimination) |
| assert.ok(ws); |
| break; |
| case 'TransformStream': |
| bench.start(); |
| for (let i = 0; i < n; ++i) |
| ts = new TransformStream(); |
| bench.end(n); |
| |
| // Avoid V8 deadcode (elimination) |
| assert.ok(ts); |
| break; |
| default: |
| throw new Error('Invalid kind'); |
| } |
| } |