On Thu, Sep 20, 2018 at 11:20 PM, Stefan Behnel <stefan...@behnel.de> wrote:

> What about the small integers cache? The C serialisation generates several
> PyLong objects that would normally reside in the cache. Is this handled
> somewhere? I guess the cache could entirely be loaded from the data
> segment. And the same would have to be done for interned strings. Basically
> anything that CPython only wants to have one instance of.
>

Un-marshaled immutable objects are tracked in a table to ensure their
uniqueness.  Thanks for mentioning the small integer cache.  It is not part
of the change, but it could be brought under this framework.  By doing so,
we could store the small integer objects instances in the data segment and
other data segment objects could reference those unique small integer
instances.

That would severely limit the application of this optimisation to external
> modules, though. I don't see a way how they could load their data
> structures from the data segment without duplicating all sorts of
> "singletons".


Yes, additional load-time work would have to be done to ensure the
uniqueness of those objects.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to