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
If you found something useful today, please consider a small donation.
Got something to add? Send me email.
More Articles by Tony Lawrence © 2012-07-19 Tony Lawrence