mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00
benchmark: add a benchmark for read() of ReadableStreams
Refs: https://github.com/nodejs/performance/issues/82 PR-URL: https://github.com/nodejs/node/pull/49622 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
This commit is contained in:
parent
2ccfb23b7f
commit
cd97e28860
1 changed files with 49 additions and 0 deletions
49
benchmark/webstreams/readable-read.js
Normal file
49
benchmark/webstreams/readable-read.js
Normal file
|
@ -0,0 +1,49 @@
|
|||
'use strict';
|
||||
const common = require('../common.js');
|
||||
const { ReadableStream } = require('node:stream/web');
|
||||
|
||||
const bench = common.createBenchmark(main, {
|
||||
n: [1e5],
|
||||
type: ['normal', 'byob'],
|
||||
});
|
||||
|
||||
async function main({ n, type }) {
|
||||
switch (type) {
|
||||
case 'normal': {
|
||||
const rs = new ReadableStream({
|
||||
pull: function(controller) {
|
||||
controller.enqueue('a');
|
||||
},
|
||||
});
|
||||
const reader = rs.getReader();
|
||||
let x = null;
|
||||
bench.start();
|
||||
for (let i = 0; i < n; i++) {
|
||||
const { value } = await reader.read();
|
||||
x = value;
|
||||
}
|
||||
bench.end(n);
|
||||
console.assert(x);
|
||||
break;
|
||||
}
|
||||
case 'byob': {
|
||||
const encode = new TextEncoder();
|
||||
const rs = new ReadableStream({
|
||||
type: 'bytes',
|
||||
pull: function(controller) {
|
||||
controller.enqueue(encode.encode('a'));
|
||||
},
|
||||
});
|
||||
const reader = rs.getReader({ mode: 'byob' });
|
||||
let x = null;
|
||||
bench.start();
|
||||
for (let i = 0; i < n; i++) {
|
||||
const { value } = await reader.read(new Uint8Array(1));
|
||||
x = value;
|
||||
}
|
||||
bench.end(n);
|
||||
console.assert(x);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue