编译慢是Rust开发的痛点,以下方法可显著缩短编译时间:
sccache缓存编译结果:sccache支持本地和分布式缓存(如CI环境),重复构建时可减少70%以上的编译时间。配置方法:安装sccache(cargo install sccache),然后在~/.cargo/config中添加[build] rustc-wrapper = "sccache"。lld链接器,可将链接速度提升3-10倍;若追求极致,可安装mold链接器(需手动编译安装),进一步加快链接步骤。配置方法:在~/.cargo/config中指定链接器,例如[target.x86_64-unknown-linux-gnu] linker = "clang" rustflags = ["-C", "link-arg=-fuse-ld=lld"]。~/.cargo/config中设置[build] jobs = 16(默认等于CPU核心数,CI环境可手动调整),充分利用多核CPU资源。Cargo.toml中[profile.dev] incremental = true(Rust 2024+稳定版默认开启),避免每次编译都重新构建所有代码。cargo-machete工具扫描项目,移除未使用的依赖(如“祖传”crate),可大幅减少编译时间(例如某项目去掉12个依赖后,全量编译从8.2分钟缩短至3.1分钟)。rustup update),新版本通常包含bug修复、性能优化和新特性(如2025年10月的rustc优化)。debug = 1(而非full)的行级调试信息,既保留调试能力又减少编译时间;使用println!("{:?}", variable)或dbg!(variable)快速打印变量值,配合cargo watch -x 'run'实现文件修改后自动重新运行。cargo-watch实现热重载:安装cargo-watch(cargo install cargo-watch),运行cargo watch -x 'run',当代码修改保存后自动重新编译并运行,避免手动执行cargo run的重复操作。cargo tree查看依赖树(cargo install cargo-tree),识别冗余或不必要的依赖;在Cargo.toml中禁用crate的默认features(如tokio = { version = "1", default-features = false, features = ["rt-multi-thread", "macros"] }),减少编译时间和二进制体积。rust-cache(GitHub)或sccache(GitLab)缓存$CARGO_HOME和target目录,避免每次CI构建都重新下载依赖和编译代码,缩短CI时间。sudo apt autoremove)和旧的内核版本(sudo apt purge $(dpkg -l | grep 'linux-image-.*-generic' | grep -v $(uname -r))),释放磁盘空间,提升系统响应速度。