Skip to content

Commit 8b71fa7

Browse files
jakecastellitargos
authored andcommittedOct 2, 2024
benchmark: add stream.compose benchmark
PR-URL: #54308 Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent c004aba commit 8b71fa7

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
 

Diff for: ‎benchmark/streams/compose.js

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
'use strict';
2+
const common = require('../common.js');
3+
4+
const {
5+
PassThrough,
6+
Readable,
7+
Writable,
8+
compose,
9+
} = require('node:stream');
10+
11+
const bench = common.createBenchmark(main, {
12+
n: [1e3],
13+
});
14+
15+
function main({ n }) {
16+
const cachedPassThroughs = [];
17+
const cachedReadables = [];
18+
const cachedWritables = [];
19+
20+
for (let i = 0; i < n; i++) {
21+
const numberOfPassThroughs = 100;
22+
const passThroughs = [];
23+
24+
for (let i = 0; i < numberOfPassThroughs; i++) {
25+
passThroughs.push(new PassThrough());
26+
}
27+
28+
const readable = Readable.from(['hello', 'world']);
29+
const writable = new Writable({ objectMode: true, write: (chunk, encoding, cb) => cb() });
30+
31+
cachedPassThroughs.push(passThroughs);
32+
cachedReadables.push(readable);
33+
cachedWritables.push(writable);
34+
}
35+
36+
bench.start();
37+
for (let i = 0; i < n; i++) {
38+
const composed = compose(cachedReadables[i], ...cachedPassThroughs[i], cachedWritables[i]);
39+
composed.end();
40+
}
41+
bench.end(n);
42+
}

0 commit comments

Comments
 (0)
Please sign in to comment.