On Tuesday 05 April 2005 10:13 pm, Andreas Jung wrote: > --On Dienstag, 5. April 2005 22:29 Uhr +0200 Dieter Maurer > > <[EMAIL PROTECTED]> wrote: > > In our case, "listFilteredActionsFor" spends about 70 percent > > of its complete time in the checking of "action in catlist". > > I did some profiling last week because Limi complained also about > the slowness of the same method. My profiling (with a fresh > Plone installation) told me that about 70% of the time is spend > within the loop where all action providers are asked to return > a list of matching actions. However Plone implements its own > listFilteredActionsFor() method which might be different from the > original CMF code.
The two versions are nearly identical (at least for CMF 1.4.7 v Plone 2.1); Plone has extra checks to handle FactoryTool and to handle broken/missing action providers. I am a bit surprised that this simple check would take 70% of the time as it's only evaluated for actions that pass the condition and permission checks, which would seem to be more expensive. I'd expect the evaluation of the conditions to be much more expensive, but if there are many actions available, looping through a portion of them for each available action could be quite expensive. I'm sure it all depends on the specific use case. Whatever the case, this check is almost certainly unnecessary, whereas the condition checks are unavoidable and difficult to optimize. Alec _______________________________________________ Zope-CMF maillist - [email protected] http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
