FAQ

  • What is being measured here?
    • Arewefastyet measures how long the Rust compiler takes to compile common Rust programs, not how fast compiled rust programs in general are.
    • Over the last few years, significant effort has been put into optimization. Recent releases of the Rust compiler are 25-30% faster than releases from a year ago on the workloads benchmarked here. There is more exciting work planned, like a new debug backend and profile guided optimization.
  • What does this website show that perf.rust-lang.org doesn't?
    • perf.rust-lang.org is great for monitoring for regressions on a day to day basis, perfect for compiler devs. But arewefastyet.rs aims to answer other questions, like
    • How much rustc has improved on certain workloads over a long time period.
    • How rustc performance is affected by different hardware. 8 cores is better than 4, all other things being equal, but how much more? On which workloads?
    • How much time in seconds it actually takes to compile common crates. Concerns about developer productivity could be allayed by seeing the number of seconds it takes to compile a complex binary like ripgrep.
  • What is Rust again?
    • Rust is a language empowering everyone to build reliable and efficient software. More details here
  • Does Rust compile programs slowly?
    • Programming language design involves trade-offs. This post discusses the choices the Rust project made over the years.
  • How can I improve compile times in my project?
  • Why use wall time as a metric? Why not something else?
    • This discussion touches on the options. Instruction count, the number of instructions executed by rustc during compilation is used by perf.rust-lang.org to track regressions in the compiler. But wall time is the metric that users care about.
  • What hardware did you use?
    • Virtual Machines with dedicated CPU
    • CPU model - Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz
    • Number of cores - 2, 4, 8, 16
    • Memory - 4GB, 8GB, 16GB, 32GB. (none of the builds used more than 1 GB of memory, so memory wasn't a bottleneck).
    • OS - Ubuntu 20.04 LTS. No changes made apart from the packages installed by ./collect_samples.sh
  • Can I see the raw data?
  • Will the hardware change? Will alternate configurations be supported?
    • Adding support for more hardware is something I'm not considering right now. I did consider adding benchmarks from a typical laptop or from a workstation but I decided against it because of concerns around reproducibility (laptops throttle aggressively) and future access to the same hardware. A VM with a dedicated CPU has neither of those issues.
  • How to contribute to rust development?
    • If you're looking for Rust projects to contribute to, keep an eye on the "calls for participation" section in This week in Rust, a newsletter. To contribute to Rust itself, check out
  • How to contribute to arewefastyet?
    • Contributions welcome to profiling code or frontend.
    • If there is a important rust repo that is different enough from the existing ones, open an issue. Importance is correlated with how widely used the tool (ripgrep, alacritty, rav1e) or library (hyper, serde, clap) is. If you'd like to add one, please follow the format in ./data/repos.json