For a clean build: number of cores (because cargo builds each crate dependency in a separate process), for a build of your crate only: single core perf.
Until the parallel compiler feature (-Z threads=<n>) stabilizes and becomes more complete.
It’s also always worth mentioning that the choice of linker is important. Using mold or lld can significantly speed things up in some use-cases.
Beyond that, codegen-units and lto profile options are also important.
And finally, for development purposes, the code generator is important, as cranelift provides much faster compile times, but resulting binaries are not as optimized as LLVM-generated ones.
Oh, i have to try these out to see if it effects my development cycle. I do notice that cargo check is super fast, but cargo build takes a long time. So codegen and linker could be the source of slowness.
For a clean build: number of cores (because cargo builds each crate dependency in a separate process), for a build of your crate only: single core perf.
Until the parallel compiler feature (
-Z threads=<n>
) stabilizes and becomes more complete.It’s also always worth mentioning that the choice of linker is important. Using mold or lld can significantly speed things up in some use-cases.
Beyond that,
codegen-units
andlto
profile options are also important.And finally, for development purposes, the code generator is important, as
cranelift
provides much faster compile times, but resulting binaries are not as optimized as LLVM-generated ones.Oh, i have to try these out to see if it effects my development cycle. I do notice that cargo check is super fast, but cargo build takes a long time. So codegen and linker could be the source of slowness.