[Python-Dev] Store startup modules as C structures for 20%+ startup speed improvement? (original) (raw)
Stefan Behnel stefan_ml at behnel.de
Fri Sep 21 02:20:47 EDT 2018
- Previous message (by thread): [Python-Dev] Store startup modules as C structures for 20%+ startup speed improvement?
- Next message (by thread): [Python-Dev] Store startup modules as C structures for 20%+ startup speed improvement?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Larry Hastings schrieb am 14.09.2018 um 23:27:
What the patch does: it takes all the Python modules that are loaded as part of interpreter startup and deserializes the marshalled .pyc file into precreated objects stored as static C data.
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.
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".
Stefan
- Previous message (by thread): [Python-Dev] Store startup modules as C structures for 20%+ startup speed improvement?
- Next message (by thread): [Python-Dev] Store startup modules as C structures for 20%+ startup speed improvement?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]