[vox-tech] loop efficiency and testing against zero.

Rod Roark rod at sunsetsystems.com
Fri Jun 16 09:41:17 PDT 2006


It would depend on the machine language and I doubt it would in
practice make a noticeable difference... but typically when you
perform integer arithmetic (as in decrementing a counter) there are
CPU flags set indicating whether the result is less than, equal to or
greater than zero.  Therefore you won't need to perform a separate
comparison if you are testing against zero.

Rod

On Friday 16 June 2006 09:28, Peter Jay Salzman wrote:
> I've read somewhere that a loop that runs from 0 to some number should be
> written to go in reverse order, e.g. instead of:
> 
>    for ( int i = 0;  i < 10;  ++i )
> 
> we should write:
> 
>    for ( int i = 9;  i >= 0;  --i )
> 
> The rationale is that it's faster to test against 0 than some other integer,
> but it isn't obvious to me *why* it's faster.
> 
> Why is that?
> 
> Pete


More information about the vox-tech mailing list