比较执行速度

时间:2012-03-13 05:16:15

标签: c++

我写了一个简单的for循环。

for(int i = 0; i != 100; i++) 
然后有人发表意见,应该是

for(int i = 0; i < 100; i++) 

当这变成装配时,我应该变成Jump on Equality JNE,后者应该是Jump如果更大的JG。或者编译器会做一些完全不同的事情,它们会变成同样的事情。

无论如何哪一个更正确,我发现第一个更逻辑正确,因为我知道我将通过100,大于检查似乎逻辑上还原。 JNE和JG也一样快吗?

2 个答案:

答案 0 :(得分:2)

对于这种情况,使用<!=之间没有实际区别。但是,许多迭代器不定义<比较,只定义!===,在这种情况下,这些是您唯一真正的选择。

jnejg通常速度相同。您可能会观察到两者之间的速度差异,但如果是这样,它们很可能源于缓存使用情况,而不是指令本身。

答案 1 :(得分:0)

我认为您不会找到特定情况存在性能差异的系统(要验证的措施)。

大多数代码在i < count循环中使用for条件。因此,与<相比,大多数人阅读!=条件的代码所需的时间更短。