Monday 15 December 2008

Plone performance sprint

I (Ed Crewe) took part in the Bristol Performance sprint - or at least the first two days of it.
The project site details topics explored.

Key areas for performance increase looked at were:

ZODB storage paradigm - Lawrence Rowe et al.
ZCatalog querying (for set ops), splitting and queuing. - Jarn people
Chameleon - This precompiles page templates into python for execution speed improvements ... the guy who wrote it and the ZPT implementaion ... Malthe Borsch was looking at improving its effects.

Benchmarking and load testing

Alongside this there was the need to establish a testing framework and benchmarks to test against. The aim being to have a set of standard content profiles for realworld sites ... along with an easy to install load testing framework. Hence provide a set of standards with which to compare performance over time and code versions.

We decided to go for funkload over jmeter to reduce cross language dependencies and make the load testing code more accessible to plone / python developers. A recipe / buildout and set of test plans is being developed to make the installation of a standard load test benchmark available.

My part of the work was to do the content profiles ... so there is now an egg in the collective that generates content according to various options to provide a set of content profiles ... currently just going with small intranet and large public sites. Details in the README.

Hopefully collective.contentgenerator will be finished off within the next month or so, along with the load test recipes. They could then be used for a standard performance report on plone.org as versions come out.

NB: Also punted up the performance fix for placeful workflow for the latest version in terms of patch files.