[Zope-CMF] CMF write performance as poor as Plone?
Charlie Clark
charlie at begeistert.org
Sat Nov 22 09:39:31 EST 2008
zop
Am 21.11.2008 um 07:31 schrieb Andreas Jung:
> hmm....so why is CMF here nearly as bad a Plone. In Plone we know
> that everything is indexed various times (also in CMF I think) but
> Plone has much more indexes and metadata compared to CMF. A request
> in Plone goes through much more layers than in CMF....I am currently
> clueless interpreting the results. My current interpretation is: a
> custom CMF-based implementation of a CMS will be comparable slow/
> fast as an out-of-the-box solution?!
Hi Andreas,
a very interesting situation. I've never thought of object creation
when choosing "pure" CMF over Plone as this is largely a ZODB issue.
As Roché points out it is less likely to be the transactions and more
likely to be the cataloguing and any other event subscribers that are
limiting factors here. Speed comparions between CMF and Plone only
make sense for serving content where I find pure CMF to be at least 10
times as fast as Plone - I think the speed difference is largely down
to the sheer size of Archetypes and the overloading of getattr().
For tests you might want to see if you can defer indexing and I'd
suggest explicit transaction management. Any chance you can run the
tests outside the ZMI?
I currently have a migration from Plone to CMF and this is a bit of
the code I use.
import transaction
from zope.component import createObject
from zope.app.container.interfaces import INameChooser
from zope.event import notify
from zope.lifecycleevent import ObjectCreatedEvent
for i in range(randint(1,500)):
d = createObject("cmf.document", "")
d.id = INameChooser(results_folder).chooseName(d.getId(), d) # this
will be a bottleneck
results_folder._setObject(d.id, d)
transaction.commit()
for obj in results_folder.contentValues(filter='Document'):
notify(ObjectCreatedEvent(d))
You can run this to see the time it takes to create the invidiual
objects. You could run the transaction within the loop to see what
effect that has and you can add notification of the object creation to
the loop or outside of it to see how the event subscribers (usually
the portal catalogue) affects things.
Charlie
--
Charlie Clark
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-938-5360
GSM: +49-178-782-6226
More information about the Zope-CMF
mailing list