“小于/大于”的性能是否优于“小于/大于或等于”的性能

hei*_*kim 2 theory performance compiler-theory

它是计算上更高性能的比较少/大于少/大于或等于

凭直觉,人们可能认为少/多于好。

编译器可以使用一些技巧使比较看起来相同吗?

编译器可以消除例如小于或等于小于通过增加一个绑定的,但如果绑定的是“活着”,那么这不能做。

Ira*_*ter 5

实际上,在每个现代CPU上,都有比较/无跳转和比较/准等式指令花费完全相同的时间,因为它通过完全相同的硬件模来运行,包括或不包括“等于”位。

在这种情况下,计算“不少于”(以及“少于”)是免费的。对于无符号值,等效于由CPU已经执行的二进制补码减法。计算相等更加困难:CPU必须确定减法结果的所有位都为零;对于64位CPU,天真的是64位并门,这相当大,因此速度很慢。CPU设计人员知道这一点,并建立了非常快速的网络来快速,准确地检测到这一点,因此这不是瓶颈。

因此答案是“否”,或者要明确地说,它们花费相同的时间,并且没有编译器来改变它。