[Zope-CMF] [Performance] "listFilteredActionsFor" unnecessarily expensive

Florent Guillaume fg at nuxeo.com
Wed Apr 6 10:35:45 EDT 2005


Dieter Maurer  <dieter at handshake.de> wrote:
> In our regular profiles, "listFilteredActionsFor" belongs to
> the top consumers of CPU time.
> 
> Recently, I found the main culprit (in CMF 1.4):
> 
>    It is the completely unnecessary:
> 
>       if not action in catlist:
> 
> In our case, "listFilteredActionsFor" spends about 70 percent
> of its complete time in the checking of "action in catlist".
> 
> How in hell should the same action be defined more than once
> such that we need to prevent such a case by an explicit check --
> especially by such an expensive one?
> 
> A comment before the line indicates that the author intended
> to check by identity. But, of course, "action in catlist"
> does *NOT* check by identity but by equality.
> 
> 
> I propose to remove the check altogether...

+1.

The three lines above could be reduced to one using .setdefault() too.

Florent

-- 
Florent Guillaume, Nuxeo (Paris, France)   CTO, Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   fg at nuxeo.com


More information about the Zope-CMF mailing list