[vox-tech] loop efficiency and testing against zero.
Tim Riley
timriley at appahost.com
Fri Jun 16 12:52:17 PDT 2006
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 )
I would think this:
for( int i = MAXINT; i; --i );
is faster than this:
for( int i = 0; i < MAXINT; ++i );
However, on my machine they both took the
same time -- 3.24 seconds.
I would think the test of 'i'
would be a single instruction and the test
of 'i < MAXINT' would take multiple
instructions. But surprise!
>
> 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
> _______________________________________________
> vox-tech mailing list
> vox-tech at lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech
>
More information about the vox-tech
mailing list