summaryrefslogtreecommitdiff
path: root/benchmark/webstreams/creation.js
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark/webstreams/creation.js')
-rw-r--r--benchmark/webstreams/creation.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/benchmark/webstreams/creation.js b/benchmark/webstreams/creation.js
new file mode 100644
index 0000000000..085faba8b8
--- /dev/null
+++ b/benchmark/webstreams/creation.js
@@ -0,0 +1,49 @@
+'use strict';
+const common = require('../common.js');
+const {
+ ReadableStream,
+ TransformStream,
+ WritableStream,
+} = require('node:stream/web');
+const assert = require('assert');
+
+const bench = common.createBenchmark(main, {
+ n: [50e3],
+ kind: ['ReadableStream', 'TransformStream', 'WritableStream']
+});
+
+let rs, ws, ts;
+
+function main({ n, kind }) {
+ switch (kind) {
+ case 'ReadableStream':
+ bench.start();
+ for (let i = 0; i < n; ++i)
+ rs = new ReadableStream();
+ bench.end(n);
+
+ // Avoid V8 deadcode (elimination)
+ assert.ok(rs);
+ break;
+ case 'WritableStream':
+ bench.start();
+ for (let i = 0; i < n; ++i)
+ ws = new WritableStream();
+ bench.end(n);
+
+ // Avoid V8 deadcode (elimination)
+ assert.ok(ws);
+ break;
+ case 'TransformStream':
+ bench.start();
+ for (let i = 0; i < n; ++i)
+ ts = new TransformStream();
+ bench.end(n);
+
+ // Avoid V8 deadcode (elimination)
+ assert.ok(ts);
+ break;
+ default:
+ throw new Error('Invalid kind');
+ }
+}