[Python-Dev] Python startup optimization: script vs. service
christian at python.org
Mon Oct 2 10:59:08 EDT 2017
On 2017-10-02 15:26, Victor Stinner wrote:
> 2017-10-02 13:10 GMT+02:00 INADA Naoki <songofacandy at gmail.com>:
>> In this PR, lazy loading only happens when uuid1 is used.
>> But uuid1 is very uncommon for nowdays.
> Antoine Pitrou added a new C extension _uuid which is imported as soon
> as uuid(.py) is imported. On Linux at least, the main "overhead" is
> still done on "import uuid". But Antoine change optimized a lot
> "import uuid" import time!
>> In this PR, singledispatch is lazy loading types and weakref.
>> But singledispatch is used as decorator.
>> So if web application uses singledispatch, it's loaded before preforking.
> While "import module" is fast, maybe we should use sometimes a global
> variable to cache the import.
> module = None
> def func():
> global module
> if module is None: import module
> I'm not sure that it's possible to write an helper for such pattern.
I would rather like to see a function in importlib that handles deferred
modulename = importlib.deferred_import('modulename')
if name in sys.modules:
# special case 'None' here
ModuleProxy is a module type subclass that loads the module on demand.
More information about the Python-Dev