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

问题描述 投票:0回答:4

如果要比较两个整数,运算符会对执行比较所需的时间产生影响吗?例如,给定:

if (x < 60)

if (x <= 59)

哪一个可以提供最佳性能,或者性能差异可以忽略不计?性能结果与语言相关吗?

我经常发现自己在代码中混合使用这些运算符。任何想法将不胜感激。

performance language-agnostic comparison operators
4个回答
11
投票

即使存在明显的差异,我认为编译器也足够聪明来关心这些事情。所以我的建议是使用使代码更容易理解的东西,并将微优化留给编译器。


2
投票

在您给出的具体示例中,一侧是恒定的,我希望优化器能够将一侧转换为另一侧(如果它明显更快)。


1
投票

差异可以忽略不计。从理论上讲,它们可能依赖于语言。

正如另一个答案提到的,它们理论上也是依赖于平台的。

参见:不等式运算符比等式运算符更快吗?


0
投票

性能几乎肯定没有差异。对于 CISC 处理器,您通常会拥有各种分支指令来处理所有差异 < <= > >= 等。在 RISC 上,可能存在非常小的性能差异,尽管我对此表示严重怀疑!

© www.soinside.com 2019 - 2024. All rights reserved.