Sunday, January 17

Plone 4 - How much faster is it?

During my work on Plone "trunk" in the last year, I kept posting some fancy graphs showing the speed improvements for rendering pages. Much has happened since I last posted one of these in March 2009.

The newly coined Plone 4 is almost ready for a beta release and some companies have started using the alphas for production projects. Overall it's snappy, fun and stable. But how does it stack up against my experimental work? I got the good old ZPTDebugger out and optimized some more rough edges during the weekend and squeezed out another 10%. See the result for yourself:

Compared to Plone 3.3 Plone 4.0 is about 50% faster, ranging from 30% for edit pages up to 70% for anonymous page views. If you use the Chameleon template engine, you get two to three times the speed compared to 3.3.

As a little experiment I trimmed down the default content, portlets and viewlets in a 4.0 site to match what I had done in my experimental work. So I removed all portlets, hid the section, personal bar, site actions and content history viewlets and measured again. In the Chameleon setup you get the same kind of results as I did back in March. For anonymous page views, we are roughly at 50 requests / second. Removing all those elements might sound somewhat odd, but if you don't need some of these features or use xdv to supply some of these elements as static HTML, you can actually get close to these numbers.

It's good to see my work finally in the mainline and available to all. Now onwards to the next adventure, making Plone easier to use and develop for :-)

P.S. The controlpanel stats are indeed correct, though they look pretty odd. I didn't try to find the cause of the slowdown compared to all other page types.

12 comments:

Jon Stahl said...

Wow, very impressive results indeed!

I can't think of any other CMSes than can pump out 50 pages/second with no caching!

Martin Aspeli said...

For the record, can you explain how to enable Chameleon so that people can test?

Any problems with Chameleon on Zope 2.12/Plone 4?

limi said...

Martin, there's an "experimental/chameleon.cfg" in the current coredev buildout that will set up Chameleon for you.

There are some issues, mostly around translations not always working, see (for instance) http://dev.plone.org/plone/ticket/9224

pigeonflght said...

Looking forward to seeing some benchmark comparisons to some PHP CMSes in a few months from now.

fiveiron said...

Great news. Might be a stupid question, but I assume that Chameleon optimizes template rendering, so this means I'll still get the speed benefit even if I'm using XDV transforms to render the skinning side of Plone4?

limi said...

fiveiron — yes, you get the advantages no matter what you use for theming on the front end. There's a reason we want to ship Plone 5 with Chameleon as the default story for templates. :)

tesdal said...

The control panel isn't using Archetypes.

Hanno Schlichting said...

@tesdal: Exactly. The control panel I use here is the @@site-controlpanel, which has a couple checkboxes, a text field and some selects and uses zope.formlib. It's similar in complexity than the logged-in page view. But the difference in performance is very noticeable.

Jon Stahl said...

Hanno,

What kind of environment were you using for these benchmarks? I ask because my 2GHz MacBook is only hitting about 11 pages/sec for plone 4 anonymous pages, where you're reporting 22.

Jon Stahl said...

Never mind, I'm a dope, running in fg mode.

Matt Hamilton said...
This post has been removed by the author.
Matt Hamilton said...

Hanno, great work! Following on from this, I've just run a similar test, but based upon a simple 'real' site we designed:

http://www.netsight.co.uk/blog/2010/1/19/plone-4-speed-in-real-life