Skip to content

perf: parallel component builds in wilco build #5

Description

@hartym

Summary

build_components() in build.py spawns one esbuild subprocess per component sequentially. With 50+ components, build time grows linearly with no parallelism.

Current behavior

for name, component in registry.components.items():
    result = bundle_component(...)  # sequential subprocess

Proposed solution

Use concurrent.futures.ThreadPoolExecutor (4-8 workers) since Python just waits on esbuild subprocesses. Alternatively, investigate esbuild's multi-entry-point bundling to eliminate per-process spawn overhead.

Also consider incremental builds: compare source file hashes against existing manifest, skip unchanged components.

Context

Found during comprehensive review of feat/pre-compile-bundles-v2 (finding #16).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions