David Glick a écrit :
> On Aug 3, 2009, at 1:46 PM, toutpt wrote:
>> I m currently profiling the code of Plone to find performance issue and
>> fix them (i m sure there are a lot).
>> There are things I don't understand very well, so sorry if I m wrong.
>> The code of CMFCatalogAware.opaqueItems parse every attributes of
>> plonesite and evaluate this for each attribute:
>> ICallableOpaqueItem.providedBy(obj) or
>> isImplementedBy calls takes 30% of the time spent.
>> But z2ICallableOpaqueItem is a Zope2 interface and I m not used to this
>> kind of object. It seems they are generated on runtime, so for me it's
>> hard to debug.
>> My questions are:
>> * What are opaqueitems (any example ? I don't have find anything usefull
>> in tests of CMFCore)
>> * Is zope2 interface are still used and why ?
>> * How could I replace those calls, or improved this code that always
>> return an empty tuple
>> PS: sorry for cross posting if there are because i have some issues
>> with my other email address.
>> - JeanMichel FRANCOIS aka toutpt
> This has already been fixed in Plone 4 (by monkey-patching CMF to only
> pay attention to the 'talkback' opaque item which is used for
> discussions). In Plone 3 you can avoid this performance issue by
> installing the experimental.opaquespeedup package (thanks to Jarn) --
> David Glick
> Web Developer
experimental.opaquespeedup is good but not enough for me. The load tests
results are not enough, I want to be more 'aggressive' and
experimental. For me this package is backward compatible and do a
catalog query instead of parsing all attributes. I want to do nothing
except support 'talkback'. I want also to release this package on pypi,
and I want your opionons:
* makina.opaquespeedup (makina is where I m working)
* any other idea ?
My vote goes to experimental.aggressiveopaquespeedup
Zope-CMF maillist - Zope-CMF@lists.zope.org
See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests