我正在编写一个计算量很大的程序,在调试模式下运行速度慢得令人恼火.
我的程序也受到整数溢出的困扰,因为我正在从u8
个数组读取数据,u8
个类型通过类型推断扩散到意外的地方,Rust更喜欢溢出,而不是将整数提升到更大的类型.
在释放模式下生成将禁用溢出判断:
cargo run --release
如何在启用优化and次运行时溢出判断的情况下构建Rust可执行文件?
我正在编写一个计算量很大的程序,在调试模式下运行速度慢得令人恼火.
我的程序也受到整数溢出的困扰,因为我正在从u8
个数组读取数据,u8
个类型通过类型推断扩散到意外的地方,Rust更喜欢溢出,而不是将整数提升到更大的类型.
在释放模式下生成将禁用溢出判断:
cargo run --release
如何在启用优化and次运行时溢出判断的情况下构建Rust可执行文件?
您可以在发布模式with overflow checks enabled下编译:
[profile.release]
overflow-checks = true
这会将-C overflow-checks=true
传递给编译器.在Rust的早期版本中,overflow-checks
是debug-assertions
switch 的一部分,因此在某些情况下可能需要使用它.
其他时候,最简单的方法可能是build in test or dev mode with optimizations:
[profile.dev]
opt-level = 3