目标
计算密集的 Rust 服务在 release 下比预期慢,因为默认设置错过了跨 crate 优化。本配方在 Cargo.toml 的 release 配置里启用 fat LTO、限制代码生成单元并调整优化级别,使编译器跨 crate 链接并产出更优代码,再用基准对比吞吐与构建时间的取舍;提醒依赖 unwinding 时不能用 panic=abort。
步骤要点
- 在 release 配置启用 LTO 与代码生成调优。
- 用基准对比吞吐与构建时间。
- 构建时间过高时改用 thin LTO。
- 依赖 unwinding 时避免 panic=abort。
[profile.release]
lto = "fat"
codegen-units = 1
opt-level = 3
panic = "abort"
排错提示
- 构建时间上升会拖慢迭代。
- panic=abort 改变错误语义。
- 配置需匹配实际负载。
适用边界
- 构建时间显著增加。
- panic 策略影响错误处理。