l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
January 6: Social gathering
Next Installfest:
TBD
Latest News:
Nov. 18: Club officer elections
Page last updated:
2006 Jun 16 14:31

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] loop efficiency and testing against zero.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



On Fri, Jun 16, 2006 at 12:52:17PM -0700, Tim Riley wrote:
> 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!

No, they are both exactly identical in meaning, and thus representable
with exactly the same instructions.

I don't know how GCC's optimizations work, but it's the compiler's job
to handle rote optimizations like this; I imagine that if you enable
-O3, GCC might (should) notice that you're not actually using the value
of i, and optimize it to the decrement operation if appropriate.

Optimization should always happen after implementation.

-- 
Micah J. Cowan
Programmer, musician, typesetting enthusiast, gamer...
http://micah.cowan.name/
_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
O'Reilly and Associates
For numerous book donations.