哪种条件在技术上更有效,i> = 0或i> -1?

Jam*_*hin 0 comparison performance cpu-usage conditional-statements

这种用法在编写循环时很常见.

我在想,如果i >=0需要更多的CPU周期,因为它有两个条件greater than OR equal to相比i > -1.一个人知道比另一个好,如果是,为什么?

Rob*_*een 8

这是不正确的.JIT将两个测试都作为单一机器语言指令实现.

并且CPU时钟周期数不是由零或-1的比较数决定的,因为CPU应该进行一次比较并设置标志以指示比较结果是<,>还是=.

这些指令之一可能在某些处理器上更有效,但这种微优化几乎总是不值得做.(也可能JIT - 或javac - 实际上会为两个测试生成相同的指令.)

  • 零比较保存`iconst_m1`字节码. (2认同)