如果您要比较两个整数,那么运营商是否会对执行比较所需的时间产生影响?例如,给定:
if (x < 60)
和
if (x <= 59)
哪种性能最佳,或者性能差异可以忽略不计?绩效结果是否取决于语言?
我经常发现自己在代码中混合使用这些运算符。任何想法都将不胜感激。
答案 0 :(得分:11)
即使有明显的差异,我认为编译器足够聪明,可以关注这些事情。所以我的建议是使用使代码更容易理解的内容,并将微优化保留给编译器。
答案 1 :(得分:2)
在你给出的一方是常数的具体例子中,如果速度明显加快,我希望优化器将一个转换为另一个。
答案 2 :(得分:1)
差异可以忽略不计。从理论上讲,它们可能依赖于语言。
正如另一个答案所提到的,它们在理论上也与平台有关。
请参阅:Is the inequality operator faster than the equality operator?
答案 3 :(得分:0)
几乎可以肯定没有性能差异。对于CISC处理器,您通常会使用各种分支指令来处理所有差异&lt; &lt; =&gt; &gt; =等。在RISC上可能存在非常小的性能差异,尽管我非常怀疑它!