I made a build visualizer to understand Bun's compile times
Points and comments are a snapshot, not live.
An open-source tool traces process trees to analyze why builds are slow, applied to Bun's Zig vs Rust compile times.
The author built buildprof, an open-source tracing tool that records every subprocess a build command launches and lays them out on a timeline, making parallelism and bottlenecks visible. They used it to investigate Jarred Sumner's claim that Bun's Rust build was >5× faster than its Zig build on Linux. Profiling Bun 1.3.14 (Zig) and 1.4.0 (Rust) showed the Zig build's final linker step (Full LTO) dominated at 16m35s of 24m24s total. Switching to ThinLTO for both Bun and its WebKit dependency reduced the Zig build to 15m11s, but the Rust build remained faster partly because Bun's Rust code is split into >90 crates, enabling parallelism, while Zig compiled as a single module. The author stopped before further optimization since the Zig code is now obsolete.
What commenters are saying
Commenters praised the depth of the investigation. Several noted that the comparison isn't fully fair because Zig's compiler isn't yet parallelized; one commenter pointed out that Zig defaults to one semantic analysis thread due to limitations that are being addressed. Another noted that splitting Zig into multiple modules would require manually exporting C ABI functions, losing language features like slices and generics. There was interest in tools like ElectricInsight and requests for macOS support. The author updated to say serializing Rust's crates only added 1 minute, suggesting the gap has other causes beyond parallelism.