From 528a25585b2093c602498c8a7a1c5e8a6594c46e Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Wed, 6 Nov 2024 13:07:26 +0100 Subject: [PATCH] perf: limit workspace project concurrency to available cores --- packages/vitest/src/node/workspace/resolveWorkspace.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vitest/src/node/workspace/resolveWorkspace.ts b/packages/vitest/src/node/workspace/resolveWorkspace.ts index 0d17233505fd..4f7be66f12b2 100644 --- a/packages/vitest/src/node/workspace/resolveWorkspace.ts +++ b/packages/vitest/src/node/workspace/resolveWorkspace.ts @@ -2,6 +2,7 @@ import type { Vitest } from '../core' import type { UserConfig, UserWorkspaceConfig, WorkspaceProjectConfiguration } from '../types/config' import type { WorkspaceProject } from '../workspace' import { existsSync, promises as fs } from 'node:fs' +import os from 'node:os' import { limitConcurrency } from '@vitest/runner/utils' import fg from 'fast-glob' import { relative, resolve } from 'pathe' @@ -51,7 +52,7 @@ export async function resolveWorkspace( const projectPromises: Promise[] = [] const fileProjects = [...configFiles, ...nonConfigDirectories] - const concurrent = limitConcurrency(5) + const concurrent = limitConcurrency(os.availableParallelism?.() || os.cpus().length || 5) for (const filepath of fileProjects) { // if file leads to the root config, then we can just reuse it because we already initialized it