| 57 | } |
| 58 | |
| 59 | function benchWebStream(chunk, datasize, n, totalOps) { |
| 60 | async function run() { |
| 61 | let remaining = datasize; |
| 62 | const rs = new ReadableStream({ |
| 63 | pull(controller) { |
| 64 | if (remaining <= 0) { controller.close(); return; } |
| 65 | const size = Math.min(remaining, chunk.length); |
| 66 | remaining -= size; |
| 67 | controller.enqueue( |
| 68 | size === chunk.length ? chunk : chunk.subarray(0, size)); |
| 69 | }, |
| 70 | }); |
| 71 | const ws = new WritableStream({ write() {} }); |
| 72 | await rs.pipeTo(ws); |
| 73 | } |
| 74 | |
| 75 | (async () => { |
| 76 | bench.start(); |
| 77 | for (let i = 0; i < n; i++) await run(); |
| 78 | bench.end(totalOps); |
| 79 | })(); |
| 80 | } |
| 81 | |
| 82 | function benchIter(chunk, datasize, n, totalOps) { |
| 83 | const { pipeTo } = require('stream/iter'); |