From 6e2720a588392dd129d938209afcbb36cc159b76 Mon Sep 17 00:00:00 2001 From: Nico Hinderling Date: Thu, 3 Sep 2026 16:47:47 -0700 Subject: [PATCH] fix(size): Keep demangle parallelism inside binary analysis workers The worker initializer disabled cwl-demangle's thread fan-out so the four-worker pool could not multiply into sixteen demangle subprocesses. That cap turned the heaviest binary into a single-threaded critical path: a main binary with 1.6M Swift symbols that demangled in about 333s under the serial analyzer now runs its 3200 chunks one at a time and blows through the 900s task deadline. Drop the override so each worker keeps the same four demangle threads the serial path had. Oversubscription only occurs while several heavy binaries overlap, and each subprocess handles a 500-symbol chunk and exits, so memory stays bounded. --- src/launchpad/size/analyzers/apple.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/launchpad/size/analyzers/apple.py b/src/launchpad/size/analyzers/apple.py index 474d1427..6d3dc114 100644 --- a/src/launchpad/size/analyzers/apple.py +++ b/src/launchpad/size/analyzers/apple.py @@ -91,7 +91,6 @@ def capture(cls) -> _WorkerContext: def _binary_worker_init(context: _WorkerContext) -> None: - os.environ["LAUNCHPAD_NO_PARALLEL_DEMANGLE"] = "true" setup_logging(verbose=context.verbose) if context.request_id is not None: bind_request_id(context.request_id)