[Python-Dev] Python startup time (original) (raw)
Gregory P. Smith greg at krypto.org
Thu May 3 20:43:26 EDT 2018
- Previous message (by thread): [Python-Dev] Python startup time
- Next message (by thread): [Python-Dev] Python startup time
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, May 3, 2018 at 5:22 PM, Lukasz Langa <lukasz at langa.pl> wrote:
> On May 2, 2018, at 8:57 PM, INADA Naoki <songofacandy at gmail.com> wrote: > > Recently, I reported how stdlib slows down
import requests
. > https://github.com/requests/requests/issues/4315#issuecomment-385584974 > > For Python 3.8, my ideas for faster startup time are: > > * Add lazy compiling API or flag inre
module. The pattern is compiled > when first used. How about go the other way and allow compiling at Python compile-time? That would actually make things faster instead of just moving the time spent around. I do see value in being less eager in Python but I think the real wins are hiding behind ahead-of-time compilation.
Agreed in concept. We've got a lot of unused letters that could be new string prefixes... (ugh)
I'd also like to see this concept somehow extended to decorators so that the results of the decoration can be captured in the compiled pyc rather than requiring execution at import time. I realize that limits what decorators can do, but the evil things they could do that this would eliminate are things they just shouldn't be doing in most situations. meaning: there would probably be two types of decorators... colons seem to be all the rage these days so we could add an @: operator for that. :P ... Along with a from future import to change the behavior or all decorators in a file from runtime to compile time by default.
from future import compile_time_decorators # we'd be unlikely to ever change the default and break things, future seems wrong
@this_happens_at_compile_time(3) def ...
@:this_waits_until_runtime(5) def ...
Just a not-so-wild idea, no idea if this should become a PEP for 3.8. (the : syntax is a joke - i'd prefer @@ so it looks like eyeballs)
If this were done to decorators, you can imagine extending that concept to something similar to allow compile time re.compile calls as some form of assignment decorator:
GREGS_RE = @re.compile(r'A regex compiled at compile time. number = \d+')
-gps
- Ł
Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ greg%40krypto.org -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20180503/de1c10b4/attachment-0001.html>
- Previous message (by thread): [Python-Dev] Python startup time
- Next message (by thread): [Python-Dev] Python startup time
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]