How intense is Concrete5 on the database?

Permalink
A WordPress webdesigner myself, being continously intrigued about the goodness offered by Concrete5, I've often been wondering:

How server-intensive is Concrete5 compared to something like WordPress or Drupal? How much does it hit the database to do its work?

Is there a snipper I can input in the footer to see page load time and number of db queries executed for a particular page load?

Not trying to start a "vs" debate at all, just interested in knowing what I could expect from a high traffic Concrete5-driven site.

What are the pitfalls/bottlenecks? In WordPress too many static pages (opposed to posts) can be bad, and in Drupal each active module generates an extra database query for each node, which means newspaper sites running Drupal may have several thousand queries per page load. Again, not knocking Drupal, WordPress or Concrete5, just curious.

 
bcarone replied on at Permalink Reply
bcarone
This is a great post and I will hope that Andrew or Franz will answer from a C5 perspective.

A lot of folks can put their input in on this and several folks have optimized thier servers and have had a lot of great success.

I am sure you will get some great responses from this post.
jaredquinn replied on at Permalink Best Answer Reply
jaredquinn
Concrete5's awesome caching comes into play most here... It's powered by Zend's cache module.

Without it.. a really simple front page on one of my sandbox sites uses 891 individual queries to render the page.

With the cache turned on, this reduces to 53 individual queries.

Of the 53, the very first one is to check to see if the Cache module is enabled in the settings.

We then do some other essential stuff, like check permissions, insert into the page statistics table, and select the required blocks for the page.

I would strongly advise against running a live site without cache, however I keep my main development sandbox with cache turned off, as I'm regularly developing ad ons and playing with themes in that environment.

Jared
webmatros replied on at Permalink Reply
Hey Jared

Interesting. That's a lot of queries when uncached. Is your sandbox install complicated? What makes it generate all those queries?

How can I count the number of queries on my own install?

Oliver
jaredquinn replied on at Permalink Reply
jaredquinn
I counted mine by enabling query logging in mysql; and then using the site with cache turned on and off with some grepping of the query log and wc to count the matching lines.

Not the most accurate way to do it, but certainly the easiest to get a bit of an idea.

Jared
ijessup replied on at Permalink Reply
ijessup
webmatros,

c5 can be pretty freaking intense, no doubt. But this is a trade off due to how customizable it is.

I would have a tough time explaining the process of just rendering a single page without writing a few chapters of a book on the subject.

However, as Bill and Jared pointed out, caching helps reduce the number of queries and is frankly a MUST for live sites.

For more info on c5's caching, check out:http://www.concrete5.org/documentation/developers/system/caching...

Though I haven't used it, most people say APC is one of the best libraries to use.
webmatros replied on at Permalink Reply
Hi Jessup

I already use APC and can say it indeed speeds up matters regarding Concrete5;-)

Now, even with caching, 53 queries for a simple page (according to Jared) is more than double what a typical WordPress page takes (which is typically around 20 according to my own experience). That's as you say (and I agree) a tradeoff due to the flexibility of Concrete5.

But how scalable is Concrete5 then? What are the biggest most complex sites running Concrete5 (apart from concrete.org)? Would love to see them, and find out how much serverpower they require.

You see, as one of my clients sites (built in WordPress) is getting bigger and more visited, I find I do more and more performance-related work on it, so I'm getting a growing interest in performance of the CMS choices I make nowadays;-)

Have a nice friday btw;-)
Oliver
ijessup replied on at Permalink Reply
ijessup
http://draftnasty.com/ is the most complex thing I've done that is live. But lately I've been working on intranet stuff that involves multiple databases and is pretty freaking complicated.

DraftNasty is slow for 3 reasons. 1) Because it gets tons of traffic and its on a shared host. 2) It load a lot of JS from other domains (ads and sharethis-bar). And 3) The pages are pretty heavy, content-wise, as is.

So its more a matter of bandwidth (transferring data) than processing issues (sql qureies).

The only time I've noticed RAM and processing power being used in large quantities is when performing recursive or complex PHP scripts (like scraping other sites). Otherwise, as far as MySQL goes, its one of the fasted SQL engines out there to begin with.

If ~53 per page is excessive, then you must be working on sites that get millions of visits per day. If that's the case, those sites should be on a dedicated host anyways, with plenty of breathing room.

There's likely extra overhead because c5 uses the ADOdb library, but again this adds some seriously easy flexibility with regards to development.

So to go back to your original post, is c5 the most efficient CMS out there... probably not, but I'd rather Andrew or Franz tell you that and why.

But, and I've experienced working with Wordpress, Drupal and Joomla!, I've deployed custom developed sites far faster with c5 than any other CMS... hands down. I don't mean to go fan boi on you, but the API is brilliant and simple.
webmatros replied on at Permalink Reply
Nah, 53 queries is not a lot, I just look at it as a baseline, to give me a rough figure.

Go fanboy all you want;-) Only good to have passion and enthusiasm for a product, it's contagious and Concrete5 deserves more attention than it's currently getting.
ScottC replied on at Permalink Reply
ScottC
well webmatros, in 5.4.1 regards to concrete5 which is still beta, I remember reading that Andrew said that some pages, as long as the statistics are disabled and the blocks are set up correctly, they'll render without ever hitting the database, period :)

So things are getting much better.
webmatros replied on at Permalink Reply
Yeah I've heard the rumors of 5.4.1's efficiency. How far away is 5.4.1 on the horizon?

How stable is the beta? (if that can be said of a beta;-)
ScottC replied on at Permalink Reply
ScottC
i have been actively developing on it for last 3 weeks(at least, can't remember) using rev 1956 from SVN.

I haven't found any real issues with it, but I have been developing with the cache off.

-Scott
Tony replied on at Permalink Reply
Tony
andrew's been doing a lot of great work this past couple of months improving concrete's performance, including block level caching and static page caching, that should reduce the load of the database significantly. it should be released in concrete5.4.1
ijessup replied on at Permalink Reply
ijessup
Andrew is a god... no doubt. :D