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

Dieter Maurer dieter at handshake.de
Tue Apr 5 16:29:38 EDT 2005


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...

-- 
Dieter


More information about the Zope-CMF mailing list