On Dec 27, 2007 4:22 AM, Armin Rigo <arigo@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