Upload Kmake

This commit is contained in:
Gorochu
2026-05-26 23:36:42 -07:00
parent ba051b2f74
commit 555ec72358
41615 changed files with 13344630 additions and 1 deletions

View File

@ -0,0 +1,101 @@
'use strict';
const common = require('../common.js');
const {
ReadableStream,
ReadableStreamDefaultReader,
ReadableStreamBYOBReader,
TransformStream,
WritableStream,
} = require('node:stream/web');
const assert = require('assert');
const bench = common.createBenchmark(main, {
n: [50e3],
kind: [
'ReadableStream',
'TransformStream',
'WritableStream',
'ReadableStreamDefaultReader',
'ReadableStreamBYOBReader',
'ReadableStream.tee',
],
});
let readableStream;
let transformStream;
let writableStream;
let readableStreamDefaultReader;
let readableStreamBYOBReader;
let teeResult;
function main({ n, kind }) {
switch (kind) {
case 'ReadableStream':
bench.start();
for (let i = 0; i < n; ++i)
readableStream = new ReadableStream();
bench.end(n);
// Avoid V8 deadcode (elimination)
assert.ok(readableStream);
break;
case 'WritableStream':
bench.start();
for (let i = 0; i < n; ++i)
writableStream = new WritableStream();
bench.end(n);
// Avoid V8 deadcode (elimination)
assert.ok(writableStream);
break;
case 'TransformStream':
bench.start();
for (let i = 0; i < n; ++i)
transformStream = new TransformStream();
bench.end(n);
// Avoid V8 deadcode (elimination)
assert.ok(transformStream);
break;
case 'ReadableStreamDefaultReader': {
const readers = Array.from({ length: n }, () => new ReadableStream());
bench.start();
for (let i = 0; i < n; ++i)
readableStreamDefaultReader = new ReadableStreamDefaultReader(readers[i]);
bench.end(n);
// Avoid V8 deadcode (elimination)
assert.ok(readableStreamDefaultReader);
break;
}
case 'ReadableStreamBYOBReader': {
const readers = Array.from({ length: n }, () => new ReadableStream({ type: 'bytes' }));
bench.start();
for (let i = 0; i < n; ++i)
readableStreamBYOBReader = new ReadableStreamBYOBReader(readers[i]);
bench.end(n);
// Avoid V8 deadcode (elimination)
assert.ok(readableStreamBYOBReader);
break;
}
case 'ReadableStream.tee': {
const streams = Array.from({ length: n }, () => new ReadableStream());
bench.start();
for (let i = 0; i < n; ++i)
teeResult = streams[i].tee();
bench.end(n);
// Avoid V8 deadcode (elimination)
assert.ok(teeResult);
break;
}
default:
throw new Error('Invalid kind');
}
}

View File

@ -0,0 +1,52 @@
'use strict';
const common = require('../common.js');
const { MessageChannel } = require('worker_threads');
const { WritableStream, TransformStream, ReadableStream } = require('stream/web');
const bench = common.createBenchmark(main, {
payload: ['WritableStream', 'ReadableStream', 'TransformStream'],
n: [1e4],
});
function main({ n, payload: payloadType }) {
let createPayload;
let messages = 0;
switch (payloadType) {
case 'WritableStream':
createPayload = () => new WritableStream();
break;
case 'ReadableStream':
createPayload = () => new ReadableStream();
break;
case 'TransformStream':
createPayload = () => new TransformStream();
break;
default:
throw new Error('Unsupported payload type');
}
const { port1, port2 } = new MessageChannel();
port2.onmessage = onMessage;
function onMessage() {
if (messages++ === n) {
bench.end(n);
port1.close();
} else {
send();
}
}
function send() {
const stream = createPayload();
port1.postMessage(stream, [stream]);
}
bench.start();
send();
}

View File

@ -0,0 +1,36 @@
'use strict';
const common = require('../common.js');
const {
ReadableStream,
WritableStream,
} = require('node:stream/web');
const bench = common.createBenchmark(main, {
n: [5e5],
highWaterMarkR: [512, 1024, 2048, 4096],
highWaterMarkW: [512, 1024, 2048, 4096],
});
async function main({ n, highWaterMarkR, highWaterMarkW }) {
const b = Buffer.alloc(1024);
let i = 0;
const rs = new ReadableStream({
highWaterMark: highWaterMarkR,
pull: function(controller) {
if (i++ < n) {
controller.enqueue(b);
} else {
controller.close();
}
},
});
const ws = new WritableStream({
highWaterMark: highWaterMarkW,
write(chunk, controller) {},
close() { bench.end(n); },
});
bench.start();
rs.pipeTo(ws);
}

View File

@ -0,0 +1,31 @@
'use strict';
const common = require('../common.js');
const {
ReadableStream,
} = require('node:stream/web');
const bench = common.createBenchmark(main, {
n: [1e5],
});
async function main({ n }) {
const rs = new ReadableStream({
pull: function(controller) {
controller.enqueue(1);
},
});
let x = 0;
bench.start();
for await (const chunk of rs) {
x += chunk;
if (x > n) {
break;
}
}
// Use x to ensure V8 does not optimize away the loop as a noop.
console.assert(x);
bench.end(n);
}

View 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;
}
}
}