循环优化的增量和减量

时间:2013-11-05 03:55:02

标签: performance for-loop

我最近被告知改进for循环很方便使用递减循环而不是增量循环,比如

For(int i=0; i<Limit;i++) 
{ 
 //code
} 

For(int i=Limit-1; i >=0; i--) 
{ 
 //code
} 

我不明白为什么有些人会建议使用它,他们的论点是

“使用增量for循环增加了循环内部的验证次数。使用递减循环验证和处理时间减少”

1 个答案:

答案 0 :(得分:2)

很多时候,你会看到类似的东西:

for(int i = 0; i < list.length(); i++) {
}

但通常你可以改为

for(int i = list.length(); i >= 0; i--) {
}

这样,list.length()被调用一次。

当然,这也是一种可能性:

int length = list.length();
for(int i = 0; i < length; i++) {
}

但第一种方式更短。

我很少想到通过如此微不足道的(通常)无关紧要的修复来修复真正的性能问题。如果由于某种原因.length()真正占用CPU时间,我更喜欢最后一种方式。