| 34 | } |
| 35 | |
| 36 | function benchClassic(chunk, datasize, n, totalOps) { |
| 37 | function run(cb) { |
| 38 | let remaining = datasize; |
| 39 | const r = new Readable({ |
| 40 | read() { |
| 41 | if (remaining <= 0) { this.push(null); return; } |
| 42 | const size = Math.min(remaining, chunk.length); |
| 43 | remaining -= size; |
| 44 | this.push(size === chunk.length ? chunk : chunk.subarray(0, size)); |
| 45 | }, |
| 46 | }); |
| 47 | const w = new Writable({ write(data, enc, cb) { cb(); } }); |
| 48 | pipeline(r, w, cb); |
| 49 | } |
| 50 | |
| 51 | let i = 0; |
| 52 | bench.start(); |
| 53 | (function next() { |
| 54 | if (i++ >= n) return bench.end(totalOps); |
| 55 | run(next); |
| 56 | })(); |
| 57 | } |
| 58 | |
| 59 | function benchWebStream(chunk, datasize, n, totalOps) { |
| 60 | async function run() { |