perf(build): use all cores in host builds — wx lib, test apps, gal-webgl
env.sh exports a docker-safe JOBS=1 default, and every host build silently
inherited it (the docker kicad path dodges it by passing -j explicitly):
- build-wx-wasm.sh: the intended "${JOBS:-nproc}" fallback sat BELOW the
env.sh source, so it was dead code — full wx builds ran make -j1 on the
Mac and on CI. Compute the all-cores default before env.sh instead
(explicit JOBS/PARALLEL_JOBS still wins); also -j the PCRE pre-build.
- build-wasm-test.sh: same default fix, plus fan the post-link
hoist+asyncify loop out across JOBS with xargs -P. Per-app wasm-opt
can't feed many cores (small modules), so serial stays ~4min even with
BINARYEN_CORES=16; fanning across the 74 independent apps is what
scales. Safe: apply-asyncify is in-place per wasm, injector tmp is
per-js, HOIST_WASMOPT resolved once up front.
- build-gal-webgl-test.sh: make had no -j at all.
Measured on a 16-core M4 Max, clean test-app build: 15m36s (-j1) → 2m08s,
peak RAM 10.7 GB summed across all build processes (64 GB machine; CI
runners have 120 GB). Core counts are always derived from nproc at
runtime — nothing hardcoded, CI workers differ.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XeiSRRScdaox5jBueJNcyG
This commit is contained in:
parent
616bbbf67c
commit
348596c515
3 changed files with 38 additions and 14 deletions
|
|
@ -21,6 +21,10 @@ set -e
|
|||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
# Default to all cores BEFORE env.sh (its docker-safe JOBS=1 default would stick
|
||||
# otherwise); an explicit JOBS/PARALLEL_JOBS from the caller still wins.
|
||||
JOBS="${JOBS:-$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4)}"
|
||||
|
||||
# Source common environment (sets up local emsdk)
|
||||
QUIET=1 source "$SCRIPT_DIR/common/env.sh"
|
||||
|
||||
|
|
@ -76,9 +80,9 @@ python3 generate_shaders.py
|
|||
echo ""
|
||||
echo "Building..."
|
||||
if [ "$DEBUG_BUILD" = "1" ]; then
|
||||
make DEBUG=1
|
||||
make -j"${JOBS:-1}" DEBUG=1
|
||||
else
|
||||
make
|
||||
make -j"${JOBS:-1}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
|
|
|||
Loading…
Reference in a new issue