(belated follow-up as I noticed there hadn't been a reply on list yet, just
the previous feedback on the faster-cpython ticket)

On Mon, 21 Feb 2022, 6:53 pm Yichen Yan via Python-Dev, <
python-dev@python.org> wrote:

>
> Hi folks, as illustrated in faster-cpython#150 [1], we have implemented a
> mechanism that supports data persistence of a subset of python date types
> with mmap, therefore can reduce package import time by caching code object.
> This could be seen as a more eager pyc format, as they are for the same
> purpose, but our approach try to avoid [de]serialization. Therefore, we get
> a speedup in overall python startup by ~15%.
>

This certainly sounds interesting!


> Currently, we’ve made it a third-party library and have been working on
> open-sourcing.
>
>
> Our implementation (whose non-official name is “pycds”) mainly contains
> two parts:
>
>    - importlib hooks, this implements the mechanism to dump code objects
>    to an archive and a `Finder` that supports loading code object from mapped
>    memory.
>    - Dumping and loading (subset of) python types with mmap. In this
>    part, we deal with 1) ASLR by patching `ob_type` fields; 2) hash seed
>    randomization by supporting only basic types who don’t have hash-based
>    layout (i.e. dict is not supported); 3) interned string by re-interning
>    strings while loading mmap archive and so on.
>
> I assume the files wouldn't be portable across architectures, so does the
cache file naming scheme take that into account?

(The idea is interesting regardless of whether it produces arch-specific
files - kind of a middle ground between portable serialisation based pycs
and fully frozen modules)

Cheers,
Nick.


>
>
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/O4A4CHQZW6SSTXP7D5ZB5NOYWDMATE3W/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to