简体   繁体   中英

Web CMS Performance: pages/second (Joomla, Drupal, Plone, WP)

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?

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.

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".

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, ie 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...

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.

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.

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM