[Python-Dev] Int FutureWarnings and other 2.4 TODOs

Guido van Rossum guido at python.org
Fri Dec 5 10:29:42 EST 2003


> IIUC, doing range(10000000) in a program somewhere allocates 10 million
> integers, and these are *never* freed, they live in the cache forever.
> Correct?

Wrong.  The memory allocated can never be used for other objects than
ints, but it will be reused for other ints.  IOW if you do

  for i in range(100):
      range(i*1000000, (i+1)*1000000)

you only allocate space for 1000000 ints, not for 100 times 1000000
ints.  (The range(100) OTOH are all in a cache that make the objects
indestructible, but this only applies to values in [-5, 100).

--Guido van Rossum (home page: http://www.python.org/~guido/)



More information about the Python-Dev mailing list