views:

764

answers:

7

Note: I am not into web programming, so forgive my ignorance in case the question is trivial. Also, please don't comment about "how flawed" the out-of-box comparison of these products is. The question is not about how they compete against each other, rather about the reason behind the incredible slowness of ALL of them.

Just read about a benchmark, where Joomla, Drupal, Wordpress, Plone3 & 4 had been tested. What shocked me is this: out of the box they performed around 4-14 pages/sec. How is this possible, why are they so damn slow? A CMS should just query a DB and churn out the data packed into nice templates. DBs are fast. Templates should be fast (text replacement, no big deal). Our machines are superfast and yet, these high profile CMSs could only produce a few pages/sec. How come?

+2  A: 

Because it takes a alot of processing to do all of that. ITs not a matter of "query, replace, render". All of thes products are made to fit a wide range of use cases and to be extensible to some degree so really those 3 basic operations your are talking about are split up into many, many operations all of which consume time.

All things being equal - the more flexible he system the slower it will be "out of the box".

prodigitalson
Agreed. He also did not run the test with any caching, which is fair in this case, but in most situations you will cache pages like the index page to save processing time. Wordpress can be very fast with a cache, but on its own it's not the speediest because like the others, it fits multiple applications.
Bartek
"3 basic operations your are talking about are split up into many, many operations all of which consume time": So is it processing time (CPU) and the usage of dynamic languages like Python and PHP?
Noonethere
Kind of yes. But more so than using being a matter of being dynamic is a matter of the requirements they try to fulfill and the architecture deised by the developers to fulfill those requirements. You could build a bare bonse cms that would process super fast... but it also woudnt have all the features that these have.
prodigitalson
+1  A: 

They are relatively complex systems. They allow a lot of hooks for plugins, so there's a lot of steps in the workflow from request to response.

In the real world, however, caching (whether in-application or opcode caching) is a tremendous boost to performance.

I'm not familiar with Plone, but the PHP CMSs essentially have to load and interpret almost the entire system with every single request.

Neville Flynn
A: 

In my opinion :

Because CMS and frameworks think of all the things you need, that you can use: like

  • Filter userinput
  • Create PDF,AJAX Output Template and alot more

It Depends on your need, what you realy need

Im not agree what you wrote

A CMS should just query a DB and churn out the data packed into nice templates.

A CMS Does a lot more things alot more ...

And at last but not least dont compare Desktop Software Speed with Wep Aplication.

There is a Big Difference

streetparade
+1  A: 

Please don't take offense to this, but to preface your question by explaining your unfamiliarity with web programming, and then criticize the performance of what appears to you to be a 'simple' operation is a bit short-sighted.

I would encourage you to learn a bit more about the common problems a CMS solves, and the general theory and practice of how dynamic web pages and HTTP work. It's far from a simple I/O operation.

Also, for practical use, I would highly encourage anyone running a CMS to find a caching solution. Caching is intended to solve a lot of the 'speed' problems that arise in web technology. It should be part of any common web stack.

Bryan M.
Well said. (filling out to 15 chars...)
prodigitalson
My question didn't meant to be a critique of CMSs. I have asked, because I wanted to know that answer. Thats all.
Noonethere
In articles people tend to take the 4-20 pages/sec uncached speed granted, and I haven't seen an explanation about what is taking so long. So, I thought "lets ask stackoverflow why". Whats the problem with this attitude?
Noonethere
Also, I am Drupal extensively, so patronizing crap like this makes me cringe. Let's see what you have done, 1. name calling the asker, 2. patronizing 3. how you would solve the problem. None of your paragraphs actually tell the reason behind the current performance of CMSs.
Noonethere
@noonethere I think you are being a little rough on @Bryan M. He honestly answered your question and did not do so in a patronizing way. Just my opionon.
JD
@Noonethere: if you are "Drupal Extensively" then you shouldnt have to ask this question. Drupal with only core enabled and a single theme makes tons of calls to produce a given page. If you use Drupal and want in depth understanding on your question id recommend http://www.drupalbook.com/ this will give you insight into what really goes on behind the scenes in a CMS. While it is Drupal specific, generally speaking all the various systems have this type of complexity regardless of whether they meet Drupal in extensibility.
prodigitalson
@noonethere I just think this is one of those questions that's too broad to be answered simply. If you had provided a specific problem with a specific platform, we may have been able to provide a more detailed answer. But your question was in essence like asking a bunch of physicists 'Why does the sun shine?' and getting offended when they tell you it's complicated. No one here has the time to explain from top to bottom the entire request cycle of a CMS system.
Bryan M.
+3  A: 

A CMS should just query a DB and churn out the data packed into nice templates.

Not so much. Major, modern CMS systems are incredibly complex beasts. A typical page isn't merely body text and a title, but also dynamic category-based content queries that aggregate info across many site areas; not to mention security trimming and user-specific content zones. For example, loading http://www.volvogroup.com involves at least 7 of these queries, plus recursion through the site structure to generate navigation, and connecting to external systems to pull in news and investor relations data. Considering that, it shouldn't be such a surprise that it takes a beefy server farm to serve up several hundred hits per second.

Rex M
+1  A: 

They are slow for a few reasons:

1 - Most of them are very modular,that means more files, more code and more DB queries.

2 - They largely (not wordpress so much) try to do everything, again designing a system for every possible situation makes it more complex and harder to tune.

3 - Most of them (currently) support both PHP4 and PHP5, this is again just extra work.

4 - They are allegedly made so non-technical users can use them, which means they often have to do things in a way that is not the most efficient, i.e. Drupals CCK / Views lets people that can't programme effectively create database tables and SQL queries, the flaw being these tables / queries are very general in design and are rather inefficient in comparison to custom coded efforts.

5 - They tend to use lots of DB queries, Drupal uses 40 or so for a very basic page and if you search their forums you will see reports of people claiming some pages make hundreds or even over a thousand queries.

They do of course offer caching and Drupal can get quite good performance from things like its boost module, the flaw being one of Drupal's (and Joomla's) selling points is you can make a community site, forum, Digg like site in it, all sites where caching is of limited use...

A: 

A CMS Does a lot more things alot more ...

And at last but not least dont compare Desktop Software Speed with Wep Aplication.

There is a Big Difference

fred