Comparatif des serveurs pour PHP

11 minutes read

Après le comparatif des outils de caching et la création d'un CDN (scalable), voici un comparatif pour le déploiement de PHP. On s'intéresse donc à PHP 5.4 dans les environnements suivants :

  • apache22-php-mod : apache 2.2 + module PHP 5.4
  • apache22-php-fpm : apache 2.2 + PHP 5.4-FPM
  • apache24-php-mod : apache 2.4 + module PHP 5.4
  • apache24-php-cgi : apache 2.4 + PHP 5.4-FPM
  • nginx-php : nginx + PHP 5.4-FPM
  • lighttpd-php : lighttpd + PHP 5.4-FPM
  • cherokee-php : cherokee + PHP 5.4 FCGI
  • standalone-php : PHP 5.4 webserver

On va faire le test en 2 temps :

  • utilisation de phpbench pour le théorique
  • utilisation d'un wordpress non optimisé (reprise de ce Wordpress privé des divers plugins d'optimisations)

On utilise wget pour le test pour simplement afficher le résultat : on ne compare pas la capacité des serveurs web à monter en charge. L'idée étant de voir la performance de rendu dans un milieu équivalent, on reprend des machines virtuelles identiques (2 CPU, 8 Go Ram).

Pour rester dans une logique assez proche, tous les applicatifs testés seront installés par compilation.

Installation de apache22-php-mod

On commence par les packages requis pour l'installation :

[crayon]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev[/crayon]

On suit par apache 2.2 :

[crayon language=shell]cd /usr/src
wget http://mirror.cc.columbia.edu/pub/software/apache//httpd/httpd-2.2.22.tar.gz
tar -xzf httpd-2.2.22.tar.gz
cd httpd-2.2.22
./configure --enable-mime-magic --enable-http --disable-status --enable-so --enable-rewrite --with-mpm=prefork
make && make install[/crayon]

On termine par php :

[crayon language=shell]cd /usr/src
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz
tar -xzf php-5.4.6.tar.gz
cd php-5.4.6
./configure --with-apxs2=/usr/local/apache2/bin/apxs --disable-cgi --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath
make && make install[/crayon]

On rajout le module sur apache en rajoutant à la fin de  /usr/local/apache2/conf/httpd.conf :

[crayon language=apache]LoadModule php5_module /usr/local/apache2/modules/libphp5.so
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
</IfModule>[/crayon]

On relance enfin apache :

[crayon language=shell]/usr/local/apache2/bin/apachectl restart[/crayon]

Reste à mettre en place le blog que j'importe - non traîté ici -) et le fichier de benchmark :

[crayon language=shell]cd /usr/local/apache2/htdocs/
wget http://www.php-benchmark-script.com/bench.zip && unzip bench.zip[/crayon]

Reste plus qu'à benchmarker tout à l'heure.

Installation de apache22-php-fpm

On commence par les packages requis pour l'installation :

