Martin v. Loewis wrote:
pickle currently puts tuples into the memo on pickling, but only ever uses the position field ([0]), never the object itself ([1]).
I understand that the reference to the object is needed to keep it alive while pickling.
Unfortunately, this means one needs to allocate 36 bytes for the tuple.
I think this memory consumption could be reduced by saving the objects in a list, and only saving the position in the memo dictionary. That would save roughly 32 bytes per memoized object, assuming there is no malloc overhead.
While that may save you some bytes, wouldn't it break pickle subclasses using the memo as well ? -- Marc-Andre Lemburg CEO eGenix.com Software GmbH _______________________________________________________________________ eGenix.com -- Makers of the Python mx Extensions: mxDateTime,mxODBC,... Python Consulting: http://www.egenix.com/ Python Software: http://www.egenix.com/files/python/