2005/06/06 idle loop

There's an old story about a program that didn't run fast enough. A programmer used a profiler and discovered that one routine was taking a lot of CPU time. Great effort was expended to modify it, yet the program ran no faster. The joke was that the routine was the program's "idle loop" - what it would run when it had no other work to do.

It sounds silly, but really only is if you are thinking of the idle loop as something that does nothing beyond perhaps waiting to be interrupted by real work. In fact, the so called idle loop is often used as a place to call tasks that are necessary, so it may very well make sense to optimise it. This story from the BSD world describes an optimization that really paid off: http://kerneltrap.org/node/5169

Another place that a poorly written idle loop can have bad effects is when you are running multiple operating systems in virtual machines. If a guest OS enters an idle loop because it has no use for the CPU at this moment, that doesn't mean that other OSes couldn't make better use of those cycles: http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1077

Got something to add? Send me email.

(OLDER) <- More Stuff -> (NEWER)    (NEWEST)   

Printer Friendly Version

-> -> Does it make sense to optimize the idle loop?

Increase ad revenue 50-250% with Ezoic

More Articles by

Find me on Google+

© Tony Lawrence

Kerio Samepage

Have you tried Searching this site?

Support Rates

This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more.

Contact us

You learn about life by the accidents you have, over and over again, and your father is always in your head when that stuff happens. (Kurt Vonnegut)

This post tagged:

© Copyright 2019 aplawrence.com.