[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev[/crayon]

On suit par apache 2.2 :

[crayon language=shell]cd /usr/src
wget http://mirror.cc.columbia.edu/pub/software/apache//httpd/httpd-2.2.22.tar.gz
tar -xzf httpd-2.2.22.tar.gz
cd httpd-2.2.22
./configure --enable-mime-magic --enable-http --disable-status --enable-so --enable-rewrite --with-mpm=worker
make && make install
cd /usr/src
wget http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz
tar -xzf mod_fastcgi-current.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP Makefile
make && make install[/crayon]

On rajout le module sur apache en rajoutant à la fin de  /usr/local/apache2/conf/httpd.conf :

[crayon language=apache]LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
ScriptAlias /fcgi-bin/ "/usr/local/bin/"
FastCGIExternalServer /usr/local/bin/php-cgi -host 127.0.0.1:9000 -pass-header Authorization
AddHandler php-fastcgi .php
Action php-fastcgi /fcgi-bin/php-cgi
<Directory /usr/local/bin>
Order Deny,Allow
Deny from All
Allow from env=REDIRECT_STATUS
</Directory>
</IfModule>[/crayon]

On relance enfin apache :

[crayon language=shell]/usr/local/apache2/bin/apachectl restart[/crayon]

Reste à mettre en place le blog que j'importe - non traîté ici -) et le fichier de benchmark :

[crayon language=shell]cd /usr/local/apache2/htdocs/
wget http://www.php-benchmark-script.com/bench.zip && unzip bench.zip[/crayon]

On termine par php :

[crayon language=shell]cd /usr/src
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz
tar -xzf php-5.4.6.tar.gz
cd php-5.4.6
./configure --enable-fpm --with-fpm-group=www-data --with-fpm-user=www-data --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath
make && make install[/crayon]

On préparer FPM en éditant le fichier /usr/local/etc/php-fpm.conf :

[crayon][global]
[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
php_admin_value[open_basedir]=/usr/local/apache2/htdocs/[/crayon]

Bien sûr, on lance PHP-FPM :

[crayon language=shell]/usr/local/bin/php-fpm[/crayon]

Reste plus qu'à benchmarker tout à l'heure.

Installation de apache24-php-mod

On commence par les packages requis pour l'installation :

[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev libpcre3-dev[/crayon]

On suit par apache 2.4 :

[crayon language=shell]cd /usr/src
wget http://wwwftp.ciril.fr/pub/apache//httpd/httpd-2.4.3.tar.gz
tar -xzf httpd-2.4.3.tar.gz
wget http://mirrors.ircam.fr/pub/apache//apr/apr-1.4.6.tar.gz
tar -xzf apr-1.4.6.tar.gz -C httpd-2.4.3/srclib/
wget http://mirrors.ircam.fr/pub/apache//apr/apr-util-1.4.1.tar.gz
tar -xzf apr-util-1.4.1.tar.gz -C httpd-2.4.3/srclib/
cd httpd-2.4.3
mv srclib/apr-1.4.6 srclib/apr
mv srclib/apr-util-1.4.1 srclib/apr-util
./configure --enable-mime-magic --enable-http --disable-status --enable-so --enable-rewrite --with-mpm=prefork
make && make install[/crayon]

On termine par php :

[crayon language=shell]cd /usr/src
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz
tar -xzf php-5.4.6.tar.gz
cd php-5.4.6
./configure --with-apxs2=/usr/local/apache2/bin/apxs --disable-cgi --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath
make && make install[/crayon]

On rajout le module sur apache en rajoutant à la fin de  /usr/local/apache2/conf/httpd.conf :

[crayon language=apache]LoadModule php5_module /usr/local/apache2/modules/libphp5.so
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
</IfModule>[/crayon]

On relance enfin apache :

[crayon language=shell]/usr/local/apache2/bin/apachectl restart[/crayon]

Reste à mettre en place le blog que j'importe - non traîté ici -) et le fichier de benchmark :

[crayon language=shell]cd /usr/local/apache2/htdocs/
wget http://www.php-benchmark-script.com/bench.zip && unzip bench.zip[/crayon]

Reste plus qu'à benchmarker tout à l'heure.

Installation de apache24-php-fpm

On commence par les packages requis pour l'installation :

[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev libpcre3-dev[/crayon]

On suit par apache 2.4 :

[crayon language=shell]cd /usr/src
wget http://wwwftp.ciril.fr/pub/apache//httpd/httpd-2.4.3.tar.gz
tar -xzf httpd-2.4.3.tar.gz
wget http://mirrors.ircam.fr/pub/apache//apr/apr-1.4.6.tar.gz
tar -xzf apr-1.4.6.tar.gz -C httpd-2.4.3/srclib/
wget http://mirrors.ircam.fr/pub/apache//apr/apr-util-1.4.1.tar.gz
tar -xzf apr-util-1.4.1.tar.gz -C httpd-2.4.3/srclib/
cd httpd-2.4.3
mv srclib/apr-1.4.6 srclib/apr
mv srclib/apr-util-1.4.1 srclib/apr-util
./configure --enable-mime-magic --enable-http --disable-status --enable-so --enable-rewrite --with-mpm=worker --enable-slotmem-shm
make && make install[/crayon]

On rajout le module sur apache en rajoutant à la fin de  /usr/local/apache2/conf/httpd.conf :

[crayon language=apache]ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache2/htdocs/$1[/crayon]

On relance enfin apache :

[crayon language=shell]/usr/local/apache2/bin/apachectl restart[/crayon]

Reste à mettre en place le blog que j'importe - non traîté ici -) et le fichier de benchmark :

[crayon language=shell]cd /usr/local/apache2/htdocs/
wget http://www.php-benchmark-script.com/bench.zip && unzip bench.zip[/crayon]

On termine par php :

[crayon language=shell]cd /usr/src
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz
tar -xzf php-5.4.6.tar.gz
cd php-5.4.6
./configure --enable-fpm --with-fpm-group=www-data --with-fpm-user=www-data --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath
make && make install[/crayon]

On préparer FPM en éditant le fichier /usr/local/etc/php-fpm.conf :

[crayon][global]
[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
php_admin_value[open_basedir]=/usr/local/apache2/htdocs/[/crayon]

Bien sûr, on lance PHP-FPM :

[crayon language=shell]/usr/local/bin/php-fpm[/crayon]

Reste plus qu'à benchmarker tout à l'heure.

Installation de nginx-php

On commence par les packages requis pour l'installation :

[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev libpcre3-dev[/crayon]

On suit par nginx 1.2.3 :

[crayon language=shell]cd /usr/src
wget http://nginx.org/download/nginx-1.2.3.tar.gz
tar -xzf nginx-1.2.3.tar.gz
cd nginx-1.2.3
./configure --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module
make && make install[/crayon]

On configure ensuite nginx /usr/local/nginx/conf/nginx.conf :

[crayon]worker_processes 4;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name test;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
location / {
root /var/www;
}
}
}[/crayon]

On relance enfin nginx :

[crayon language=shell]/usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf[/crayon]

Reste à mettre en place le blog que j'importe - non traîté ici -) et le fichier de benchmark :

[crayon language=shell]cd /var/www/
wget http://www.php-benchmark-script.com/bench.zip && unzip bench.zip[/crayon]

On termine par php :

[crayon language=shell]cd /usr/src
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz
tar -xzf php-5.4.6.tar.gz
cd php-5.4.6
./configure --enable-fpm --with-fpm-group=www-data --with-fpm-user=www-data --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath
make && make install[/crayon]

On préparer FPM en éditant le fichier /usr/local/etc/php-fpm.conf :

[crayon][global]
[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
php_admin_value[open_basedir]=/usr/local/apache2/htdocs/[/crayon]

Bien sûr, on lance PHP-FPM :

[crayon language=shell]/usr/local/bin/php-fpm[/crayon]

Reste plus qu'à benchmarker tout à l'heure.

Installation de lighttpd-php

On commence par les packages requis pour l'installation :

[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev libpcre3-dev[/crayon]

On suit par lighttpd 1.4.31 :

[crayon language=shell]cd /usr/src
wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.31.tar.gz
tar -xzf lighttpd-1.4.31.tar.gz
cd lighttpd-1.4.31
./configure --without-bzip2
make && make install
cp -a doc/config /etc/lighttpd
mkdir /var/www/htdocs
mkdir /var/log/lighttpd
chown -R www-data:www-data /var/log/lighttpd /var/www[/crayon]

On configure ensuite lighttpd /etc/lighttpd/conf.d/fastcgi.conf :

[crayon]server.modules += ( "mod_fastcgi" )
fastcgi.server += ( ".php" =>
((
"host" => "127.0.0.1",
"port" => "9000",
"broken-scriptfilename" => "enable"
))
)[/crayon]

On met aussi à jour le /etc/lighttpd/lighttpd.conf :

[crayon]server.username = "www-data"
server.groupname = "www-data"[/crayon]

On relance enfin lighttpd :

[crayon language=shell]lighttpd -f /etc/lighttpd/lighttpd.conf[/crayon]

Reste à mettre en place le blog que j'importe - non traîté ici -) et le fichier de benchmark :

[crayon language=shell]cd /var/www/htdocs/
wget http://www.php-benchmark-script.com/bench.zip && unzip bench.zip[/crayon]

On termine par php :

[crayon language=shell]cd /usr/src
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz
tar -xzf php-5.4.6.tar.gz
cd php-5.4.6
./configure --enable-fpm --with-fpm-group=www-data --with-fpm-user=www-data --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath
make && make install[/crayon]

On préparer FPM en éditant le fichier /usr/local/etc/php-fpm.conf :

[crayon][global]
[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
php_admin_value[open_basedir]=/var/www/htdocs/[/crayon]

Bien sûr, on lance PHP-FPM :

[crayon language=shell]/usr/local/bin/php-fpm[/crayon]

Reste plus qu'à benchmarker tout à l'heure.

Installation de cherokee-php

On commence par les packages requis pour l'installation :

[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev libpcre3-dev[/crayon]

On suit par cheroke 1.2.101 :

[crayon language=shell]cd /usr/src
wget http://cherokee-project.com/install && python install[/crayon]

On relance enfin cherokee :

[crayon language=shell]/etc/init.d/cherokee-opt start[/crayon]

Reste à mettre en place le blog que j'importe - non traîté ici -) et le fichier de benchmark :

[crayon]cd /opt/cherokee/var/www
wget http://www.php-benchmark-script.com/bench.zip && unzip bench.zip[/crayon]

On termine par php :

[crayon language=shell]cd /usr/src
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz
tar -xzf php-5.4.6.tar.gz
cd php-5.4.6
./configure --enable-fpm --with-fpm-group=www-data --with-fpm-user=www-data --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath
make && make install[/crayon]

On préparer FPM en éditant le fichier /usr/local/etc/php-fpm.conf :

[crayon][global]
[www]
user = www-data
group = www-data
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
php_admin_value[open_basedir]=/opt/cherokee/var/www/[/crayon]

Bien sûr, on lance PHP-FPM :

[crayon language=shell]/usr/local/bin/php-fpm[/crayon]

On finit par l'implémentation de PHP dans cherokee :

[crayon language=shell]/opt/cherokee/sbin/cherokee-admin[/crayon]

On se connecte à http://127.0.0.1:9090/ :

Pensez ensuite à sauvegarder et faire un "Graceful Restart".

Reste plus qu'à benchmarker tout à l'heure.

Installation de php en standalone

On commence par les packages requis pour l'installation :

[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev libpcre3-dev[/crayon]

On suit par php :

[crayon language=shell]cd /usr/src
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz
tar -xzf php-5.4.6.tar.gz
cd php-5.4.6
./configure --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath --enable-cli
make && make install[/crayon]

Plus qu'à lancer le serveur intégré :

[crayon language=shell]nohup /usr/local/bin/php -S 0.0.0.0:80 -t /var/www/ &> /dev/null &[/crayon]

Bien sûr, il nous faut aussi le script de benchmark (et le blog à importer)

[crayon language=shell]cd /var/www
wget http://www.php-benchmark-script.com/bench.zip && unzip bench.zip[/crayon]

Plus qu'à tester.

Comparatif

On collecte donc l'ensemble des résultats :

[crayon language=shell]for server in x.x.x.1 x.x.x.2 x.x.x.3 x.x.x.4 x.x.x.5 x.x.x.6 x.x.x.7 x.x.x.8; do wget http://$server/bench.php -O - ; done[/crayon]

Résultats pour apache22-php-mod

[crayon]--------------------------------------
| PHP BENCHMARK SCRIPT |
--------------------------------------
Start : 2012-09-11 09:25:25
Server : x.x.x.1@x.x.x.1
PHP version : 5.4.6
Platform : Linux
--------------------------------------
test_math : 2.374 sec.
test_stringmanipulation : 2.433 sec.
test_loops : 1.864 sec.
test_ifelse : 1.336 sec.
--------------------------------------[/crayon]

Résultats pour apache22-php-fpm

[crayon]--------------------------------------
| PHP BENCHMARK SCRIPT |
--------------------------------------
Start : 2012-09-11 09:25:57
Server : x.x.x.2@x.x.x.2
PHP version : 5.4.6
Platform : Linux
--------------------------------------
test_math : 2.265 sec.
test_stringmanipulation : 2.362 sec.
test_loops : 2.168 sec.
test_ifelse : 1.224 sec.
--------------------------------------[/crayon]

Résultats pour apache24-php-mod

[crayon]--------------------------------------
| PHP BENCHMARK SCRIPT |
--------------------------------------
Start : 2012-09-11 09:26:03
Server : x.x.x.3@x.x.x.3
PHP version : 5.4.6
Platform : Linux
--------------------------------------
test_math : 3.236 sec.
test_stringmanipulation : 3.274 sec.
test_loops : 2.113 sec.
test_ifelse : 1.453 sec.
--------------------------------------[/crayon]

Résultats pour apache24-php-fpm

[crayon]--------------------------------------
| PHP BENCHMARK SCRIPT |
--------------------------------------
Start : 2012-09-11 09:26:12
Server : x.x.x.4@x.x.x.4
PHP version : 5.4.6
Platform : Linux
--------------------------------------
test_math : 2.225 sec.
test_stringmanipulation : 2.361 sec.
test_loops : 2.094 sec.
test_ifelse : 1.223 sec.
--------------------------------------[/crayon]

Résultats pour nginx-php

[crayon]--------------------------------------
| PHP BENCHMARK SCRIPT |
--------------------------------------
Start : 2012-09-11 09:26:23
Server : x.x.x.5@x.x.x.5
PHP version : 5.4.6
Platform : Linux
--------------------------------------
test_math : 2.310 sec.
test_stringmanipulation : 2.379 sec.
test_loops : 2.175 sec.
test_ifelse : 1.231 sec.
--------------------------------------[/crayon]

Résultats pour lighttpd-php

[crayon]--------------------------------------
| PHP BENCHMARK SCRIPT |
--------------------------------------
Start : 2012-09-11 09:26:38
Server : x.x.x.6@x.x.x.6
PHP version : 5.4.6
Platform : Linux
--------------------------------------
test_math : 2.194 sec.
test_stringmanipulation : 2.314 sec.
test_loops : 2.194 sec.
test_ifelse : 1.255 sec.
--------------------------------------[/crayon]

Résultats pour cherokee-php

[crayon]--------------------------------------
| PHP BENCHMARK SCRIPT |
--------------------------------------
Start : 2012-09-11 09:26:53
Server : x.x.x.7@x.x.x.7
PHP version : 5.4.6
Platform : Linux
--------------------------------------
test_math : 2.268 sec.
test_stringmanipulation : 2.381 sec.
test_loops : 2.076 sec.
test_ifelse : 1.236 sec.
--------------------------------------[/crayon]

Résultats pour standalone-php

[crayon]--------------------------------------
| PHP BENCHMARK SCRIPT |
--------------------------------------
Start : 2012-09-11 09:26:26:59
Server : 0.0.0.0@
PHP version : 5.4.6
Platform : Linux
--------------------------------------
test_math : 2.351 sec.
test_stringmanipulation : 2.455 sec.
test_loops : 2.112 sec.
test_ifelse : 1.250 sec.
--------------------------------------[/crayon]

Reproduire les tests ne fait varier les résultats que de quelques milli secondes, donc rien de significatif. Il en ressort donc, qu'hors optimisation de php (via ses modules entre autres) ou du serveur web, l'implémentation semble plus performante varie selon le calcul effectué. Cependant, sur le traitement global, les résultats avantagent apache24-php-fpm suivi de près par lighttpd-php et cherokee-php. A noter les bons résultats des implémentations en Apache 2.2 (module et FPM) mais les très mauvaises performances en module sur Apache 2.4.

Les benchmarks sur le blog renvoient les mêmes résultats.

Updated: