PHP 7 vs PHP 5.6 : le comparatif de performance du JDN

La direction technique de CCM Benchmark, éditeur du JDN et de Comment Ça Marche, a testé la nouvelle version de PHP. Voici les résultats.

L'un des principaux apports annoncés de la version 7 du langage PHP est d'améliorer la performance d'exécution des applications. C'est là la promesse faite par Zend, l'un des principaux acteurs du projet PHP, à travers le chantier phpng (PHP Next Generation). Grâce à une refactorisation du moteur PHP, son objectif était de proposer un noyau entièrement réoptimisé.

Un travail qui est passé notamment par un grand ménage dans le code de base du langage, un nettoyage des API, ainsi qu'une meilleure gestion de l'allocation de la mémoire vive. Et même si phpng pouvait engendrer des problèmes de compatibilité avec certaines extensions, l'intégration de cette branche à PHP 7 a finalement été approuvée par les contributeurs au projet PHP. Toujours en matière de perf, PHP 7 introduit, aussi, le stockage natif des threads en local.

Des gains de performance de 50%

Au final, la mise à jour des applications vers PHP 7 peut engendrer d'après les équipes de Zend un surcroît de performance de 25% à 70%. Pour illustrer ces gains, des benchmarks de performance ont d'ailleurs été publiés par la société de Zeev Suraski et Andi Gutmans (qui, rappelons-le, vient tout juste d'être acquise par Rogue Wave Software).

En vue de se faire une idée plus précise des capacités de PHP 7, les équipes techniques de CCM Benchmark se sont mobilisées. Elles ont effectué des comparatifs de performance entre PHP 5.6 et PHP 7 (en préversion RC4) sur plusieurs sites du groupe développés en PHP, notamment JDN et Comment Ça Marche.

Des gains de performance
historiques

"Nous nous sommes concentrés exclusivement sur la performance du langage et avons exclu tout le reste, notamment le réseau et la couche base de données", précise Xavier Leune, responsable Framework PHP chez CCM Benchmark. C'est l'outil de test open source ApacheBench qui a été utilisé pour simuler les connexions, et les points de mesure ont été réalisés grâce à des sondes ajoutées en début et fin d'exécution de chaque page. Au total, 1000 requêtes ont été lancées depuis 25 clients en parallèle sur chaque page testée. La configuration de la plateforme sous-jacente ? Elle s'adosse à des serveurs avec des processeurs intel i7-2640M. 4Go de RAM sont dédiés à chaque machine virtuelle. Côté logiciel, Apache 2.4 (sous Debian 8) est utilisé, avec à la clé une configuration PHP 5.6.

Les résultats de notre benchmark ? Des gains jusqu'à 50% sont observés en temps d'exécution CPU entre PHP 5.6 et PHP 7, et de près de 50% également en consommation de mémoire. "C'est au-dessus de ce que nous avions anticipé. Je n'ai jamais vu un tel différentiel de performance lors des précédentes montées de version , note Xavier Leune. "L'impact du refactoring du moteur sur l'empreinte CPU est très significatif, et l'optimisation du stockage en mémoire des variables porte ses fruits."

Comparatif de performance CPU et mémoire sur la page d'accueil de JDN Développeur. © CCM Benchmark
Comparatif de performance CPU et mémoire sur une page d'article du JDN. © CCM Benchmark
Comparatif de performance CPU et mémoire sur le forum de Comment Ça Marche. © CCM Benchmark

Stockage / Serveurs