【问题标题】:What will be faster, >= or >? [duplicate]什么会更快,>= 或 >? [复制]
【发布时间】:2014-06-19 07:22:03
【问题描述】:

我想知道 > 是否比 >= 更快? 我试图对其进行基准测试,但要么需要 0ms,要么需要永远。 我知道差异会非常小,但我必须对很多像素进行操作。 谁能告诉我什么更快?

【问题讨论】:

  • 您的问题不是很清楚 - 您在说什么语言?通过引用像素,您是在进行某种图像处理吗?
  • Knuth 的报价可能适用于这里...:P
  • 这些操作数将被编译成机器码,这很可能需要完全相同的周期数来执行。您需要发布一个具体示例,并告诉我们您操作的是哪种类型...
  • 当然这取决于你在比较什么;例如if (downloadInternet() > 42) { ... } 会比if (41 > 42) { ... } 花费更长的时间...
  • "I tried to benchmark it but either it takes 0ms or it takes forever" - 听起来你的基准测试有问题。通过多次比较的任何重要循环都将花费超过 0 毫秒的时间。任何需要“永远”的东西显然都有逻辑错误。

标签: performance


【解决方案1】:

两个比较都将编译为机器指令,如BLT(小于分支)或BLE(小于分支),它们检查一些状态位,如BLT: N-V + -NV(负且不溢出或非负和溢出)或BLE: Z + N-V + -NV(零或负且不溢出或非负且溢出)。
这些指令通常需要完全相同的时间,因此它们同样快。

【讨论】:

  • 谢谢!你为什么会知道这些东西? :)
  • 抱歉,现在才发现您的问题...我是一名退休的计算机工程教授...
猜你喜欢
  • 2013-03-21
  • 1970-01-01
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
  • 2015-12-05
  • 2014-03-29
  • 1970-01-01
  • 2013-05-17
相关资源
最近更新 更多