• Sources: post, HN discussion
  • Summary: Lalit Maganti released buildprof, an open-source Linux build tracer that records every process a build launches with ptrace and file reads and writes with a seccomp filter, then renders the result in a soft fork of the Perfetto UI, so it works across Cargo, Ninja, Make, Zig and wrapper scripts without per-build-system integration. He used it on Bun's reported drop from 30m06s to 5m37s on Linux CI after the move from Zig to Rust, and the trace showed one ld.lld invocation running alone for over sixteen minutes at the end of the Zig build under Full LTO, roughly two-thirds of the total. The downloaded WebKit archives were also built with Full LTO, so rebuilding WebKit and ICU with ThinLTO was required and took the Zig build from 24m24s to 15m11s, with the remaining gap structural, because Bun's Rust code splits across more than 90 crates while the Zig build compiled as a single module.
  • Why it matters: A process-level tracer attributes build time across build system boundaries, which is where a single serialized linker step like this one stays invisible to per-tool timing.

send feedback on this story