arewefastyet
measureme
Our great sponsors
arewefastyet | measureme | |
---|---|---|
9 | 2 | |
19 | 320 | |
- | 0.9% | |
0.0 | 7.2 | |
about 1 year ago | about 1 month ago | |
Rust | Rust | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
arewefastyet
-
Rust Support in the Linux Kernel
That page averages all the builds across different code bases. It doesn’t specify which version/tag of which code base, nor does it talk about the hardware.
https://arewefastyet.pages.dev/ - This page tracks compile times across some common crates over all supported compiler versions, with different hardware (2, 4, 8, 16 cores). This used to be https://arewefastyet.rs but the domain expired.
-
Rust programming language: We want to take it into the mainstream, says Facebook
For what it's worth, Rust compile times have improved by 33-50% in the last two years, depending on the crate, compiler mode and number of cores - https://arewefastyet.rs. Also, debug builds will get approximately 50% faster when the cranelift backend lands.
You can check incremental compile times on http://arewefastyet.rs. Choose one compile mode (Debug OR Release, preferably Debug), one hardware config (4 cores let's say) and both profile modes (Clean, Incremental).
-
Reducing Rust Incremental Compilation Times on macOS by 70%
Compile times in rustc have been steadily improving with time, as shown here - https://arewefastyet.rs.
Every release doesn't make every workload faster, but over a long time horizon, the effect is clear. Rust 1.34 was released in April 2019 and since then many crates have become 33-50% faster to compile, depending on the hardware and the compiler mode (clean/incremental, check/debug/release).
Interestingly, the speedup mentioned in OP won't show up in these charts because that's a change on macOS and these benchmarks were recorded on Linux.
What is expected to be a gamechanger is the release of cranelift in 2021 or 2022. It's an alternate debug backend that promises much faster debug builds.
-
Announcing Rust 1.50.0
Thanks for your work on arewefastyet.rs, I was about to post a link to it haha
-
[ELI5]: How to write a simple custom Serde de/serializer?
I implemented something similar. Deserialising a comma separated strings into a struct - example. Hope that helps!
measureme
-
1.56 Compile time is through the roof!?
To dig further into one specific rustc process called by Cargo, cargo +nightly rustc -- -Z self-profile -p some_crate https://github.com/rust-lang/measureme/blob/master/summarize/README.md
-
Reducing Rust Incremental Compilation Times on macOS by 70%
> When does the Rust compiler spend most of it's time? Is it at the checking stage?
rustc has a self-profiler that can be used to answer this question [0], as well as a mode that times each compiler pass [1].
There's no single reason the Rust compiler is slow, as it depends quite heavily on the code being compiled. For some codebases, LLVM code takes up most of the time; in other codebases (e.g., extremely generic-heavy codebases), it'll be checking-related passes.
[0]: https://github.com/rust-lang/measureme/blob/master/summarize...
What are some alternatives?
bevy - A refreshingly simple data-driven game engine built in Rust
gdnative - Rust bindings for Godot 3
veloren - An open world, open source voxel RPG inspired by Dwarf Fortress and Cube World. This repository is a mirror. Please submit all PRs and issues on our GitLab page.
compiler-explorer - Run compilers interactively from your web browser and interact with the assembly
sccache - Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various cloud storage options, or alternatively, in local storage.
tch-rs - Rust bindings for the C++ api of PyTorch.
veloren
rust - Rust for the xtensa architecture. Built in targets for the ESP32 and ESP8266
prusti-dev - A static verifier for Rust, based on the Viper verification infrastructure.
rustc_codegen_cranelift - Cranelift based backend for rustc
cargo-llvm-lines - Count lines of LLVM IR per generic function
EdenSCM - A Scalable, User-Friendly Source Control System. [Moved to: https://github.com/facebook/sapling]