Home  /  RSS  /  RSS Comments  /  RSS for Cache  /  Enter

Posts in category ‘Cache’.

API Changes and mod-prefork

Friday, July 4, 2008, by artyom ; Posted in: Progress, FastCGI, Framework, Cache; 0 comments

There have been lot of work in recent weeks in order to make deep internal changes in the framework. Now they include:

  1. Transparent support of 3 web server APIs: fastcgi, cgi and scgi.
  2. Support of new mod prefork that allows safer management of worker processes.
  3. Implementation of a cache that is shared between forked processes.

CppCMS vs WordPress

Monday, June 9, 2008, by artyom ; Posted in: Benchmarks, Framework, Cache; 7 comments


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


Patch For WP-Cache-2 plugin

Friday, June 6, 2008, by artyom ; Posted in: Benchmarks, Cache; 0 comments

I'm going to run a heavy benchmarks comparing WordPress -- the blog system I know very well, with CppCMS based blog -- the system I had written.

The new caching system that was developed for CppCMS is quite smart, it stores the entry pages twice: original and gzip compressed. On heavy loads, this allows serving pages significantly faster because only thing that should be done is to push html or compressed html page directly from the cache. Otherwise, gzip compression (even fastest) would take lots of resources and reduces a preformace of the system.

When it comes to benchmarks, I had discovered that WP-Cache-2 plugin does the job well, but it caches only html version of the file, thus, even if the page is cached it still must pass a compression by Apache's mod_deflate or by PHP engine itself.

I had patched this plugin and now it stores two versions of same page: an original and compressed. and was able to get 60% performace improvement.

So after this patch I can feel that the benchmarks would be proper, because without it this would be incorrect to compare time required for fetching a cache with the time required for compressing entry page.


N.B.: The full benchmarks coming soon

The Roadmap to The First Beta Version of CppCMS

Wednesday, April 16, 2008, by artyom ; Posted in: Progress, Storage, Templates, Framework, Cache; 4 comments

After quite a long period of development I had decided to get prepared to first public beta release of CppCMS.

The major components of this blog and the framework I want to introduce in first beta are following:

There are lots of work to do, but CppCMS now looks much mature then before.


Next Step - Caching

Thursday, January 17, 2008, by artyom ; Posted in: Progress, Templates, Framework, Cache; 5 comments

As we had seen in previous article, the benchmarks had shown an ability of CppCMS to produce about 630 compressed pages per second and an output of about 20Mbit/s. Is this enough?

For most of cases it is... But as we had seen I want to use every cycle of the CPU as smart as I can. Even, if the model I had suggested, was able to show "a prove of concept" there is an important point that was missed: "Why should I create same page so many times?"


This is the next logical step in the development of high performance web development framework.

First of all we should understand a requirements of the caching system:

  1. Efficiency
  2. Support of "dropping cache on update"
  3. Support of drop the cache by timeout
  4. Work using three models: single process cache, shared cache between processes, shared over the network.
  5. Support of caching on entry page level and single view level as well
  6. Transparent storage of compressed content

Lets describe each one of them:


next page

next page