用途:指导诊断并改善 Rust 编译速度,覆盖构建分析、缓存、代码生成后端、工作区拆分、LTO 配置与链接器选择。
主要能力与用法: 构建分析:cargo build --timings 生成构建时间线报告,cargo install cargo-llvm-lines 后用 cargo llvm-lines --release | head -20 查看单态化热点。 缓存:cargo install sccache,设置 RUSTC_WRAPPER=sccache 或在 .cargo/config.toml 配置 [build] rustc-wrapper = "sccache",用 sccache --show-stats 查看统计,可配 S3 后端供 CI 共享。 Cranelift:仅 nightly 可用,安装 rustup component add rustc-codegen-cranelift-preview --toolchain nightly,在 [profile.dev] codegen-backend = "cranelift";开发构建更快,但运行时性能不如 LLVM,发布构建仍用 LLVM。 工作区拆分:将大 crate 拆为多个成员以提升并行编译,先用 cargo tree 查看依赖图,优先打破循环依赖、分离 proc-macro、隔离频繁改动代码。 LTO:开发构建 lto = "off",发布常用 lto = "thin",追求极致性能用 lto = "fat" 配合 codegen-units = 1。 链接器:Linux 可装 mold 并设 -C link-arg=-fuse-ld=mold,或用 lld、cargo-zigbuild;macOS 可用 zld。 其他:降低 debug 级别、split-debuginfo、CARGO_INCREMENTAL=0、稳定重型 proc-macro 版本。
限制:Cranelift 需 nightly;LTO 与 codegen-units=1 会拖慢链接;各类加速幅度取决于项目规模,资料未给出普适数值。