[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