如何在启用溢出检查的情况下编译和运行优化的Rust程序



我正在编写一个计算量很大的程序,在调试模式下运行速度慢得令人烦恼。

我的程序也受到整数溢出的困扰,因为我正在从u8数组中读取数据,而u8类型通过类型推断扩散到意外的地方,Rust更喜欢溢出,而不是将整数提升到更大的类型。

释放模式下的构建禁用溢出检查:

cargo run --release

如何在启用优化运行时溢出检查的情况下构建Rust可执行文件?

您可以在启用溢出检查的发布模式下编译:

[profile.release]
overflow-checks = true

这会将-C overflow-checks=true传递给编译器。在早期版本的Rust中,overflow-checksdebug-assertions开关的一部分,因此在某些情况下可能需要使用它。

其他时候,最简单的事情可能是在测试或开发模式下进行优化构建:

[profile.dev]
opt-level = 3

最新更新