Skip to content

Commit 54870ea

Browse files
xtx1130RafaelGSS
authored andcommitted
benchmark: add stream destroy benchmark
PR-URL: #44533 Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Erick Wendel <[email protected]>
1 parent 457673b commit 54870ea

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

benchmark/streams/destroy.js

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
'use strict';
2+
const common = require('../common.js');
3+
const {
4+
Duplex,
5+
Readable,
6+
Transform,
7+
Writable,
8+
} = require('stream');
9+
10+
const bench = common.createBenchmark(main, {
11+
n: [1e6],
12+
kind: ['duplex', 'readable', 'transform', 'writable']
13+
});
14+
15+
function main({ n, kind }) {
16+
switch (kind) {
17+
case 'duplex':
18+
new Duplex({});
19+
new Duplex();
20+
21+
bench.start();
22+
for (let i = 0; i < n; ++i)
23+
new Duplex().destroy();
24+
bench.end(n);
25+
break;
26+
case 'readable':
27+
new Readable({});
28+
new Readable();
29+
30+
bench.start();
31+
for (let i = 0; i < n; ++i)
32+
new Readable().destroy();
33+
bench.end(n);
34+
break;
35+
case 'writable':
36+
new Writable({});
37+
new Writable();
38+
39+
bench.start();
40+
for (let i = 0; i < n; ++i)
41+
new Writable().destroy();
42+
bench.end(n);
43+
break;
44+
case 'transform':
45+
new Transform({});
46+
new Transform();
47+
48+
bench.start();
49+
for (let i = 0; i < n; ++i)
50+
new Transform().destroy();
51+
bench.end(n);
52+
break;
53+
default:
54+
throw new Error('Invalid kind');
55+
}
56+
}

0 commit comments

Comments
 (0)