[Zope-dev] "zipped" versus "unzipped" eggs (was: Re: SVN: Zope2.buildout/trunk/ Don't pin setuptools.)

Dieter Maurer dieter at handshake.de
Sat Aug 30 02:03:23 EDT 2008


Tres Seaver wrote at 2008-8-28 15:22 -0400:
> ....
>I don't think zipped eggs are a win in any real scenario, except
>possibly the goofy file-count-limited GAE.  I would strongly prefer that
>you revert this one change (you can override it in your own
>'~/.buildout/default.cfg').

We have observed a drastic speedup (on both Windows and Linux)
in import time (about 30 %) when we have put our complete
(large) application (consisting among others of Zope 2, CMF, Archetypes)
in a (single) zip file.

The probably reason:

  Python's module lookup is very expensive.
  It makes about 5 pokes on each entry in "sys.path".
  These become "stat" for directory entries.

  Looking into an in-memory zip content table is much faster
  than a filesystem "stat".


As the use of eggs drastically increases the number of entries
in "sys.path", Python's imports are likely to get slower.


However, I am not sure whether our observations for a single
large zip (in fact, we use two: one for our application, the other for Python's
runtime library) is valid for the case of many small zipped eggs.



-- 
Dieter


More information about the Zope-Dev mailing list