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

时间:2011-05-02 18:59:08

标签: performance comparison operators

如果您要比较两个整数,那么运营商是否会对执行比较所需的时间产生影响?例如,给定:

if (x < 60)

if (x <= 59)

哪种性能最佳,或者性能差异可以忽略不计?绩效结果是否取决于语言?

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

4 个答案:

答案 0 :(得分:11)

即使有明显的差异,我认为编译器足够聪明,可以关注这些事情。所以我的建议是使用使代码更容易理解的内容,并将微优化保留给编译器。

答案 1 :(得分:2)

在你给出的一方是常数的具体例子中,如果速度明显加快,我希望优化器将一个转换为另一个。

答案 2 :(得分:1)

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

正如另一个答案所提到的,它们在理论上也与平台有关。

请参阅:Is the inequality operator faster than the equality operator?

答案 3 :(得分:0)

几乎可以肯定没有性能差异。对于CISC处理器,您通常会使用各种分支指令来处理所有差异&lt; &lt; =&gt; &gt; =等。在RISC上可能存在非常小的性能差异,尽管我非常怀疑它!