[Python-Dev] Impact of Namedtuple on startup time
INADA Naoki
songofacandy at gmail.com
Tue Jul 18 06:04:37 EDT 2017
More information about the Python-Dev mailing list
Tue Jul 18 06:04:37 EDT 2017
- Previous message (by thread): [Python-Dev] Impact of Namedtuple on startup time
- Next message (by thread): [Python-Dev] Program runs in 12s on Python 2.7, but 5s on Python 3.5 -- why so much difference?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
> > I think that the right solution of this issue is generalizing the import > machinery and allowing it to cache not just files, but arbitrary chunks of > code. We already use precompiled bytecode files for exactly same goal -- > speed up the startup by avoiding compilation. This solution could be used > for caching other generated code, not just namedtuples. > I thought about adding C implementation based on PyStructSequence. But I like Jelle's approach because it may improve performance on all Python implementation. It's reducing source to eval. It shares code objects for most methods. (refer https://github.com/python/cpython/pull/2736#issuecomment-316014866 for quick and dirty bench on PyPy) I agree that template + eval pattern is nice for readability when comparing to other meta-programming magic. And code cache machinery can improve template + eval pattern in CPython. But namedtuple is very widely used. It's loved enough to get optimized for not only CPython. So I prefer Jelle's approach to adding code cache machinery in this case. Regards, INADA Naoki <songofacandy at gmail.com>
- Previous message (by thread): [Python-Dev] Impact of Namedtuple on startup time
- Next message (by thread): [Python-Dev] Program runs in 12s on Python 2.7, but 5s on Python 3.5 -- why so much difference?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list