MCPcopy Index your code
hub / github.com/nodejs/node / main

Function main

benchmark/webstreams/readable-read-buffered.js:14–54  ·  view source on GitHub ↗
({ n, bufferSize })

Source from the content-addressed store, hash-verified

12});
13
14async function main({ n, bufferSize }) {
15 let enqueued = 0;
16
17 const rs = new ReadableStream({
18 start(controller) {
19 // Pre-fill the buffer
20 for (let i = 0; i < bufferSize; i++) {
21 controller.enqueue('a');
22 enqueued++;
23 }
24 },
25 pull(controller) {
26 // Refill buffer when pulled
27 const toEnqueue = Math.min(bufferSize, n - enqueued);
28 for (let i = 0; i < toEnqueue; i++) {
29 controller.enqueue('a');
30 enqueued++;
31 }
32 if (enqueued >= n) {
33 controller.close();
34 }
35 },
36 }, {
37 // Use buffer size as high water mark to allow pre-buffering
38 highWaterMark: bufferSize,
39 });
40
41 const reader = rs.getReader();
42 let x = null;
43 let reads = 0;
44
45 bench.start();
46 while (reads < n) {
47 const { value, done } = await reader.read();
48 if (done) break;
49 x = value;
50 reads++;
51 }
52 bench.end(reads);
53 console.assert(x);
54}

Callers

nothing calls this directly

Calls 5

getReaderMethod · 0.95
assertMethod · 0.80
startMethod · 0.45
readMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected