[Zope-CMF] Re: [dev] listFilteredActionsFor performance
yuppie
y.2005- at wcm-solutions.de
Tue Apr 26 07:00:34 EDT 2005
Hi Tres!
Tres Seaver wrote:
>
> yuppie wrote:
>
>>[...] Within the WorkflowTool,
>>worklists are by far the most expensive Actions.
>
>
> ... because they involve catalog queries. We could perhaps optimize
> that query via a dedicated TopicIndex for the 'review_state' portion.
Sounds like a good idea. I guess the news box could also benefit from a
TopicIndex.
On the other hand there are other issues with worklists:
- They are defined per workflow, but are often not workflow specific.
This leads to duplicate worklists and removing the duplicates makes
workflow definitions depend on each other.
- They are the most complex Actions and I'm afraid most of its features
are YAGNI.
Maybe instead of using Actions CMFDefault should have a box like the
news box to show worklists?
> - The MembershipTool has ridiculously expensive expressions for its
> actions. I added two new top-level names to the Expression
> namespace, 'member_folder' and 'member_url', which made the
> expressions both cheaper (the bypass some redundant security
> checking) and simpler (therefore cheaper as well).
Looks like a trade-off: If the site uses member folders the related
Actions are cheaper. But if not, computing these values is waste of time.
> - The action providers all manufacture their own expression contexts,
> which might be a hotspot.
Sorry for the confusing implementation. But the fact expression contexts
are not passed to the action providers does not mean they are
manufactured again and again. getExprContext() calls createExprContext()
only once and caches the result.
BTW: Just in case you want to work on ActionInformation.ActionInfo: The
CMF HEAD version of ActionInfo is quite different, using a new Action
interface. Maybe those changes should be backported to CMF 1.5 before
you try to optimize the 1.5 code.
Cheers,
Yuppie
More information about the Zope-CMF
mailing list