Skip to content

ci: the macOS bundle build takes 75 to 111 minutes since symbols were turned on #363

Closed

Description

@mubeda

The optimized bundle build in Native desktop - macOS arm64 took 38m 23s on 2026-11-05 ([optimized]). Since pull request 301 added the symbol profile (strip none, debug line-tables-only, split-debuginfo packed) it has taken 73m 41s (2026-11-07), 109m 51s (2026-11-09) and 106m 41s (2026-11-13), all with a Rust cache hit.

Not known:

  • how the time splits between the compiler, the link and dsymutil (the job log has no timing inside that phase);
  • why it grew from about 75 to about 107 minutes after 2026-11-07 (server source grew about 5% in that time).

Suggested first step: one CI run with cargo build --timings on the bundle build and a timestamp around dsymutil, then decide between dependency-level debug = false, split-debuginfo = unpacked with one later dsymutil, or leaving it.

Found while diagnosing the timeouts fixed in #359, which removed the second full build but not this cost.

🤖 Generated with Claude Code

Activity

  1. mubeda commented on Nov 14, 2026

    @mubeda
    OwnerAuthor

    Measured in pull request 370 (manual full run of the branch, 2026-11-14).

    • The time is in the compiler, not in dsymutil (seen once, 108 MB) and not in the symbol dump (under 30 s). Locally the symbol profile costs nothing: 1260 s against 1299 s.
    • The two workspace crates compile on one core with the shipped single codegen unit, and the Rust cache never stores them.
    • On the macOS arm64 runner (3 cores, 7 GB) free memory stayed near zero for about half an hour and swap in use rose from 33 MB to 975 MB during the build; the same compile holds 8.7 GB or more where memory is available.
    • With 16 codegen units for bibcode-server and bibcode-desktop in CI only, the bundle build took 59 min 18 s on macOS arm64 (87 min 51 s before, nothing cached both times) and 54 min 53 s on macOS x64 (69 to 101 min before). Release still builds the shipped profile.

    Not proven: what exactly doubled the build on 2026-11-06, since this run changed the codegen units too. Memory pressure is the supported explanation. Details: docs/plans/2026-11-14-ci-build-times/research/measured_ci_and_local.md.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions