[Zope-dev] Zope.pipeline proposal

Martijn Faassen faassen at startifact.com
Wed Feb 25 12:50:35 EST 2009


Hey,

Tres Seaver wrote:
[snip]
> In general, if you need full-on backward compatibility with the existing
> behavior of Zope2 / Zope3 / Grok, switching to a paste-driven WSGI
> pipeline doesn't gain you much speed (but it is not a loss, either).
> If, for a given application, you can relax the BBB requirement, then
> some performance wins are available via WSGI which can't be made in the
> monolithic publisher (dropping out features by removing the middleware
> layer).

As for Grok I hope we can break some backwards compatibility and get 
some larger performance speedups. We definitely need to aggressively 
keep moving forward in this area. Not even primarily for speed gains but 
  also for comprehensibility; I find Chris's "what's it doing" report 
far more worrying than differences in speed at this point:

http://plope.com/whatsitdoing2

This is why zope.pipeline is such an important effort to me. Not that it 
will immediately make things better, but it would hopefully open up a 
path to move the Zope Framework forward in this area.

> Real speed wins only come from more radical simplifications:  for
> instance, repoze.bfg drops the adapter-based traversal semantics in
> favor of using only __getitem__.  The fact that the BFG "hello world"
> app is ~20 times faster[1] than the Grok "hello world" is due to such
> simplifications.

In a hello world the overhead of the publisher dominates in a way that 
in normal applications it probably doesn't, so what are "real speed 
wins", as usual, will depend. Improvements in template language 
implementations might gain us more. That said, recent profiling of Grok 
with chameleon make that a small component too, so perhaps it *is* the 
publisher. Oh the joys of profiling! :)

Regards,

Martijn



More information about the Zope-Dev mailing list