这是一篇来自 https://benw.is/posts/how-i-improved-my-rust-compile-times-by-seventy-five-percent 的总结和翻译,我去掉了一些不太重要的章节,保留了所有关键技术点。
[profile.dev]
opt-level = 1
[profile.dev.package."*"]
opt-level = 3
mold -run 。例如, mold -run cargo build 。也可以在 .cargo/config.toml 中启用,就像这样:[target.x86_64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=-fuse-ld=/path/to/mold"]
/path/to/mold 是模具可执行文件的绝对路径。这也是启用 Sold 的方式,只需用 Sold 路径替换模具路径,并将目标更改为 Mac 的编译目标。rustup update nightly #install nightly if you haven't already
rustup component add rustc-codegen-cranelift-preview --toolchain nightly
Cargo 中使用它,可以通过启用不稳定的 codegen-backend 功能,并为配置文件设置 codegen-backend= "cranelift" 值来启用它。可以在 .cargo/config.toml 中这样做:[unstable]
codegen-backend = true
[profile.server-dev]
codegen-backend = "cranelift"
[target.x86_64-unknown-linux-gnu]
rustflags = ["-Zcodegen-backend=cranelift"]
Mold 和 Cranelift 为我带来了 75% 的增量编译时间缩短和 25% 的冷编译时间缩短,这是相当大的改进。使用 Cranelift 需要 Nightly 版本的 Rust,这可能会让一些项目感到不理想,而且 Mold 需要 Linux,而 Sold 需要 Mac(并且需要付费),对我来说,这进一步证明了Rust Web 开发应该在某种 Linux 或 Mac 上进行,而不是在 Windows 上。WSL2 可能有助于改善情况,但可能会更慢。由于我有一台 Mac 笔记本和一台 Linux 工作站,我将为我的 Mac 购买 Sold,并在可以的项目中使用Cranelift。原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。