Help- Recursion v. Iter Speed comparison

Roy Smith roy at panix.com
Wed Mar 2 08:41:05 EST 2005


actuary77 <actuary77 at elemental-systems.com> wrote:

> Recurse from 9999 time: 4.3059999942779541 seconds
> 
> Iter from 9999 time: 0.0099999904632568359 seconds
> 
> No comparison, why is recursion so slow?

I believe Edouard Manet said it best, "Damn your recursion, Henri. 
Iteration, however complex, is always more efficient." (extra points if you 
can identify the source of that quote).  It's not clear what language Manet 
was talking about when he said that, but it's pretty much a universal truth.

There's a fair amount of overhead in a function call.  You've got to push 
the arguments (and whatever state you need to save) onto the stack, and 
when the function returns, all that has to be undone.  Depending on the 
language, this may involve building temporary copies of objects.  If the 
function is small, the call-return overhead may totally swamp the real work 
done.



More information about the Python-list mailing list