[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