-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Currently, the PR #232, implementing a concurrency flag to run tasks in parallel has a fixed upper bound for tasks running in parallel. This is also how other JS-focused monorepo tools such as Nx and Turborepo are doing it, but this could be optimized based on CPU and RAM usage.
Especially large monolithic monorepos often have hundreds of small libraries with fast running targets, but a few really large app targets, which eat most of the memory and CPU. Such repos would benefit from dynamic parallelism based on memory and cpu usage, such that it can have a high level of parallelism for small tasks, and can reduce the parallelism for resource intensive targets. This maximizes parallelism without running risk of OOM issues.
Technically this could be achieved by implementing a task queue and a resource watcher that guards pulling from the queue based on resource usage.
For example see:
BuildXL Flags - MaxRamUtilizationPercentage
Metadata
Metadata
Assignees
Labels
Type
Fields
Give feedbackPriority