Main  /  Edit  /  History  /   /  Users Area

Case Study: CppCMS vs PHP

Benchmark

In this benchmark two technologies were compared: CppCMS and PHP.

This blog, written using CppCMS technology was compared to WordPress blog powered by PHP5.

Setup

I had compared two blog systems: this one and WordPress 2.5 with a patched WP-Cache-2 addon. I used following configuration:

  1. Web Server lighttpd 1.4.13
  2. Interface FastCGI
  3. PHP 5.2
  4. Bytecode cacher: XCache 1.2.1
  5. Database MySQL 5.0
  6. Caching for WP: WP-Cache-2 with an additional performance patch that caches already deflated versions of page in order to reduce requirement of re-compressing on cache hit.
  7. Hardware: AMD Athlon XP 64bit, 1G RAM
  8. OS: Linux, Debian Etch 64bit.

I prepared two blogs that were filled up with 1000 articles each. Each article had 10 comments, all the articles were organized in 10 categories in each blog.

Tests

First I run load tests with disabled caching system.

Then the cache was enabled and cleaned before each test run. Each time, the cache was "warmed up" with 100 requests of different pages. Then CMS was loaded by http_load with 1000 requests from 5 concurrent connection. The client was patched in order to send a header: Accept-Encoding: gzip, deflate in order to fetch compressed pages: the real live situation.

For each run, the cache included a certain percent of new pages (in order to achieve a correct hit/miss ratio) and the rest were taken from the 100 "warm pages".

Results

CMSNo cache fetches per second ratioWarm up time
WordPress: 7.613.0 s
CppCMS: 3100.28 s
Miss ratio (%) WordPress CppCMS
07112300
13702160
31761940
51181790
10641450
15411210
20331075
3020795
4013570
5013570

Results

Conclusions

The caching system, significantly improves both CMS written in PHP and C++. However, when hit/miss ratio grows to few percents, the performance of the CMS written in PHP drops very fast and at 3% miss ratio the difference between CppCMS and WP becomes the difference of more then 10 times.

The CppCMS system holds lower hit/miss ratio much better then WordPress with WP-Cache-2.

Hi. I have some suggestions: 1)For the tutorial, put all codes which are supposed to appear together in one cpp file or header file together at the end of the tutorial and make sure that line numbers do not start from 1. 2. 3. again in each section of tutorial. Currently, it is not clear where a function or a file begins and ends because there are broken pieces of codes and all being with 1. 2. 3. 2)I am not familiar with web programing. I think people like me prefer to use cpp files to wrap html codes or probably there are good html "designer", like GUI designers, that produces the code and I can copy-paste for the "view" in CMV.


Navigation

Main Page



Valid CSS | Valid XHTML 1.0