[Python-Dev] PATCH: Fast globals/builtins lookups for 2.6

Daniel Stutzbach daniel at stutzbachenterprises.com
Thu Dec 27 17:46:58 CET 2007


On Dec 27, 2007 4:22 AM, Armin Rigo <arigo at tunes.org> wrote:
> How much time does it take if the loop is in a C extension module, e.g.
> like the following?
>
>     while (1) { PyDict_SetItem(d, k, v); PyDict_DelItem(d, k); }
>
> How much time would it take the same loop to overflow even the 64-bit
> version number?

On a modern computer, more than a century.

> And how much will *this* take in ten year's time?

My rule of thumb is that a tight loop performing 2**32 operations
takes around a minute on a modern computer.  The PyDict operations
presumably take somewhat longer than a few primitive operations, so
this is a good lower bound.

Assuming that processing speed doubles every 1.5 year, we have

(2**64 operations / 2**32 operations per minute / 2**(10 years / 1.5
years per speed doubling))
= 42275935 minutes
= 1.34 years of running that tight loop to get an overflow.

I think 64 bits is pretty safe :-)

-- 
Daniel Stutzbach, Ph.D.             President, Stutzbach Enterprises LLC


More information about the Python-Dev mailing list