This tour uses a recorded clean release build of ripgrep to practice reading the timeline, inspecting a command, and following a file relationship. You only need a browser; there is no need to install Buildprof or compile ripgrep.
Open the ripgrep release build.
If you already have Buildprof installed, buildprof open --example ripgrep
opens the same example.
The screenshots below show the hosted recording in Buildprof 0.2.4: about 11.23 seconds, 98 processes, and peak concurrency of 12. The hosted example may be replaced with a newer recording; exact times, process IDs, and layout can then differ.
- The long cargo build bar spans the whole build. The green
rustcbars beneath it are crate compilations; several overlap early in the recording. - rustc rg runs near the end, after the other crates finish.
- The short bars below its right edge form the final linking chain.
Click rustc rg, the long green bar near the right end of the timeline. Drag the divider above Current Selection upward if you need more room for the details.
- The outlined bar is your selected process. Its lifetime is about 3.44 s.
- Under Process → Program → Command, the arguments include
--crate-name rgandcrates/core/main.rs. This identifies what Rust was compiling. The working directory tells you where that relative path starts. - Under Dependencies → Produced by, you can see the processes which produced its inputs. There are 33 actions in this recording.
- Under Process tree → Spawned, the short
cccommand is the start of the linking chain. Follow that process link, then its children, to inspect the chain. Each selection shows that process's own command and lifetime. Click the originalrustc rgbar again to return to it.
Under Produced by, click rustc log. The file shown alongside it begins
with liblog and ends in .rlib; it is a compiled Rust library consumed by
the final crate.
Buildprof selects that earlier compiler process and zooms the timeline in around it.
- Its command identifies the
logcrate. You have moved from a consumer to the process which produced one of its inputs, without needing to know Cargo's internal build graph. - Consumed by follows the relationship in the other direction: nine
later compilations read the
logcrate's outputs. - The first of them is rustc rg. Click it to return. These links describe observed file use; they do not by themselves establish why the build system chose a particular start time.
Reload the example, or zoom back out with W / S and pan with A / D,
so the whole build is visible again. Then click the yellow interval in
Build concurrency above the middle of the rustc rg bar.
- The outlined interval lasts about 3.3 seconds.
- The details show 1 active leaf process. Cargo is still alive, but its running child means Cargo does not add another leaf to the count.
- The one process is rustc rg.
This explains the timeline's shape: most crate compilations have finished, leaving the final crate. It does not tell us how many CPU cores that compiler is using internally.
Click and drag across the Process tree track over roughly seconds 2–6. Then open Build aggregation in the bottom panel.
- The shaded region is the selected time range.
- Build aggregation summarizes the processes in that range.
- Tool, Directory, and Action choose how to group them.
- Grouped by Tool, the
rustcgroup holds about a dozen Rust compilations in this window, in contrast to the single process in the tail. Click the row to list the individual compilations; Back to pivot returns to the groups.
The totals sum full lifetimes of overlapping processes which never spawned children. They are not clipped to the selection, and parallel work adds together. Do not compare the sum directly with the window's elapsed time.
You have inspected a compiler command, followed an input to its producer,
and compared a parallel interval with a serial tail. Use the
investigation guide to repeat those steps on your
own build and collect compiler details when a process needs a closer look.
The selected rustc rg process has no compiler-internal phase tracks; those
require another recording with compiler tracing enabled and nightly Rust.




