Is __import__ known to be slow in windows?

Joshua Kugler jkugler at bigfoot.com
Fri Nov 30 18:08:58 EST 2007


[I tried googling for this, didn't find anything relevant.]

We've recently been doing some profiling on a project of ours.  It runs
quite fast on Linux but *really* bogs down on Windows 2003.  We initially
thought it was the simplejson libraries (we don't use the C extensions) but
profiling proved otherwise.

We have a function that does some runtime imports via calls to __import__. 
We ran 1000 iterations (we used cProfile) of the application (web app).
There were eight calls to __import__ per iteration, so 8000 calls total.
Identical hardware, by the way.

On Linux (Debian Etch, Python 2.5.1)
Total time was 2.793 CPU seconds, with __import__ using 1.059 seconds of
that.  So, 37% of the time was spent in import.  Not great, but not a show
stopper.

On Windows 2003 (R2, Python 2.5.1)
Total time was 18.532 CPU seconds, with __import__ using 16.330 seconds
(88%) of that.

So, Linux spends 1.734 seconds on non-import activities, and Windows spends
2.202 seconds on non-import activities.  Pretty close.  But 16.3 seconds on
import!?

Is this a known deficiency in Windows' Python import calls, or is there
something deeper going on here?

Pointers, suggestions, and URLs welcome.

j






More information about the Python-list mailing list