What will be faster, >= or >?
我想知道>是否比>更快?我试着测试它,但要么用0毫秒,要么永远用。我知道差别会很小,但我必须在很多像素上操作。有人能告诉我什么更快吗?
- 你的问题不太清楚-你说的是什么语言?通过引用像素,你是在做某种图像处理吗?
- Knuth有一个报价可能在这里适用…P
- 这些操作数将被编译成机器代码,机器代码的执行周期很可能完全相同。你需要张贴一个具体的例子,告诉我们你在哪种类型上操作…
- 当然,这取决于你在比较什么;例如,if (downloadInternet() > 42) { ... }比if (41 > 42) { ... }需要更长的时间…
- "I tried to benchmark it but either it takes 0ms or it takes forever"-听起来你的基准有问题。任何经过多次比较的重要循环都将花费超过0毫秒的时间,而任何需要"永远"的循环都明显存在逻辑错误。
- @Flovdis:不一定是真的;>和>=不是可自由交换的比较。归根结底,这取决于数据和您如何处理它。以及编译器如何优化它。可能是因为缓存。(一般而言)
- 如果"差别真的很小",但是无论如何你必须在很多像素上操作,那么你实际上有一个很好的基准测试。请分享结果。
这两种比较将编译为机器指令,如BLT(branch on less than)或BLE(branch on less equal),这些指令检查一些状态位,如BLT: N-V + -NV(负&非溢出或非负与溢出)或BLE: Z + N-V + -NV(零或负&非溢出或非负与溢出)。这些指令通常需要完全相同的时间,因此速度也一样快。