Les performances de PHP

Les performances de PHP sont historiquement mauvaises dès que le nombre de fichiers devient important. Cependant, avec le temps, de nombreuses améliorations ont été faites et, en particulier depuis PHP 7, les performances deviennent bonnes.

Cependant, PHP sous Windows reste largement à la traîne et pour les plateformes de développements sous Windows, voire pour les clients qui veulent mettre du PHP en production sous Windows (si, si, ça existe...), c'est pénalisant.

Travailler avec des socles lourds comme eZ Publish, Drupal devient rapidement pénalisant sous Windows.

Comparaison Docker / Windows avec phpBench

La vague Docker étant là, j'ai mené un petit de test de performance à partir d'un script tout bête trouvé sur le Net : phpbench

Le résultat est sans appel : L'exécution du script est de plus de 3 fois plus rapide sous Docker (3,4 exactement sur mon test). Ceci place Docker comme un bon environnement de développement PHP.

--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2016-12-31 14:43:25
Server : @
PHP version : 7.0.14
Platform : WINNT
--------------------------------------
test_math                 : 0.375 sec.
test_stringmanipulation   : 2.843 sec.
test_loops                : 0.506 sec.
test_ifelse               : 0.473 sec.
--------------------------------------
Total time:               : 4.197 sec.
Résultat sous Windows
--------------------------------------
|        PHP BENCHMARK SCRIPT        |
--------------------------------------
Start : 2016-12-31 15:43:51
Server : @
PHP version : 7.0.14-2+deb.sury.org~trusty+1
Platform : Linux
--------------------------------------
test_math                 : 0.270 sec.
test_stringmanipulation   : 0.410 sec.
test_loops                : 0.259 sec.
test_ifelse               : 0.294 sec.
--------------------------------------
Total time:               : 1.233 sec.
Résultat avec Docker 1.12.5 sous Windows

Comparaison Docker / Windows avec PhpPerf

Afin d'en avoir le cœur net, j'ai rejoué le test avec un benchmark plus large et plus récent : PhpPerf

Je passe le détail test par test, ne considérant que la vision globale des performances :

  • Windows : 21,51s
  • Docker sous Windows :6,2s

Ceci donne un rapport équivalent et confirme l'apport d'une solution comme docker pour le développement PHP.

Utilisation de Docker pour du développement Web

Voici un petit tutoriel sur l'utilisation de Docker pour du développement web PHP.