mirror of
https://github.com/nodejs/node.git
synced 2024-11-25 08:19:38 +01:00
cd97e28860
Refs: https://github.com/nodejs/performance/issues/82 PR-URL: https://github.com/nodejs/node/pull/49622 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
'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;
|
|
}
|
|
}
|
|
}
|