2015-12-02 41 views
5

我在编写一个计算量很大的程序,在调试模式下运行速度很慢。如何在启用溢出检查的情况下编译并运行优化的Rust程序

我的程序也是由整数溢出的困扰,因为我从u8阵列读取数据和u8类型通过类型推断蔓延到意想不到的地方,而锈喜欢溢出而不是促进整数更大的类型。在释放模式

大厦禁用溢出检查:

cargo run --release 

如何建立与优化运行时溢出检查锈可执行启用呢?

回答

7

最简单的事情可能是build in test or dev mode with optimizations

[profile.dev] 
opt-level = 3 

或者,你可以在释放模式编译调试断言启用:

[profile.release] 
debug-assertions = true 
+1

注意:要获得良好的加速,但仍然有有意义的堆栈跟踪,你可能只想使用'opt-level = 1'。每个函数体都会得到优化,但通常没有(或很少)内联。当然它不是那么快...... –

+0

对于内联,有'#[inline(never)]'和'#[inline(always)]'(当然,只有当你注意到编译器没有做好时,因为过度使用这些属性可能会适得其反)。 – Kornel

相关问题