我正在编写一个需要超快的图形算法。是否有任何编译器标志来强制签名的整数溢出,例如c?还是其他任何旗帜迫使更多不确定的行为?如果没有,有人是否对速度差进行了基准测试?
Rust中的整数溢出永远不会触发未定义的行为,与C相反。在调试模式下编译时,算术操作检查溢出和恐慌,但在发布模式下没有检查。可以通过将标志-C overflow-checks=yes
传递给rustc
。
更一般而言,如果性能很重要,则应确保使用发布版本。如果您只想定位特定的CPU,则可以使用-C target-cpu=val
,例如-C target-cpu=native
可针对当前CPU进行优化。当然,您需要介绍您的代码以找出要优化的内容。