Description
This should implement rust-lang/rust#48750, but for starters just containing the FROM-SCRATCH and SMALL-CHANGE usage scenarios.
I imagine this to be a separate page on perf.rlo, showing just two graphs, one for each usage scenario.
Each graph should contain a data point for each stable release (starting a few releases back, maybe with 1.17), the current beta, and the current nightly. The score should be calculated as the geometric mean of all build times for the given usage scenario, as listed in rust-lang/rust#48750.
The main tasks to accomplish this are:
- Add the missing benchmarks
- ripgrep
- webrender
- cargo
- winapi
- stm32f103xx
- encoding-rs (
cargo test --lib --no-run
) - clap-rs (
cargo test --no-run
) - regex (
cargo test --lib --no-run
) - syn (
cargo test --no-run
) - futures (
cargo test --test=all --no-run
)
- Allow for running benchmarks in a Rust version specific way (so we don't crash when trying to specify
-Cincremental
on versions that don't support it yet) - Setup the new page (e.g. under perf.rlo/dashboard.html)
That page should make sure that all benchmark results for computing a given aggregate result are available, otherwise the result would be misleadingly low.
The new benchmarks should also be displayed on the regular perf.rlo page. Some open questions:
- Do we need to start looking into running tests in parallel on multiple machines (because they are becoming more and more)?
- What to do with the
cargo test
benchmarks? Probably just treat them as separate benchmarks, that is, they would add another row instead of another column:encoding-rs
andencoding-rs (test)
, for example, would not be tied together in any way (although it would be nice if they could keep sharing the same source directory)
@Mark-Simulacrum, @nikomatsakis, thoughts?