1.56 Compile time is through the roof!?

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • rust

    Empowering everyone to build reliable and efficient software.

  • I'm seeing a similar thing, and it's not the linker. I was using mold originally, but turned it off in case that was the problem, and perf is showing all the time in rustc. See more details at https://github.com/rust-lang/rust/issues/90180

  • measureme

    Support crate for rustc's self-profiling feature

  • 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

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • axum

    Ergonomic and modular web framework built with Tokio, Tower, and Hyper

  • Seems that Axum projects are hit by this https://github.com/tokio-rs/axum/issues/200

  • libreddit

    Private front-end for Reddit

  • https://libredd.it ftw! (on desktop, and on mobile)

  • cargo-llvm-lines

    Count lines of LLVM IR per generic function

  • If you want to dig further, I see though that some of this time is spent in codegen (generating LLVM IR) and in LLVM. Maybe something is generating much more IR than before, which then takes a lot of time to process. Another tool is https://github.com/dtolnay/cargo-llvm-lines which shows the number of lines of unoptimized LLVM IR for each of your functions. In general it can be useful to optimize compile times of your project, in this case it might show which area of your code triggers this bug.

  • cargo-bisect-rustc

    Bisects rustc, either nightlies or CI artifacts

  • Finally, https://github.com/rust-lang/cargo-bisect-rustc/blob/master/TUTORIAL.md can bisect Nightlies or (if recent enough, I think CI artifacts are kept 3 months) PRs to tell you one introduced a problem.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts