[Python-Dev] Int FutureWarnings and other 2.4 TODOs (original) (raw)

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