180 条记录
15 私有链接
15 私有链接
cargo build --release
默认情况下不会自动并行使用多个 CPU 核心进行编译,但你可以手动启用 多线程编译 来加速构建。
方法 1:使用 JOBS
选项
你可以在编译时使用 -j
选项,指定使用的并行编译线程数。例如:
cargo build --release -j 8
-
-j 8
表示使用 8 个核心进行编译。 -
你可以将
8
替换为$(nproc)
以自动获取 CPU 核心数:cargo build --release -j $(nproc)
这样可以最大化使用 CPU 资源,提高编译速度。
-
- *
方法 2:设置 CARGO_BUILD_JOBS
环境变量
如果你不想每次都输入 -j
选项,可以设置环境变量:
export CARGO_BUILD_JOBS=$(nproc)
cargo build --release
或者将其加入 ~/.bashrc
/ ~/.bash_profile
以使其永久生效:
echo 'export CARGO_BUILD_JOBS=$(nproc)' >> ~/.bashrc
source ~/.bashrc
方法 3:修改 config.toml
配置文件
你还可以在 Cargo 配置文件 中全局设置并行编译:
mkdir -p ~/.cargo
nano ~/.cargo/config.toml
然后添加以下内容:
[build]
jobs = 8 # 或者 $(nproc) 的实际值
保存后,运行 cargo build --release
时会默认使用 8 个核心。
方法 4:使用 sccache
加速编译
如果你的 Rust 项目编译非常缓慢,你还可以使用 sccache
进行缓存加速:
cargo install sccache
export RUSTC_WRAPPER=sccache
cargo build --release -j $(nproc)
sccache
主要用于缓存编译结果,特别适用于 增量编译,加快二次编译速度。
总结
✅ 推荐方式
- 临时并行:
cargo build --release -j $(nproc)
- 永久生效:设置
CARGO_BUILD_JOBS
或修改config.toml
- 加速工具:使用
sccache
进一步优化
最终的cargo.toml
[source.crates-io]
replace-with = 'rsproxy-sparse'
[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"
[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"
[net]
git-fetch-with-cli = true
[profile.dev]
opt-level = 0 # 优化等级最低,编译速度最快(默认值)
debug = true # 保留调试符号,方便调试和断点追踪
codegen-units = 16 # 生成多个并行代码单元,加快多核编译速度
incremental = true # 启用增量编译,修改部分代码时加速后续编译
overflow-checks = false # 关闭整数溢出检查(调试时略快,需小心)
[profile.release]
opt-level = "z" # 优化最小二进制体积(比 "s" 更激进)
lto = false # 关闭 LTO(Link Time Optimization),加快构建但牺牲些许体积
codegen-units = 8 # 控制并行生成单元,8 通常能平衡速度和优化
panic = "abort" # 遇到 panic 时直接终止,无回溯,减小代码体积
strip = true # 编译后移除符号表和调试信息,减小最终文件体积
[alias]
b = "build --release"
r = "run --release"
[build]
jobs = 16
这样,你的 cargo build --release
就可以 最大限度利用多核 CPU 进行编译了 🚀