From 9a134c8a10456bd5efbceaa7e19a235829efea17 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 14 Feb 2026 13:27:10 +0000 Subject: [PATCH] perf(test): tune parallel vitest worker split --- scripts/test-parallel.mjs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/test-parallel.mjs b/scripts/test-parallel.mjs index a4a9c3bd38..ccfaa11108 100644 --- a/scripts/test-parallel.mjs +++ b/scripts/test-parallel.mjs @@ -123,8 +123,9 @@ const parallelRuns = keepGatewaySerial ? runs.filter((entry) => entry.name !== " const serialRuns = keepGatewaySerial ? runs.filter((entry) => entry.name === "gateway") : []; const localWorkers = Math.max(4, Math.min(16, os.cpus().length)); const defaultUnitWorkers = localWorkers; -const defaultExtensionsWorkers = Math.max(1, Math.min(4, Math.floor(localWorkers / 4))); -const defaultGatewayWorkers = Math.max(1, Math.min(4, localWorkers)); +// Local perf: extensions tend to be the critical path under parallel vitest runs; give them more headroom. +const defaultExtensionsWorkers = Math.max(1, Math.min(6, Math.floor(localWorkers / 2))); +const defaultGatewayWorkers = Math.max(1, Math.min(2, Math.floor(localWorkers / 4))); // Keep worker counts predictable for local runs; trim macOS CI workers to avoid worker crashes/OOM. // In CI on linux/windows, prefer Vitest defaults to avoid cross-test interference from lower worker counts.