[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