比较运算符的性能(>,>=,<,<=)

13
如果你要比较两个整数,运算符会对执行比较所需的时间产生影响吗?例如,给定以下情况:
if (x < 60)

并且

if (x <= 59)

哪种方式能提供最佳性能,或者性能差异是否可以忽略不计?性能结果是否与编程语言有关?
我经常发现自己在代码中混合使用这些运算符。欢迎提供任何想法。

7
确实存在性能差异(至少在JavaScript中):在我的计算机上,执行x < 60需要1103.1皮秒,而执行x <= 59则需要1103.2皮秒,使其慢了十分之一皮秒。令人惊叹 :) 请自行查看 - Šime Vidas
@Šime Vidas:很不错。这些结果肯定是与浏览器相关的。 - Evan Mulawski
2
是的,在IE9中,“<=”实际上比其他浏览器慢32%(!!)(在我的机器上为2.7纳秒)。 - Šime Vidas
这个回答解决了你的问题吗?是<比<=更快吗? - undefined
4个回答

11

即使存在显著的差异,我认为编译器足够智能来处理这些事情。因此,我的建议是使用使代码更易于理解的内容,并将微小的优化留给编译器。


2
在你提供的具体例子中,如果其中一边是恒定的,我预计优化器会将其转换为另一种形式,如果这样做可以显著提高速度。

1

0

性能上几乎没有区别。对于CISC处理器,通常会有各种分支指令来处理所有的差异 < <= > >= 等等。在RISC上可能会有非常小的性能差异,但我严重怀疑这一点!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接