Wednesday, October 16, 2013

Benchmark Reports on C Based Framework

Because C based framework already running inside the web server, it's obvious that C based framework run faster, and need less resource than PHP based framework. But now we'll take a look several benchmark reports as proofs. This is a simple "Hello World" test, simple MVC logic, no database connections, no complex logic:
Hardware platform
CPU: Intel Core i5 750 (2.67GHz x4)
RAM: 4GB
Software Environment
Debian 6.0.4 x86_64 (2.6.32-41)
apache 2.2.16 (mpm-prefork,mod-php5)
php 5.3.10
php-apc 3.1.9 (Optimization for include/require)
Copy all projects to /dev/shm/* (Optimization for files read/write)
Frameworks list
* zf: Zend Framework
Site: http://framework.zend.com
Ver: 1.11.11
* zf2: Zend Framework
Site: http://framework.zend.com
Site: https://github.com/zendframework/ZendSkeletonApplication
Ver: 2.0.0-beta1
* symfony: symfony
Site: http://www.symfony-project.org
Ver: 2.0.0
* cakephp: CakePHP
Site: http://cakephp.org
Ver: 2.0.4
* ci: CodeIgniter
Site: http://codeigniter.com
Ver: 2.1.0
* yii: Yii Framework
Site: http://www.yiiframework.com
Ver: 1.1.8
* micromvc4: MicroMVC
Site: http://www.micromvc.com
Ver: 4.0.0
* laravel: Laravel, A PHP Framework For Web Artisans
Site: http://laravel.com
Ver: 2.0.2
* slim: Slim Framework
Site: http://www.slimframework.com
Ver: 1.5.0
* yaf: Yet Another Framework in PHP Extension
Site: http://code.google.com/p/yafphp
Ver: 2.1.3-beta (yaf.cache_config=1)
* FuelPHP: Simple, Flexible, Community driven Web Framework
Site: http://fuelphp.com/
Ver: 1.1
* ColaPHP:
Site: http://code.google.com/p/colaphp/
Ver: 1.2-ga
# XHProf: A Hierarchical Profiler for PHP
Site: http://pecl.php.net/xhprof
Ver: 0.9.2
# The source code of this testing:
Source: https://github.com/eryx/php-framework-benchmark
1. Apache Benchmark
Requests pre second (-c 100 -n 30000), the bigger is better
Requests pre second (-c 200 -n 50000), the bigger is better
2. System LoadAvg
System LoadAvg in 1 Minute when Apache Benchmark Complete,
the smaller is better (-c 100 -n 30000)
3. Memory usage
How many memory usage in one "hello world" page. the smaller is better.
4. Response time
The time of page request to response.
5. Number of function calls (Facebook XHProf)
The number of functions calls in one "hello world" page.
The detail of function calls map
Symfony2Zend Framework 1.11.1
Zend Framework 2.0.0-beta1CakePHP 2.0.4
CodeIgniter 2.1.0Yii Framework 1.1.8
Slim 1.5Laravel 2.0.2
MicroMVC 4.0.0Yaf 2.1.3-beta
FuelPHP 1.1ColaPHP 1.2
6. Number of Files
The number of files included or required in one "hello world" page. the smaller is better.
And this is more complex test from various framework.

And another benchmark "Hello World" test, but this time we sent 2000 requests using 10 concurrent connections to each framework.
Framework / Requests per second (#/sec) [more is better]Requests persecondZendLaravelSymfonyFuelYiiKohanaCodeIgniterPhalcon2009001,6002,3003,000
Framework / Time per Request (mean, across all concurrent requests)[less is better]Time perRequestZendLaravelSymfonyFuelYiiKohanaCodeIgniterPhalcon0.20.91.62.33.0
Framework / Number of included PHP files (mean, number on a singlerequest) [less is better]Number ofincluded PHPfilesZendLaravelKohanaFuelYiiCodeIgniterSymfonyPhalcon020406080
Framework / Memory Usage (mean, megabytes per request) [less isbetter]Memory Usage(MB)ZendSymfonyYiiLaravelKohanaCodeIgniterFuelPhalcon0.40.81.21.62.0
From various independent benchmark reports, you can see C based framework (represented by Yaf and Phalcon) has a higher and better results than PHP based framework.


0 comments:

Post a Comment