STINNER Victor added the comment:

> Thanks.  Your patch reduced memory consumption by 2%,

merge-constants.patch looks simple enought, but I'm not really impressed by 
such result. Is 2% worth it?

Since code objects loaded by import are likely for stay for the whole lifetime 
of a process, I would be interested to experiment interning all constant 
objects (the tuple of objects, but also each object of these tuples, so support 
"nested interning") of all code objets (consts, names, varnames, freevars, 
cellvars) in the marshal module.

To intern constants, we need to generate an unique key to not merge 1 int and 
1.0 float. The risk of such global intern dict is to increase the memory usage 
of the unique keys uses more memory than the decreased caused by the removal of 
duplicate objects.

More generally, would it be possible to share co_consts (None,) tuples between 
code objects of two different modules? Or is it already the case with 
merge-constants.patch?

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue29336>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to