I was curious on how some of these frameworks or CMS differ in terms of response time. So I did this very simple test.
My hardware: dual xeon, 3GB RAM, two 7200 RPM SCSI disks.
Software version: Drupal-5.7, mysql-5.0.54, apache-2.2.8, lighttpd-1.4.18-r3, php-5.2.6_rc1-r1, PECL-APC-3.0.6, Gentoo linux kernel 2.6.24-gentoo-r3
Data: the Drupal database was from a production website, with over 200MB in size, about 9000 nodes, 280 taxonomy terms, and 100 users.
On apache, it uses mod_php, with APC enabled.
On lighttpd, it uses fastcgi, with APC enabled.
Using apache benchmark test, downloading the home page, I got
- 30 reqests per second for drupal on apache
- 35 requests per second for drupal on lighttpd
For this particular website, each home page request takes 33 SQL queries to generate the page.
Although lighty uses less CPU power per process, the connecting time is longer.
Next, I downloaded and installed a test pylons app http://wiki.pylonshq.com/display/pylonsdocs/QuickWiki+Tutorial. I configured it to use Mysql, and created one article.
The apache benchmark test showed that this test pylons application can also handle 35 requests per second. For drupal, mysql consumed the most CPU power. For pylons, paster consumed the most CPU powers.
A simple "hello world" pylons application could process about 60 requests per second. I have pylons 0.9.6.1, and python-2.5.
At this point, pylons performance has not impressed me a single bit. When I have more time, I will do some more research to find out why it can only return 60 "hello world" responses per second.
In the meanwhile, I setup spring framework-2.5.2, on Tomcat 6.0.16. A simple "hello spring" application was able to return over 680 requests per second.
Anyway, that's what I've got so far. Here is another simple benchmark comparing PHP's Symphony, Ruby on Rails, and Django: http://wiki.rubyonrails.com/rails/pages/Framework+Performance
Comments
Post new comment