docs/testing/2026-10-08-heavy-parallelism/benchmark.mjs.txt

import { spawn, execFileSync } from "node:child_process"; import { loadavg, availableParallelism } from "node:os"; import { writeFileSync, mkdirSync } from "node:fs"; import { performance } from "node:perf_hooks";

const out = ".local/benchmark"; mkdirSync(out, { recursive: true }); const batch = ["packages/protocol/test", "packages/settings/test"]; const runs = []; const snapshot = () => ({ at: new Date().toISOString(), load: loadavg(), top: execFileSync("top", ["-l", "2", "-s", "1", "-n", "10", "-o", "cpu", "-stats", "pid,command,cpu,mem"], { encoding: "utf8", }), }); for (const [index, jobs] of [2, 4, 2, 4].entries()) { const workers = jobs === 2 ? availableParallelism() : 4; const run = { index, jobs, workers, batch, before: snapshot(), samples: [], results: [] }; const started = performance.now(); let next = 0; const timer = setInterval( () => run.samples.push({ elapsedSeconds: (performance.now() - started) / 1000, load: loadavg() }), 1000, ); await Promise.all( Array.from({ length: jobs }, async () => { for (;;) { const job = next++; if (job >= 4) return; const jobStarted = performance.now(); const child = spawn( "pnpm", ["exec", "vitest", "run", ...batch, "--reporter=json", --outputFile=${out}/${index}-${job}.json], { env: { ...process.env, VITEST_MAX_WORKERS: String(workers), TURBO_CONCURRENCY: String(workers) }, stdio: ["ignore", "pipe", "pipe"], }, ); let output = ""; child.stdout.on("data", (data) => { output += data; }); child.stderr.on("data", (data) => { output += data; }); const code = await new Promise((resolve, reject) => { child.once("error", reject); child.once("exit", resolve); }); writeFileSync(${out}/${index}-${job}.log, output); run.results.push({ job, code, seconds: (performance.now() - jobStarted) / 1000 }); if (code !== 0) throw new Error(Benchmark job ${index}/${job} failed: ${output.slice(-1000)}); } }), ).finally(() => clearInterval(timer)); run.seconds = (performance.now() - started) / 1000; run.peakLoad1m = Math.max(run.before.load[0], ...run.samples.map((s) => s.load[0])); run.after = snapshot(); runs.push(run); writeFileSync( ${out}/results.json, JSON.stringify( { cores: availableParallelism(), order: "2 uncapped, 4 capped, 2 uncapped, 4 capped", runs }, null, 2, ), ); console.log(JSON.stringify({ index, jobs, workers, seconds: run.seconds, peakLoad1m: run.peakLoad1m })); }