home about us blogs contacts

Battle N2: Typo3, Joomla!, and Drupal CMSs performance testing

Published by alex.shapovalov on July 2, 2008 under drupal, joomla, typo3  

“More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason – including blind stupidity.”
William A. Wulf


Since my last article about performance comparison of popular CMSs: Typo3, Joomla!, and Drupal [typo3-joomla-and-drupal-cmss-performance-testing.html] I got enormous amount of messages, emails and notes.

Most discussed question is:
*What the hell you didn’t turn cache on, and forgot about optimization?

And comments like:
In case of optimization zzz will take first place.
No one runs systems like that in real life. Every real web server is optimized for performance ..

I answered several times with:
I make tests to test effectiveness of pure systems rather then caching sub-system or optimization methods.
Developers should think about effectiveness of their components and don’t pass care about performance entirely to caching or other technics.
Surely cache is good as well as better CPU, bandwidth, and cluster when solution is already got all benefits of good software design.

But if you want OK.
I will turn ON everything I know on all CMSs, and will make all environment optimizations. I hope you will be glad.

Surely if you are hacker that want to tune all the daylights you will beat any system.
Let’s think that this environment presents common set of optimizations on general production system.

Prepared configuration

architecture: x86
CPU: 3.0Ghz
RAM: 512Mb
OS: Debian GNU/Linux lenny/sid (testing)
kernel: 2.6.22, optimized for current computer configuration

software versions:
apache: 2.2.8
php: 5.2.5-3
mysql: 5.0.51a-3

joomla!: 1.5.3
drupal: 6.2
typo3: 4.2.1

web-server API: apache2.0 handler
processing model: mpm-prefork [http://httpd.apache.org/docs/2.0/mod/prefork.html]
MaxClient adapted for load
excessive login disabled
HostNameLookups dissabled

XCache PHP opcode cacher installed [http://xcache.lighttpd.net/]

xcache.cacher = On
xcache.optimizer = On
xcache.coverager = Off

xcache.size=64M # cache size
xcache.count=2 # cpu count

xcache.var_size = 64M # variable data cache size
xcache.var_count = 2 # cpu count

mysqli database adapter used where appropriate
bin log disabled
query_cache_limit = 2M # default was 1M
query_cache_size = 64M # default was 16M
table_cache = 256 # default was 64
key_buffer_size = 64M # default was 16M

CMSs returned specially prepared page contains:
menu, login form, 2 articles with overall size 40Kb
Testing series contains results for 10, and 20 simultaneous users.

comparison results

results in the tables are presented in milliseconds per page request
and surely smaller result is better.

10 users

joomla drupal typo3
average 101 19 71
median 100 18 71
90% results line 145 30 103
min 19 8 16
max 289 60 570

20 users

joomla drupal typo3
average 237 47 187
median 196 41 146
90% results line 357 72 318
min 18 8 16
max 7323 356 4378

fast conclusion:
Drupal uses caching mechanism more effectively that explains such lag of others.
Numbers, and graphs are very loud, and so I think you don’t need any additional descriptions.

You can always compare this result with result without optimization techniques using my previous article [typo3-joomla-and-drupal-cmss-performance-testing.html].

Be Sociable, Share!

Tags: , ,

11 Responses to “Battle N2: Typo3, Joomla!, and Drupal CMSs performance testing”

  1. Anthony says:

    Well, Looks much better than the previous one, but I question, did you enable the cache plugin in Joomla? It looks like not. The cache plugin is equivalent to one of the Drupal cache settings, so is it an apples to apples comparison?

  2. alex.shapovalov says:

    Hello Anthony.

    I agree with you, but this time I have enabled cache plug-in in Joomla!.
    Without this plug-in I got following results:
    10 users:
    average: 333ms
    median: 322ms
    90% results line: 443ms
    min: 47ms
    max: 10097ms

    any questions?

  3. Dmitry Dulepov says:

    I am not sure what you mean “use it partially” in relation to TYPO3. Do you have any USER_INT objects on page? Then comparison is not really fare. If you don’t have any such objects, then “use it partially” is not a right phrase in regard to TYPO3.

  4. alex.shapovalov says:

    Hello Dmitry Dulepov.

    Thank you for your comment.
    I think you are right I don’t use any USER_INT objects with Typo3 and so I have rewritten that phrase.

  5. Antheor says:

    Thx for the tests.
    Would you mind adding expressionengine to it (or do you plan to wait EE 2.0) ?

  6. alex.shapovalov says:

    Hello Antheor.

    Unfortunately we don’t use commercial CMSs.
    I think that there are enough high quality open source CMSs and
    no any reasons to commercial ones.

  7. Antheor says:

    Thx for your answer. I understand your point of view.
    (but maybe it could show how open source CMS behave in front of a commercial one …)

  8. remyshoe says:

    Great comparision and thinks for these info!
    We are going to choose one open source CMS for a website’s re-developing. The blog, forum and performance are what we need. This article is a guidline for me …

  9. John conrad says:

    I found your blog by chance . but i have to say that it’s great blog very useful information and very interesting subjects just greetings and good luck
    i’m not going i will be always checking for updates.I’m very interested in CMS and all its related subjects.

  10. Online Marketing Agentur says:

    Hi @all,
    I love Joomla! I think it’s easier to learn as TYPO3. But when I see this statistics ….

  11. John Jolsh says:

    Ever since I started working with CMS, I’ve always recommended Drupal to most of my clients. But hey, that’s just me; I love the speed and the useability of Drupal. Thanks for sharing this! It only justifies why I love Drupal!

©Helion-Prime Solutions Ltd.
Custom Software Development Agile Company.