éco-conception web : Mettre en cache le bytecode

Livre - éco-conception web : les 100 bonnes pratiques - Eyrolles - couverture - small

Dans le cadre du lancement du livre Eco-conception web - Les 100 bonnes pratiques auquel plusieurs contributeurs de GreenIT.fr ont participé, nous vous proposons chaque semaine un focus sur une bonne pratique.

Aujourd’hui : Mettre en cache le bytecode

Le bytecode (appelé opcode dans le cas de PHP) est le code binaire généré à partir du code source. Certains accélérateurs permettent de mettre en cache ce bytecode, ce qui évite de le recompiler à chaque fois à partir du code source. Cette réduction du temps de compilation économise des cycles CPU et de la mémoire vive côté serveur.

Un script PHP de référence peut servir :
* 298 requêtes par minute (sans accélérateur) ;
* 914 requêtes par minute (avec l’accélérateur APC).
Soit 3 fois plus de requêtes pour la même machine.

Pour aller plus loin, la liste des accélérateurs pour PHP est disponible sur wikipedia. On peut aussi citer le compilateur HipHop for PHP dont nous vous parlions ici, qui permet de compiler le code source PHP en C++, lequel est ensuite compilé à l’aide de g++.

Cette bonne pratique a un impact sur la performance de l’application et donc sur :
- la quantité d’énergie nécessaire à son fonctionnement côté serveur (émissions de gaz à effet de serre),
- le nombre de serveurs nécessaires pour faire fonctionner le site (Facebook a divisé par 2 ses besoins en compilant son code PHP en C++).

Découvrir le livre Eco-conception web - Les 100 bonnes pratiques
L’acheter chez amazon.fr, eyrolles.com, à la Fnac.com.


Commentaires

Bonjour, je suis toujours autant étonné de voir des conseils sur la base de l’utilisation de PHP. Je pense que la première chose à faire c’est d’utiliser un langage et une plate-forme d’exécution plus performante. À titre de comparaison la JVM supporte de nombreux langages qui tournent en général bien plus rapidement que du PHP (rien que Java et Scala sont 20 fois plus rapides)…

Julien Richard-Foy (non vérifié) le 23/01/2013

@Julien : nous prenons l’exemple de PHP car c’est le langage le plus utilisé (et de loin) pour développer des sites web.

Quant aux performances de Java, je doute qu’il soit 20 fois plus efficient que du code PHP. EN éco-conception logicielle, on ne s’intéresse pas à la performance pure, mais à l’efficience. A configuration matérielle identique, PHP est forcément plus rapide que Java pour délivrer des pages web. C’est d’ailleurs pour cette raison qu’aucun site à très gros trafic ne s’appuie sur Java.

Un récent benchmark démontre que ce sont les langages compilés qui sont les plus performants. Nous publions un article sur ce thème d’ici la fin de semaine.

admin le 24/01/2013

Quant aux performances de Java, je doute qu’il soit 20 fois plus efficient que du code PHP.

J’ai pourtant indiqué la source du benchmark d’où j’ai tiré ce chiffre.

Je peux également citer l’exemple de Tumblr qui a nettement augmenté sa capacité à tenir la charge en passant de PHP à Scala. LucidChart a fait pareil récemment.

Anonyme (non vérifié) le 25/01/2013

Poster un nouveau commentaire

Le contenu de ce champ ne sera pas montré publiquement.