[Python-Dev] Reduce memory footprint of Python

Victor Stinner victor.stinner at gmail.com
Sun Oct 6 17:32:37 CEST 2013


Hi,

Slowly, I'm trying to see if it would be possible to reduce the memory
footprint of Python using the tracemalloc module.

First, I noticed that linecache can allocate more than 2 MB. What do
you think of adding a registry of "clear cache" functions? For
exemple, re.purge() and linecache.clearcache(). gc.collect() clears
free lists. I don't know if gc.collect() should be related to this new
registy (clear all caches) or not.

The dictionary of interned Unicode strings can be large: up to 1.5 MB
(with +30,000 strings). Just the dictionary, excluding size of
strings. Is the size normal or not? Using tracemalloc, this dictionary
is usually to largest memory block.

unittest doesn't look to release memory (the TestCase class) after the
execution of a test.

test_import.test_module_with_large_stack() creates a large Python
module and import it, but it does not unload it.

Should I open a separated issue for each idea to track them in the bug
tracker, or a global issue?

Victor


More information about the Python-Dev mailing list