[Framework-Team] Re: A short update on performance
rocky at serverzen.com
Tue Mar 6 11:55:30 UTC 2007
On Mar 6, 4:52 am, "Alexander Limi" <l... at plone.org> wrote:
> - Rocky's fix to Zope 2.10 fixes the worst of the performance penalty, but
> calling contentmenu.pt still takes 0.76s with his changes - the
> threadlocal cache in TypesTool got it down to 0.27s (with 2.10.2's broken
> code, it took a ridiculous 6.38s).
Lol, glad to see some improvement here.
> - Plone 3 is a tiny bit faster than 2.5 for rendering the document view
> (3.07s vs 3.47s). We should be able to do better than this. ;)
> - Rendering the edit page is slower in 3.0 - predictably, since it does a
> lot more now. It takes 6.29s to render it after the optimizations Hanno &
> co did (8.96s before). As a comparison, Plone 2.5 took 4.54s, but only
> rendered a small subset of the widgets that are there now.
Right, makes sense. Perhaps it's time to start profiling some of the
more expensive widgets themselves? I wonder what would happen if we
had enough zope3 widgets to produce a sensible formlib-based edit
form... Obviously simply using zope3 tech doesn't necessarily make
things faster, but it would allow for cleaner code and as a result
theoretically in easier to performance tune. Anyway, I'm just
rambling as this certainly won't be targetted for plone 3.
> - TypesTool in CMFCore - adding the threadlocal cache makes that part
> close to three times as fast, even after the recent Zope 2.10 fix. I think
> we should do this, as we already subclass TypesTool, and adding the
> optimization cache here is a quick win.
Yeah, theoretically the change should go into CMF's TypesTool and not
hours. Perhaps if someone has time (not me at the moment) we could
submit a patch to the CMF group we just override in Plone.
> - plone_view/globalize in views is the most expensive call we do by an
> order of magnitude. On the average view template, globalize takes up
> 0.52s, and the next most expensive call is
> mtool.getMemberInfo(user.getId()), which takes 0.04 seconds (ie. not worth
> optimizing). If we can make globalize faster, everyone wins. :)
More information about the Framework-Team