[Python-Dev] Startup time

Jeremy Hylton jeremy@zope.com
16 May 2003 15:07:53 -0400


On Fri, 2003-05-16 at 15:00, Skip Montanaro wrote:
>     mal> FWIW, I've removed the re usage from encodings/__init__.py.
> 
>     mal> Could you check whether this makes a difference in startup time
>     mal> now?
> 
> Well...  Not really, but it's not your fault.  site.py imports
> distutils.util which imports re.  It does a fair amount of regex compiling,
> some at the module level, so deferring "import re" may take a couple minutes
> of work.  Hang on...

I don't think you need to do anything to distutils.  In the case we care
about (an installed Python) distutils.utils isn't imported.  Check this
code in site.py:

# Append ./build/lib.<platform> in case we're running in the build dir
# (especially for Guido :-)
# XXX This should not be part of site.py, since it is needed even when
# using the -S option for Python.  See http://www.python.org/sf/586680
if (os.name == "posix" and sys.path and
    os.path.basename(sys.path[-1]) == "Modules"):
    from distutils.util import get_platform
    s = "build/lib.%s-%.3s" % (get_platform(), sys.version)
    s = os.path.join(os.path.dirname(sys.path[-1]), s)
    sys.path.append(s)
    del get_platform, s

Jeremy